We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
What could be the problem if I'm not able to write this value to this register?
*AT91C_EMAC_TCR = 0x30;
If I take a look in the memory window I don't see this value in this register...
assembly-window shows this code for this c-line:
0x100002E4 E3A00030 MOV R0,#0x00000030 0x100002E8 E2441911 SUB R1,R4,#0x00044000 0x100002EC E5810010 STR R0,[R1,#0x0010]
Looks really good, but it doesn't work... I'm working with the AT91Rm9200 controller from Atmel.
best regards Johannes
"If I take a look in the memory window I don't see this value in this register"
You didn't say what you do see. Anyway, I wouldn't expect to see 0x30. The CSR bit is write-only.
"Looks really good, but it doesn't work"
What about it doesn't work. Are you basing "doesn't work" on the inability to read back 0x30 as described above?
the register AT91C_EMAC_TCR can be read and write - and I write my data lenght for the trasmit paket in this register.
I work with wireshark to look for the data paket I transmit - and it has 0 Bytes - it's empty. That's my problem. The pointer to the data which should be transmitted is correct (I can see the address of this pointer in the register for the ethernet).
"the register AT91C_EMAC_TCR "
My apologies. I see where I went wrong by pulling up the data sheet PDF and clicking the "Control Register" section, not "Transmit Control Register". The "Control Register" has the write-only CSR bit I referred to.
Sorry again for taking your issue on a side trip.
Is the minimum Ethernet frame size 64 bytes?
Yes, the minimum TCP/IP frame size is 14 bytes header and 46 bytes data, which - with a 4-byte CRC will be 64 bytes.
I got the error - it was a false pointer which overwrites a few values, so everything was 0...
Johannes