can issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

can issue

1,417 Views
k_spannaus
Contributor II

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)

pastedImage_14.png

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
 >;
 };

Labels (1)
0 Kudos
2 Replies

1,185 Views
jimmychan
NXP TechSupport
NXP TechSupport

which version of the kernel BSP are you using?

0 Kudos

1,185 Views
k_spannaus
Contributor II

I found the problem.

CANL had a lose connection (cold joint solder), what disrupted the signal transmission.

0 Kudos