SAM7_EMAC on at91sam7x512: hw reset fails

ursus2002 wrote on Tuesday, January 03, 2012:


I adapted the SAM7 web server example (FreeRTOS V1.7.0)  to my at91sam7x512/DP83848i based board (deRFgateway by Dresden Electronic). (Basically, I only had to adjust the memory size defines)

The example runs so far, but there’s a problem during the initialization of the PHY (DP83843i): the while loop which waits for end of hw reset 

               __asm volatile ( “NOP” );

will loop endlessly.

The problem does NOT occur when the SAM-ICE JTAG interface is connected!

Any idea what might be missing within the low level initialization?


rtel wrote on Tuesday, January 03, 2012:

That particular code is taken directly from Atmel, and may have dependencies on Atmels own hardware (the hardware it was written on).

A couple of suggestions:

1) Put in a time out so if the initialisation fails it aborts the attempt, then tries again in a few milliseconds.
2) If it works with the debugger, but not stand alone, then see if the debugger is running a script before it runs the code.  You can configure it to run scripts in the debugger settings of the project options.
3) Are you using MII or RMII mode?  I know some chips (the ones I had) have an errata that basically says not to use RMII.

Hope that helps.


ursus2002 wrote on Wednesday, January 04, 2012:

thanks for your suggestions!

1) will give it a try
2) double checked the commands in the init script of the debugger,  nothing special in there…
3) RMII is the only choice in my case because several “MII pins” are not wired

I’ll try to ask for help in the at91 forum,

thanks again!


ursus2002 wrote on Sunday, January 08, 2012:

embarrassing, I always switched off the SAM-ICE (removed USB cable) only but left the JTAG port connected to the board when testing “without” JTAG. The SAM-ICE is also connected to the reset pin, so I assume that the pin gets pulled up even when the adapter is powered off…

Everything works fine now, thanks again!