Part Number: AM2434
Other Parts Discussed in Thread: TIDEP-01032
Dear TI Experts,
we are developing an application with an EtherCAT interface on an AM2434 microcontroller. We are using the Industrial Communication SDK V11.00.00.
For our application we need a timestamp. Our prefered solution would be to use the EtherCAT system time. We are trying to read this information from the EherCAT Slave Control Registers 0x0910-0x0917. However, there is unexpected behaviour. I am not sure if I am missing something or if there is another problem.
Two questions/problems have come up:
- The values in the registers 0x0914-0x0917 are not updated. The device is connected to an EtherCAT master (Beckhoff IPC) and is running in DC Sync mode. I see that the values in the registers are set initially as I switch the system to run mode. Afterwards, only the values in 0x0910-0x0913 are changing. There should be an overflow every ~4 seconds leading to a change in the higher registers, but this does not happen.
I also tried reading the register values of our slave device using TwinCAT. Here, the values are updated. After I read the registers, I can also see updated values in the registers, if I read the values in our controller application.
Do I need to call any function in order to update the System Time registers 0x0914-0x0917? Or am I missing something else? - If our device is not connected to any EtherCAT master, the system time always shows 0. Is this normal bevaviour? I would have expected that there is a "local time" of the device, which starts at zero.
I´ve tried two ways of reading the register:
- Direct access using a pointer to the register address
- Using the EtherCAT Slave API function EC_API_SLV_readDoubleWordEscRegister() from ecSlvApi_esc.h
The behaviour is identical in both ways.
Thanks a lot in advance for your support!
Best regards,
Christian
