I'm programming the linux application running on Freescale i.MX6UltraLite. I need to send CAN frames to
CAN bus using the flexcan module of i.MX6 soc, and the linux driver of flexcan is flexcan.c which is provided by Freescale (see it in attachment). I found that the application can run normally for sending and receiving can frames at 125Kbs bitrate.And the application also can receive can frames from CAN bus very well at 500kbs. But it will work abnormally in the process of sending can frames at 500Kbs.The details as follow:
(1) After hundreds of can frames which have more than 3 bytes data are sent normally at 500kbs, the application will cease to send can frames without any error messages.
(2) The can frame can be sent normally at 500kbs if there are only 1 or 2 bytes data in the data area of can frame. The above phenomenon will occur with any sending rate in thread.
I'm so appreciate for your help!
Best for you.
Original Attachment has been moved to: flexcan.c.zip
Original Attachment has been moved to: cansend.c.zip
It's not the business of software, it can run normally now on another PCB.