- Netduino Forums
- → Geancarlo's Content
Geancarlo's Content
There have been 24 items by Geancarlo (Search limited from 17-June 23)
#24357 Mini only runs when com port attached
Posted by Geancarlo on 17 February 2012 - 07:59 PM in Netduino Mini
#21797 How do you get the bytes of a float?
Posted by Geancarlo on 17 December 2011 - 03:08 PM in General Discussion
#24460 Method parameter "this byte"
Posted by Geancarlo on 20 February 2012 - 01:19 PM in Visual Studio
#24529 Logic Level Converter questions
Posted by Geancarlo on 21 February 2012 - 05:40 PM in General Discussion
#23392 Why Not?
Posted by Geancarlo on 28 January 2012 - 05:25 PM in General Discussion
#23055 Barebones Netduino
Posted by Geancarlo on 20 January 2012 - 01:41 PM in Netduino 2 (and Netduino 1)
#23090 connecting audio input
Posted by Geancarlo on 21 January 2012 - 04:15 AM in Netduino Plus 2 (and Netduino Plus 1)
#21451 IAR compiler & LED don't blink
Posted by Geancarlo on 07 December 2011 - 05:14 PM in Netduino Plus 2 (and Netduino Plus 1)
#23195 google api issue
Posted by Geancarlo on 23 January 2012 - 03:26 PM in Netduino Plus 2 (and Netduino Plus 1)
#22109 Nut/OS on netduino
Posted by Geancarlo on 27 December 2011 - 04:02 AM in Netduino Plus 2 (and Netduino Plus 1)
Hi friend.
For Ethernet to work with Netduino, you should add a define statement to enable the emac driver in the file board.h located
in nut/include folder. So, the modification is like this:
/*
* Ethernet device.
*/
#if defined(CHARON2) || defined(XNUT_100) || defined(XNUT_105) ||\
defined(MMNET01) || defined(MMNET02) || defined(MMNET03) || defined(MMNET04) ||\
defined(ARTHERNET1)
#include <dev/nicrtl.h>
#elif defined(MMNET101) || defined(MMNET102) || defined(MMNET103) || defined(MMNET104)
#include <dev/lanc111.h>
#elif defined(ELEKTOR_IR1)
#include <dev/dm9000e.h>
#elif defined(OLIMEX_LPCE2294)
#include <dev/cs8900a.h>
#elif defined(AT91SAM7X_EK) || defined(AT91SAM9260_EK) || defined(MORPHOQ1) || defined(ENET_SAM7X) || defined(NETDUINO)
#include <dev/at91_emac.h>
#elif defined(EVK1100) || defined(EVK1105)
#include <dev/avr32_macb.h>
#endif
#ifndef DEV_ETHER
#include <dev/null_ether.h>
#endif
#ifndef DEV_ETHER_NAME
#define DEV_ETHER_NAME "eth0"
#endif
you need to define the netduino platform in the NutConfigurator and save it with a different name.
the template you should use is the board AT91SAM7X256-EK and change the processor size to the AT91SAM7X512.
After that, you should build the NUT/OS to take effect those changes.
Best Regards,
Alfonso.
PD: Merry Christmas...
#21007 Nut/OS on netduino
Posted by Geancarlo on 27 November 2011 - 01:27 AM in Netduino Plus 2 (and Netduino Plus 1)
On the web server example(httpd) I have verified that the code hangs on NutNetIfConfig(DEV_ETHER_NAME, mac, ip_addr, ip_mask).
-Doesn't work on either Nut/OS 4.1(Stable) or 5.0(latest beta).
-I'm using YAGARTO toolchain(GCC 4.6.2) and tools(v. 20100703).
-As IDE, I have CodeLite, although not really relevant.
-I'm deploying* with SAM-BA 2.11(executing the flash boot script)
-This is my simple make batch script, which is used with default makefiles on each app directory:
set makeLocation=C:\ethernut-5.0\nutapp\httpd set pathExtra=C:\ethernut-5.0\nut\tools\win32;C:\yagarto\toolchain\bin; cd %makeLocation% set PATH=%pathExtra%;%PATH% make clean all install ::%SystemRoot%\explorer.exe "%makeLocation% PAUSE
Please post some hints if you have managed to make Nut/OS work with N+
#21663 Current State of features
Posted by Geancarlo on 13 December 2011 - 04:31 PM in General Discussion
#23116 UART - Common ground
Posted by Geancarlo on 21 January 2012 - 11:03 PM in Netduino Plus 2 (and Netduino Plus 1)
#21655 Utility.ComputeCRC
Posted by Geancarlo on 13 December 2011 - 12:10 PM in Netduino 2 (and Netduino 1)
#21661 Utility.ComputeCRC
Posted by Geancarlo on 13 December 2011 - 03:39 PM in Netduino 2 (and Netduino 1)
you can find the code below in the micro framework source code in MicroFrameworkPK_v4_1\Support\crc\CRC.cpp
// // CRC 32 table for use under ZModem protocol, IEEE 802 // G(x) = x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 // static const UINT32 c_CRCTable[ 256 ] = { 0x00000000, 0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B, 0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6, 0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD, 0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC, 0x5BD4B01B, 0x569796C2, 0x52568B75, 0x6A1936C8, 0x6ED82B7F, 0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A, 0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039, 0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58, 0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033, 0xA4AD16EA, 0xA06C0B5D, 0xD4326D90, 0xD0F37027, 0xDDB056FE, 0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95, 0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4, 0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0, 0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5, 0x2AC12072, 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16, 0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA, 0x7897AB07, 0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C, 0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1, 0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA, 0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B, 0xBB60ADFC, 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698, 0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D, 0x94EA7B2A, 0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E, 0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, 0xC6BCF05F, 0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34, 0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80, 0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB, 0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A, 0x58C1663D, 0x558240E4, 0x51435D53, 0x251D3B9E, 0x21DC2629, 0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C, 0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF, 0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E, 0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65, 0xEBA91BBC, 0xEF68060B, 0xD727BBB6, 0xD3E6A601, 0xDEA580D8, 0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3, 0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2, 0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71, 0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74, 0x857130C3, 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640, 0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C, 0x7B827D21, 0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A, 0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, 0x18197087, 0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC, 0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D, 0x2056CD3A, 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE, 0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB, 0xDBEE767C, 0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18, 0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, 0x89B8FD09, 0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662, 0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF, 0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4 }; UINT32 SUPPORT_ComputeCRC( const void* rgBlock , int nLength , UINT32 crc ) { const UINT8* ptr = (const UINT8*)rgBlock; while(nLength-- > 0) { crc = c_CRCTable[ ((crc >> 24) ^ (*ptr++)) & 0xFF ] ^ (crc << 8); } return crc; }
MicroFrameworkPK_v4_1\CLR\Libraries\SPOT\spot_native_Microsoft_SPOT_Hardware_Utility.cpp:
HRESULT Library_spot_native_Microsoft_SPOT_Hardware_Utility::ComputeCRC___STATIC__U4__SZARRAY_U1__I4__I4__U4( CLR_RT_StackFrame& stack ) { NATIVE_PROFILE_CLR_CORE(); TINYCLR_HEADER(); CLR_RT_HeapBlock* pArgs; CLR_RT_HeapBlock_Array* array; int offset; int length; CLR_UINT32 crc; int totLength; pArgs = &(stack.Arg0()); array = pArgs[ 0 ].DereferenceArray(); FAULT_ON_NULL(array); offset = pArgs[ 1 ].NumericByRef().s4; length = pArgs[ 2 ].NumericByRef().s4; crc = pArgs[ 3 ].NumericByRef().u4; totLength = array->m_numOfElements; if(offset < 0 || offset > totLength) { TINYCLR_SET_AND_LEAVE(CLR_E_OUT_OF_RANGE); } if(length == -1) { length = totLength - offset; } else { if(length < 0 || (offset+length) > totLength) { TINYCLR_SET_AND_LEAVE(CLR_E_OUT_OF_RANGE); } } crc = SUPPORT_ComputeCRC( array->GetElement( offset ), length, crc ); stack.SetResult( crc, DATATYPE_U4 ); TINYCLR_NOCLEANUP(); }
all of this is called by the following declaration in \MicroFrameworkPK_v4_1\Framework\Core\Native\HW_Utility.cs :
[MethodImplAttribute(MethodImplOptions.InternalCall)] extern static public uint ComputeCRC(byte[] buf, int offset, int length, uint crc);
#23848 Watchdog: How to do on netduino?
Posted by Geancarlo on 06 February 2012 - 02:08 PM in General Discussion
#23826 Watchdog: How to do on netduino?
Posted by Geancarlo on 06 February 2012 - 12:43 AM in General Discussion
The Netduino microcontroller has [only] one hardware watchdog timer and that is used by .NET Micro Framework runtime itself, so it is not available for user applications. You'd need to add external watchdog circuit.
But doesn't the LPC2387/8(used for FEZ boards) also contain a single wdt?Couldn't the functionality of the WDT also be exposed like GHI did?
#22483 SD card not working on N+ 4.2 RC3
Posted by Geancarlo on 05 January 2012 - 10:41 PM in Beta Firmware and Drivers
#22478 SD card not working on N+ 4.2 RC3
Posted by Geancarlo on 05 January 2012 - 10:08 PM in Beta Firmware and Drivers
#20711 SD card not working on N+ 4.2 RC3
Posted by Geancarlo on 16 November 2011 - 09:42 PM in Beta Firmware and Drivers
#20584 SD card not working on N+ 4.2 RC3
Posted by Geancarlo on 14 November 2011 - 05:47 AM in Beta Firmware and Drivers
The reason I am posting is that I am facing issues with micro SD cards(using a Kingston SDC/2GB atm), as other people have already posted.
The following code works just fine with firmware 4.1.0.6 on NetduinoPlus:
using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.IO; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.NetduinoPlus; namespace MicroSdTest { public class Program { public static void Main() { Thread.Sleep(1000); VolumeInfo vol = new VolumeInfo("\\SD"); string dir = Directory.GetCurrentDirectory(); string[] dirs = Directory.GetDirectories("\\"); dirs = Directory.GetDirectories("\\SD\\"); foreach (string d in dirs) Debug.Print(d); Debug.Print("ok"); } } }
I usually set a breakpoint before
dirs = Directory.GetDirectories("\\SD\\");so I can check the contents of vol or I can just let it pass crashing or printing. It turns out that on 4.1.0.6, it detects the FAT filesystem just fine and I can format/print the directories. On 4.2 RC3 none of that occurs and the code crashes whenever I try to access any of the card's features.
I have tried this simple code running back and forth from 4.1.0.6 to 4.2RC3 a few times and the behavior was consistent. Am I missing something like mounting it on 4.2RC3 or is it a bug? This particular issue is delaying a project of mine...
edit:forgot to post the actual exception I get
A first chance exception of type 'System.NotSupportedException' occurred in Microsoft.SPOT.IO.dll
A first chance exception of type 'System.IO.IOException' occurred in System.IO.dll
An unhandled exception of type 'System.IO.IOException' occurred in System.IO.dll
Thanks,
Geancarlo Rocha
#21610 SD card not working on N+ 4.2 RC3
Posted by Geancarlo on 12 December 2011 - 11:10 AM in Beta Firmware and Drivers
at the moment I'm using a 1GB SanDisk card with no problems at all. I also have used another 2GB SanDisk too before. Sadly, I can't send you a card since I'm in Brazil...
Something I'm concerned about is that not all microSD cards are required to be SPI compliant. I haven't digged into netduino's .netmf implementation, but is it safe to assume that spi is the only communication available?
If you check this blog post you can find some interesting information that raises doubts about Kingston cards authenticity and some may not be SPI compliant at all.
Perhaps some of us who have problems with the cards have just been unlucky, but this is not something to be overlooked if we want to make a reliable product based on netduino(!!)
Thanks
#24083 Native programming, which tools do I need?
Posted by Geancarlo on 11 February 2012 - 12:34 AM in General Discussion
#23110 Powerful Aquarium Lighting
Posted by Geancarlo on 21 January 2012 - 07:03 PM in General Discussion
The resistor connected to CS port is responsable for setting the current over the leds. It is calculated as shown in the application information section as
R=0.25/(Iled+0.5*Iripple) ; Iripple is the peak to peak current on the inductor
You also have to calculate the inductance, Rosc and the capacitor shown in the app notes.
This applies to the buck topology that you would replicate to control leds individually, but I'm not sure if I missed something...Do you plan on controlling all 30 leds individually on a PWM fashion using a single netduino?
- Netduino Forums
- → Geancarlo's Content
- Privacy Policy