AnsweredAssumed Answered

can issue

Question asked by Kevin Spannaus on Feb 23, 2019
Latest reply on Mar 4, 2019 by Kevin Spannaus

Hello,

 

i use flexcan with an imx6ul.

 

After setup can0 

ip link set can0 up type can bitrate 125000

i send a frame like this

cansend can0 500#1E.10.10

the expected behavior was that the frame is send once.
But thats not the case, it sends continuously.

 

When i try to send data via 

cangen can0

only the first frame will be send (continuously) and a error appears --> 

# cangen can0
write: No buffer space available

 

First i thought the "master" need the acknowledge bit at the end, so i but an another bus "member / slave" into the bus and set it up like this

ip link set can0 up type can bitrate 125000
cansniffer can0

after that, the acknowledge bit was "green" (scoped that with an oscilloscope)

 

 

When i use vcan0 

modprobe vcan ip link add dev vcan0 type vcan ip link set up vcan0 mtu 72

and send data like this

cansend vcan0 123##3112233445566778899aabbccddeeff

and catch it with

candump -ta -x vcan0

everything works well. 

 

In this case it must be a wrong HW framebuffer config!?

 

Btw. i have the same issue in case i use QT - serial (#include <QCanBus>)

// create frame and put data into it
QCanBusFrame frame;
frame.setFrameId(frameId);
frame.setPayload(payload);
    // send frame
device->writeFrame(frame);

so it can not be
cansend can0
either.

Here is the output from #ifconfig

can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00   
         UP RUNNING NOARP  MTU:16  Metric:1
         RX packets:1 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:10  
         RX bytes:8 (8.0 B)  TX bytes:0 (0.0 B)
         Interrupt:26

looks wrong for me...


This dude had similar problems.
i.MX6 FlexCAN linux 3.0.35-4.1.0 yocto 

So i checked the pinctrl one more time:

&can1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
status = "okay";
};

pinctrl_flexcan1: flexcan1grp{
fsl,pins = <
MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
>;
};

Outcomes