MPC5606B Bus Off Issue

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

MPC5606B Bus Off Issue

915 Views
曾经怀念
Contributor II

Hi all,

 

   I found when I enter the Bus Off too long(5min~15min) ,the chip will enter the Error Passive state and will not recover .

Moreover ,If I set the Error Interrupt, it will not enter the Bus Off Interrupt .When I clear the Error Interrupt flag ,the chip wil clear both of them .So it still in Bus Off state and will not recover .

167209_167209.PNG1.PNG

167222_167222.PNG2.PNG

167223_167223.PNG3.PNG

 

Regards

Labels (1)
Tags (2)
0 Kudos
2 Replies

652 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

First of all, be sure the full register access is used to clear particular IRQ flag. The flag is cleared by writing 1 into a bit position, so if the bit access is used, read-modify-write operation is done and so other flags may be cleared unintentionally, causing not generating the pending interrupt.

See more in following EB758 document; http://cache.freescale.com/files/32bit/doc/eng_bulletin/EB758.pdf.

 

Regarding the Bus-off functionality …

In case the automatic recovery mode is disabled, BOFF_REC = 1, the recovery from bus-off starts after both independent events have become true:

  • 128 occurrences of 11 consecutive recessive bits on the CAN bus have been monitored
  • BOFF_REC has been cleared by the user

So if negation happens

- before 128 sequences of 11 recessive bits are detected on the CAN bus, then Bus Off recovery happens in similar way as in automatic recovery way.

- after 128 sequences of 11 recessive bits occurred, then FlexCAN will resynchronize to the bus by waiting for 11 recessive bits before joining the bus.

 

In automatic Bus-off recovery mode the behavior is the same, you just do not clear BOFF_REC, soo… after 128 sequences of 11 recessive bits occurred, then FlexCAN will resynchronize to the bus by waiting for 11 recessive bits before joining the bus.

BR, Petr

0 Kudos

652 Views
曾经怀念
Contributor II

Hi Petr,

         Thanks for your reply.

        In my code, I disable the automatic recovery mode and set the BOFF_MSK only ...If I enter bus off , recover it after 200ms

      1.PNG

I would like to know whether the work is stable for a long time .Then , I found when I let the CAN staty at the bus off environment too long(5min~15min) ,the chip will enter the Error Passive state and will not recover .

Regards

0 Kudos