bnjmnp / pysoem

Cython wrapper for the Simple Open EtherCAT Master Library
MIT License
101 stars 37 forks source link

add get and set function for "blockLRW" flag of CdefSlave class #46

Closed Bean-Beret closed 2 years ago

Bean-Beret commented 2 years ago

Several ethercat devices based on the older TI Sitara processor cannot be used by pysoem, because they do not support LRW. The proposed workaround by TI for this issue when using SOEM is to set the blockLRW flag in the slave. To be able to do that out of pysoem, I added a set and a get function. Any chance to get that in? Or is there already a way to do that which I overlooked?

Further description of the issue from TI forum is here: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/435658/ethercat-using-lrw-communication and here: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/546383/am335x-ethercat-slave-errata-root-cause

bnjmnp commented 2 years ago

Hi, did you take a look at issue #12? A special send_overlap_processdata() was introduced for TI ESCs to work (plus config_overlap_map()). Or is access to the blockLRW flag something one needs in addition?

Bean-Beret commented 2 years ago

yes you are right, I overlooked that in the first place: My TI ESC works with the overlap functions. Setting blockLRW is a workaround, which is not needed in that case. So I close this merge request.

bnjmnp commented 2 years ago

Okay, good to know that it works.

Bean-Beret commented 2 years ago

btw: thanks for making and maintaining pysoem