S32K CAN cannot resume sending and receiving data

cancel
Showing results for 
Search instead for 
Did you mean: 

S32K CAN cannot resume sending and receiving data

417 Views
1351291614
Contributor I

Hello,

               I met a problem, now is to use FLEXCAN bus when sent off after initialization, many times I will use the broken bus, typically within a minute to even the can bus to send and receive data, after a minute or more time I on the bus, he was unable to send data, I read the status register has a value of 0 x40080 ESR1, register status is normal, but the state - > MBS [mb_idx] = = FLEXCAN_MB_TX_BUSY,If the state - > MBS [mb_idx]!=FLEXCAN_MB_IDLE cannot emit data, how can I know this state?Looking forward to your reply,

   thank you

0 Kudos
2 Replies

232 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi, 

this status read from ESR1 indicates the module is synchronized to the bus and see the bus idle.

So there could be issue with a driver. Which SDK version you are using?

You can try to call FLEXCAN_DRV_AbortTransfer() and see if it helps.

Also do you detect any errors during the time the FlexCAN appears to be working?

BR, Petr

0 Kudos

232 Views
1351291614
Contributor I

hi,

  I use the rtm3.0 SDK,Bus synchronization and idle 0x40080,I found a problem. Sometimes when I disconnect can? H, ESR1 is still 0x40080 sometimes, and sometimes it is in other error states, but it is stillstate - > MBS [mb_idx] = = FLEXCAN_MB_TX_BUSY。I can only use it FLEXCAN_DRV_AbortTransfer() when something goes wrong,But in normal condition, I should not call him, and whether he can send the received work or not, I should not use it. It's been a problem for a long time.

0 Kudos