Open hanafym opened 8 months ago
Nvm i totally missed the implementation in the function EcMaster::writeData(uint32_t domain), however it takes a really long time for synchronization, more than 10 seconds, is this normal?
Hi @hanafym what is your cycle time and how are you checking synchronisation?
I'm also looking into the DC-Sync implementation to hopefully solve some jitter issues. In the EtherCAT master documentation about the DC-Sync I understand the Drift compensation topic to mean that the time controller gradually works out the drift so maybe this can take some time: https://gitlab.com/etherlab.org/ethercat/-/jobs/artifacts/stable-1.5/raw/pdf/ethercat_doc.pdf?job=pdf
I am using a cycle time of 4 ms, and I am checking synchronization by reading the register 0x92c (which stores the system time difference) from the controller. Yes I couldn't find anything specifying how long synchronization usually takes so I guess the users simply needs to wait for it to be complete.
Hi, I don't know if this is an issue per se, but I have noticed that the following snippet from the function void EcMaster::update(uint32_t domain) in ec_master.cpp
only gets called once, unlike the implementation in the igh example https://gitlab.com/etherlab.org/ethercat/-/blob/master/examples/dc_user/main.c?ref_type=heads where they are called every cycle. Is there a reason why it is implemented this way here. Also how would that affect dc synchronization mode using SYNC0 signal. I expect that the slave clocks would need to be synched every now and then due to the clock drift.