Problems description:
We using AM335x (ICE-EVA board fig.1) to implement our EtherCAT Slave application
(Our device we going to using AM3357 as our EtherCAT slave IC)
Fig 1.
We use an EtherCAT master (Vendor: 3S, Product: Codesys, a 3rd party products) to control the slave device.
The first step for a Codesys EC-Master, It will try to recognized the EtherCAT slave devices, read some information back. According to EtherCAT standard, These information will stored in EtherCAT slave IC’s EEPROM.
Via read EEPROM process which is to get “vendor ID” and “Product code” etc. from slave EEPROM…, The “VendorID” and “Product code” are 32bit number which are stored in AM335x memory and TI-EtherCAT PRU will emulate EEPROM process.
We found ICE-EVA board (using AM335x ) EtherCAT PRU has timing issue that lead to the EtherCAT master read back the wrong EEPROM value.
We using the EtherCAT master to connect other EtherCAT slave devices ( Those slave using beckhoff ET1100, ET1200…chip sets), and no such problems are observed. We also checked the Ethernet packets using sniffer, the Ethercat frames issues from the master also no problem. So we sure the EtherCAT master is fine.
According to ET1100 (EtherCAT Slave IC) data sheet. (as following fig2)
It shows the ways to read or write EEPROM steps for EtherCAT master vendor.