FlexCAN Testing

i am writing to inquire about the FlexCAN module on our i.MX8QM-Apalis-Ixora board. We are currently testing the ability to send 3000 CAN frames in one second using the FlexCAN module, but we are facing some difficulties.

Initially, we attempted to use JCOM monitor and simulator for testing, but unfortunately, we were not able to send 3000 CAN frames using the simulator. We also found that JCOM monitor did not have the option to send 3000 CAN frames.

Next, we tried using the can-utils package(cansend and candump) and created a bash script to send the 3000 frames, but it took around 30 to 34 seconds to send all the frames.

We would greatly appreciate it if you could suggest any alternative testing methods or provide any guidance on how we can achieve sending 3000 CAN frames in one second using the FlexCAN module on our custom board.

Furthermore, we have set up two imx8qm-apalis-ixora boards, each with three FlexCAN connections. We intend to send CAN frames from one imx8qm-aplis-ixora board and receive them on the other imx8qm-apalis-ixora board. Could you please provide us with some guidance on how to set up and test this scenario effectively?

Hi

You mentioned 3000 msgs/s several times, but not the arbitration bitrate. 3000/s likely should fit 250kbps, but probably not 125kbps.

What about cansequence, cangen and canplayer from the same can-utils?

We have successfully brought up the CAN interface with the following command: ip link set can0 up type can bitrate 1000000. this bitrate are both side.

With this setup, we have been using the cansend and candump utilities from the can-utils package to send and receive CAN frames in a bash script. However, we have noticed that the achieved message rate falls short of our expectations.

Hi @Rohit_1,

Can you please share in detail like how many lost package, what is your testing setup? What is cpu and bus load while testing?

Additionally you can test using canfdtest and see if you get better result.

Best Regards
Ritesh Kumar

HI

I apologize for the delay in my response as I was occupied with another task. Thank you for your previous assistance. I wanted to provide you with an update on our CAN communication setup.

We have successfully established the communication between two imx8qm-apalis-ixora boards, each equipped with three FlexCAN connections. We tested the system by sending 3000 CAN frames from one board to the other. While we did not experience any frame losses, we noticed that it took approximately 35 to 38 seconds to transmit all the frames. The transmission time seems longer than expected.

The command “ip link set can0 up type can bitrate 125000” is used to bring up the CAN interface with a bitrate of 125000.

As suggested, we have conducted tests using the canfdtest utility in order to improve the transmission time of CAN frames. However, we have not observed any significant improvement in the overall performance.

Once again, I apologize for any inconvenience caused by the delay in my response. Your continued support and expertise in resolving this matter are highly valued.

Thank you for your attention to this matter.

Hi

Your bitrate is way too low for such message rate. Using extended ID’s @1M you could top at about 8-9k msgs /s. With standard ID’s perhaps about 12k or more msgs/s. But at 1/8 of 1M 3kmsgs/s is not achievable.