-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Impossible to use more than 2 TPDOs #23
Comments
Hi @Alrick-gr , I don't know about your TPDO settings and etc, but I can tell you that I'm using more than two PDOs with this code and there is no problem in the code itself. Check to see if PDO id are not colliding with another node sending same PDOs. Check your hardware and also log the CAN packets to see what is happening. |
Hi @HamedJafarzadeh I don t have any other device connected excepted a USB-to-CAN so my device is the only one to send. But i think there is a bigger problem because it seems that i can't send heartbeat. |
Can you set the COBs like this : 0x0181 Note that TPDOs are usually like this : 0x180+nodeID, 0x280+nodeID , .... Also introduce a Inhibit time of 10 to all of them. What is your micrcontroller ? Are you using the latest build of ObjectDictionary editor ? |
Also try to work with the event timer, set different values for each TPDO. Maybe there is noise on the line and it cannot transmit packets fast enough hence tx buffer overflows. Also make sure there are terminal resistor properly installed on the line. |
@HamedJafarzadeh any idea ? |
@Alrick-gr Hi! Have you solve this issue? I think I have the same issue. |
My issue detail : https://stackoverflow.com/questions/76226213/the-problem-of-sending-more-than-4-tpdo-using-canopennode |
Hi @Ashenoneq |
Hi @Alrick-gr |
Hi! @HamedJafarzadeh @Alrick-gr
|
hi @Ashenoneq |
Can I take a look at your OD.c file? |
yes here it is :
It is exported in LEGACY mode |
I'm sorry, I also don't know where the problem lies. |
I had a similar issue sending more than 3 PDO´s every sync signal. Evertime I used more than 3 PDO´s, I got an overrun error. This stopped the error, but the messages still weren´t sent on the right timing. So I kept searching and found out, that it seems like, if a message cant´t be transmitted via "CO_CANsend" (this is indicated if "prv_send_can_message" can´t find a free mailbox, which are limited to 3 in my MCU) a flag (bufferFull) is set and a counter (CANtxCount) gets incremented. This solved my issue and I hope it could help a little bit. |
thank youfor your answer @Kyroke. |
Hello,
When I m using more thant 2 TPDOs (configured with the OD_editor), the 2 first TPDOs are sent and then, nothing happens.
In
CO_CANsend
I have the errorCO_ERROR_TX_OVERFLOW
. If i only use 2 TPDOs, it works perfectly.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.The text was updated successfully, but these errors were encountered: