Hello,
I am porting our EtherCAT slave stack (KPA) to Sitara (am3359 ICE board with SDK 1.0.0.5).
I have found some bugs:
1) it is possible to write mailbox from slave stack when it is "full" (reg. 0x80d.3==1, when it has been written by slave stack but not read by master). Is it known unsupported feature described as "PDI side register permissions" or something else?
2) reading ESC system time (reg.0x910..0x913) by slave stack returns the value latched by latest Master read of this register, i.e. after reset - 0, then always the same value I read by EtherCAT configurator. So, it seems reading from slave application doesn't latch the time value. Is a workaround for this?
3) I tested the slave with 2 inputs and 2 outputs SM (with 4 FMMU for them, plus one for mailbox state) with different cyclic commands used for data exchange (LRD/LWR, LRW, FPRD/FPWR). The only one working configuration I get is FPRD/FPRW (when Master reads memory from one slave selected by a physical address, FMMU's are not used). LRD/LWR and LRW commands for first inputs/outputs SM's (SM2 and SM3) work, but output data of second SM's are copied to inputs (i.e. data of SM4 (outputs) == data of SM5 (inputs), I see it in master and with Wireshark).
According to the following known limitation:
SDOCM00092510 EtherCAT: Single datagram accessing multiple FMMU mapped areas. Workaround: Split the access spanning multiple FMMUs to seperate datagrams,
I split all SM accesses to different EtherCAT cycles (access to one SM in one cycle, checked with Wireshark) but also didn't get working data exchange.
Have been EtherCAT slave on Sitara tested with 4 inputs/outputs SM's and FMMU's? Is a workaround or bug-fix for this?
All these points have been tested on ET1100 with the same sources of the slave stack and application (only adapted to other platform) and worked without these bugs.
Best regards,
Andrey.