This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCAN4550: CAN communication in some random node stops after some time due to MCAN global interrupt bit being set

Part Number: TCAN4550

Hi there,

I have been testing a CAN setup with around 40 nodes and everything works good but after every now and then the communication of some random node stops while all other nodes on the line still properly communicate. When I tried to figure out the issue , I found out that in the node in which the communication stops the MCAN global interrupt bit somehow gets set and if i forcefully clear that bit the node starts working fine again. One more observation is that sometimes only reception goes off while the transmission is still sometimes active.

Any idea on what might be its probable cause and solution.

Thank you.

Regards

Jayam

  • Hi Jayams,

    Are you able to check what other interrupt bits are set when a TCAN4550 stops communicating? The M_CAM Global Interrupt indicates that one or more of the bits are set in the M_CAN Interrupt Register (address=h1050). Reading this address will tell us exactly what error is being reported if any. 

    With reception failing while transmission appears unaffected, I suspect the M_CAN interrupt may be indicating the RX FIFO is full. This can occur when the system cannot pull data out of the FIFO fast enough through SPI and the FIFO fills up with un-relayed CAN data. This is common in systems with high CAN data rates relative to the SPI rate or when the MCU cannot consistently read and clear data from the RX FIFO. Does this sound like a possibility in the system under test here? Again, reading the M_CAN Interrupt Register will let us know for use. 

    Regards,
    Eric Schott

  • Thanks for the reply Eric, I will try increasing the SPI speed and will follow up thereafter.

    Here is a comparative log of register values I read when communication was working properly vs when it stopped.

    CAN stopped: 

    Status Reg 0x000C: 8

    Interrupts Reg 0x0820: 84e2

    MCAN Intrpt Reg 0x824: 10105

    Error Count Reg 0x1040: 0

    Protocol Status Reg 0x1044: 25300f

    Interrupt Reg 0x1050: 10105

    Mode Control 0x0800: c84004a0

    Rx FIFO 0 Configuration 0x10A0: 8010000c

    Rx FIFO 0 Status 0x10A4: 1010110

    Normal time log:

    Status Reg 0x000C: 8

    Interrupts Reg 0x0820: 84e0

    MCAN Intrpt Reg 0x824: 10000

    Error Count Reg 0x1040: 0

    Protocol Status Reg 0x1044: 25300f

    Interrupt Reg 0x1050: 10000

    Mode Control 0x0800: c84004a0

    Rx FIFO 0 Configuration 0x10A0: 8010000c

    Rx FIFO 0 Status 0x10A4: 0

    Please do reply if you have some more insights on this.

    Thanks again.