OpenEtherCATsociety / SOES

Simple Open Source EtherCAT Slave
Other
559 stars 244 forks source link

Failing CTT test TF-2302 SDO Complete Access Upload #139

Closed nakarlsson closed 1 year ago

nakarlsson commented 1 year ago

Failing CTT test TF-2302 SDO Complete Access Upload for slaves that have bit oriented SDOs. The sanity readback of data in TF-2302 failes due to the Upload response get stored in wrong bytes.

Example BOOL1 and BOOL2 in one SDO

BOOL1 bitoffset 16 BITS2BYTES -> Byte 2 BOOL2 bitoffset 17 BITS2BYTES -> Byte 3 <-- incorrect Byte position.

Add new macro to calculate the actual byte position for a bitoffset.

define BITSPOS2BYTESOFFSET(b) (b >> 3)

BOOL1 bitoffset 16 BITSPOS2BYTESOFFSET-> Byte 2 BOOL2 bitoffset 17 BITSPOS2BYTESOFFSET-> Byte 2 <-- correct