More than 3 TPDOs
PascalGuthof opened this issue · comments
I have another problem/question. But this is better placed in a new issue.
When I try to set up more than 3 TPDOs, it works in the editor. But the device makes an error when it tries to send this last PDO. As EMCY message comes "CO_EMC_CAN_OVERRUN" together with "CO_EM_EMERGENCY_BUFFER_FULL".
As soon as I delete the TPDO, the configuration works as planned.
If anyone knows advice, I have uploaded the xdd files and the OD files.
3PDOs.xdd: https://filehorst.de/d/eazcilwe
4PDOs.xdd: https://filehorst.de/d/eiFsCFgu
OD_3PDOs.c: https://filehorst.de/d/efxqekDa
OD_3PDOs.h: https://filehorst.de/d/eBJdufbz
OD_4PDOs.c: https://filehorst.de/d/enkgGsiJ
OD_4PDOs.h: https://filehorst.de/d/eevfnJEb
It seems, object dictionary is correct. There must be something else with the device. Can you provide some CAN messages?
Thanks for the reply.
Yes I actually also think that the OD is correct. But the successful running of the program depends on that alone.
Never mind. I have recorded a trace. The 4 PDOs have the ID 1A0, 2A0, 3A0 and 4A0. PDO 1-3 send numbers, PDO 4 is 0.
The last message is the mentioned EMCY message.
4PDOs.txt
I hope this is helpful.
4PDOsnew.xdd.txt
Can you check this one, ignoring the warnings. (rename to xdd)
This is certainly a strange behavior. There may be something wrong inside the driver. I think, this is not CANopenEditor issue.
- Fourth byte inside the emergency message is 0x14.
- inside CO_emergency.h:
CO_EM_CAN_TX_OVERFLOW = 0x14U,
- follow
CO_EM_CAN_TX_OVERFLOW
inside CO_emergency.c, where errors from driver are verified. - then follow
CO_CAN_ERRTX_OVERFLOW
inside the driver ...
Otherwise, wrongly configured object dictionary should not trigger CAN TX overflow.
Should we move the issue to the CanOpenNode?
Currently there is not enough information about the bug. Is it inside a driver? Custom driver or which?
Hello,
I have the same bug and I can t find why, in CO_CANsend
I have the error CO_ERROR_TX_OVERFLOW
When i put a breakpoint before CO_process_TPDO
, then it works and send all TPDOS, but the device will no longer receive any commands.
Must be something with the driver. Please ask there.