Instable connection when moving from PCI Express to PCI Express FD
Posted: Wed 12. May 2021, 11:15
Hello,
we have successfully been using the PCAN-PCI Express Dual Channel cards (IPEH-003027) for a few years now to control some motor control boards which support CAN 2.0B.
I recently tested the same setup with a PCAN-PCI Express FD Four Channel card (IPEH-004040). The motor board does not support CAN FD but from what I understood it should be backward-compatible, so I was expecting it to work in the same way as with the old card.
However, while I am able to connect to the board and control the motors, the connection is much less reliable, resulting in instable motor control.
I monitored the timing of message that is sent by the board at a fixed rate of 1 kHz using `candump`. While with the old card the timing is pretty stable (mean error around 0.02 ms), there are significant delays when using the new one (mean error of 0.3 ms).
Unfortunately, I am not really an expert in CAN. Is the FD card expected to work out of the box on a CAN 2.0B bus or do I need to adjust some configuration?
The only configuration we are doing at the moment is the following:
Some background info: We are working on Linux with a PREEMPT_RT-patched kernel and are using the standard drivers that are included in the kernel. I tried with kernel versions 4.14.59 and 5.6.19, both showed the same behaviour.
I also tried building the latest version of the proprietary driver with netdev support but the result was the same.
Any advice on how to fix or at least further debug this issue would be much appreciated.
we have successfully been using the PCAN-PCI Express Dual Channel cards (IPEH-003027) for a few years now to control some motor control boards which support CAN 2.0B.
I recently tested the same setup with a PCAN-PCI Express FD Four Channel card (IPEH-004040). The motor board does not support CAN FD but from what I understood it should be backward-compatible, so I was expecting it to work in the same way as with the old card.
However, while I am able to connect to the board and control the motors, the connection is much less reliable, resulting in instable motor control.
I monitored the timing of message that is sent by the board at a fixed rate of 1 kHz using `candump`. While with the old card the timing is pretty stable (mean error around 0.02 ms), there are significant delays when using the new one (mean error of 0.3 ms).
Unfortunately, I am not really an expert in CAN. Is the FD card expected to work out of the box on a CAN 2.0B bus or do I need to adjust some configuration?
The only configuration we are doing at the moment is the following:
Code: Select all
ip link set can0 type can bitrate 1000000
I also tried building the latest version of the proprietary driver with netdev support but the result was the same.
Any advice on how to fix or at least further debug this issue would be much appreciated.