AnsweredAssumed Answered

Flexcan Communication issue with IMX-53 SABRE AI Rev B Board

Question asked by Tony Thomas on May 20, 2013
Latest reply on Nov 22, 2015 by TomE

Hi,

While transmitting CAN message using FLEXCANdriver the CAN ACK error is
occurring frequently. The error (as obtained from the print in the error handler) is given below

_______________ ENTEREDflexcan_err_handler__________________

____flexcan_err_handler_after____raw_readl__esr  =2152__

____flexcan_err_handler_after__raw_writel__esr  =2152__

____flexcan_err_handler___skb =df4e0f00__

_flexcan_err_handle >>>>> if(esr & __ESR_ACK_ERR)__

_flexcan_err_handle >>>>>if(__ECR_RX_ERR_COUNTER(ecr) >=
__ECR_PASSIVE_THRESHO

_______________ EXITflexcan_err_handler__________________


1.      The details of test  set up
a.      BoardName – IMX-53 SABRE AI Rev B
b.    Linuxkernel version of the BSP  -  2.6.35.3-850-gbc67621-g53145ea-dirty
c.      BSPversion - L2.6.35_11.03_ER_source_bundle
d.      CAN Test utility – IXXAT usb to can compact
e.    Installledcanutils and libsocketcan. The driver attributes are seen in/sys/devices/platform/FlexCAN.1/ and Flexcan0 (Ref: https://community.freescale.com/docs/DOC-1437)

2.      Steps followed after the system is booted (The CAN2 header in the Evaluation board is connected with CAN analyzer IXXAT USB to CAN compact)
a.      Tried with baud rate of 1Mbps with the setting done under /sys/devices/platform/FlexCAN.1
b.      (
br_Propseg =4; br_Pseg2=2; br_Pseg1=1;br_rjw =1 ; br_presdiv =3, br_clksrc = osc(CAN1 clk 24Mhz) (Set by "ech0 val >br_xyz")
c.      Ifconfig CAN1 up
d.      cansend can1 -i0x100 11 22 33 44

3.      Using the oscilloscope verified the following

a.      CAN_STDBY and CAN_EN of MC33902 CAN transceiver both high
b.      While transmitting there is activity in the CAN H and CAN L pin of MC33902transceiver.
c.      Bus activity in the CAN2_TXD and CAN2_RXD of the controller lines


Request to help in this to resolve  the issue. Thanks

Regards
Tony Thomas

Outcomes