S32K146 CAN problem

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

S32K146 CAN problem

952 Views
347996379
Contributor III

can initialize:

PINS_DRV_SetMuxModeSel(PORTC, ePIN_17, PORT_MUX_ALT3); 
PINS_DRV_SetMuxModeSel(PORTC, ePIN_16, PORT_MUX_ALT3); 
CAN_Init(&can3_pal_instance, &can3_pal_Config0);
CanSetRate(canNum, rate);
/* Configure Rx message buffer with index 1 to receive frames with ID 2 */
CAN_ConfigRxBuff(&can3_pal_instance, eCAN2_RX_BOX, &RcvInfo, RX_MSG_ID);

Send function:

/* Configure TX buffer with index TX_MAILBOX*/
CAN_ConfigTxBuff(&can3_pal_instance, eCAN2_TX_BOX, &buffCfg);

status = CAN_Send(&can3_pal_instance, eCAN2_TX_BOX, &sendMsg);

Receive function:

/* Start receiving data in RX_MAILBOX. */
CAN_Receive(&can1_pal_instance, eCAN0_RX_BOX, &canRxMsg);

My hardware is:

pastedImage_10.png

pastedImage_11.png

hello SDK:

when I use CAN_h\CAN_l frequently, the program always enters "DefaultISR", or CAN receive buffer cannot enter "FLEXCAN_MB_IDLE", which is always busy.Therefore, the original CAN was sent normally, but now CAN CAN no longer restore the original sending state.Can can resume working only through software reset or power-on reset.Why is that?How to solve this problem?

0 Kudos
1 Reply

802 Views
alexandrunan
NXP Employee
NXP Employee

Do you have enabled all the clocks before use the CAN driver, did you that ?

You get default ISR because you probably trigger an exception you need to identify what cause that first ! Try to step in functions to identify exactly at what line is crashing.

0 Kudos