-
-
Notifications
You must be signed in to change notification settings - Fork 67
Description
Hi everyone,
I've recently started working with CANopenLinux on a Raspberry Pi, and I'm running into some trouble getting TPDOs to transmit automatically on SYNC messages.
So far, I've managed to bring up the CAN network through the console and successfully initialized a node. I also used CANopenEditor to tweak a sample EDS file to enable heartbeats, which is working as expected.
The issue starts when I try to configure a TPDO to be triggered by SYNC. I’ve set the transmission type to 0x01, which should make the TPDO transmit on every SYNC message. However, when I check the transmission type via SDO, it still shows 0xFE in that entry — which, as far as I know, means "manufacturer-specific".
Even if I try writing 0x01 via SDO download, it seems to accept the change (no error), but I still don’t see any TPDOs being sent on SYNC. When I read the entry via SDO upload, I can see that the value is set correctly to 0x01.
Another thing I noticed is the COB-ID: in the EDS file, it's set to 0x184, but when I read it via SDO, I get 0x0C000184. Is that extra "C" always included automatically by the stack to always disable RTR frames ? For information: I only changed the OD in the examples folder and used the standard make- and programmfiles.
I'm wondering what I’m missing here. Why won’t the TPDO send on SYNC, even though I’ve set the transmission type correctly (or at least I think I have)? I’ve attached my EDS file in case someone can spot something I’ve overlooked.
Any help would be greatly appreciated!
Thanks in advance!