[etherlab-users] further investigations on NetX500 slave

Phil Sutter sutter at informatik.hs-furtwangen.de
Sat Mar 1 02:04:27 CET 2008


Hi!

Last few days I was digging through the slave-scanning and SII parts of
the master code, because SII_DEBUG shows that even the first read
request (getting the first category header) failed.
Besides, I managed to get some EEPROM dumps via TwinCAT. This one is
quite usable:

| 0000000 0180 0001 0000 0f00 0000 0000 0000 88a4
| 0000010 0044 0000 656e 7874 0001 0003 0000 0000
| 0000020 0000 0000 0000 0000 0000 0000 0000 0000
| 0000030 1000 0080 1100 0080 0000 0000 0000 0000
| 0000040 0000 0000 0000 0000 0000 0000 0000 0000
| *
| 0000070 0000 0000 0000 0000 0000 0000 0000 0001
| 0000080

my documentation states that the product code is at offset 0x14, and the
configuration I have for TwinCAT says it's 0x7874656E. As this matches
(somehow), I started playing around with ec_fsm_sii_state_start_reading().
What's strange here is my documentation states bytes 0x504-0x507 are for
specifying the EEPROM address to read/write from/to. But the function
mentioned above uses only two bytes for the address. Is this intended?

I remember once getting some quite usable identification information
(like "0x00007874" or something for the product code) after
accidentially implementing buggy code, so I guess there _is_ EEPROM
data, and it does have some usable information.

Another thing is the EC_WRITE_U16 macro. Having a word offset of 0x40,
the resulting SII payload is:
| 80 01 40 00
which should be little endian, but actually isn't.

Greetings, Phil

PS: is there any way to getting information about EtherCAT (especially
SII structure) without becoming an ETG member?



More information about the Etherlab-users mailing list