S32K142 CAN0 can't work

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

S32K142 CAN0 can't work

1,203 Views
jimmyli
Contributor IV

Hi,

     I am debugging the CAN function by S32K142, but the CAN can't work.

     1>Board: S32K142EVB-Q100

     2>SDK:   S32K1xx RTM SDK V3.0.0

     3>Example (from SDK): can_pal_s32k142

     4>Debug status:

          a. build the project and enter debugging successfully;

          b. set breakpoint, as below:

          c. when press the button sw2 or sw3, it can enter the ISR and goes to breakpoint 1/2;

          d. when pass the breakpoint 3, I can't receive any data(probe the PTE5/CAN0_TX by oscilloscope);

              Note: PTE5 is keeping '1' atfter reset.

     Hope your help.

     Thanks.

//-------------------------------------------------------------- 

void buttonISR(void)
{
/* Check if one of the buttons was pressed */
uint32_t buttonsPressed = PINS_DRV_GetPortIntFlag(BTN_PORT) &
((1 << BTN1_PIN) | (1 << BTN2_PIN));
bool sendFrame = false;

if(buttonsPressed != 0)
{

/* Set FlexCAN TX value according to the button pressed */
switch (buttonsPressed)
{
case (1 << BTN1_PIN):
ledRequested = LED0_CHANGE_REQUESTED;
sendFrame = true;
/* Clear interrupt flag */
PINS_DRV_ClearPinIntFlagCmd(BTN_PORT, BTN1_PIN);   //----Set Breakpoint 1
break;
case (1 << BTN2_PIN):
ledRequested = LED1_CHANGE_REQUESTED;
sendFrame = true;
/* Clear interrupt flag */
PINS_DRV_ClearPinIntFlagCmd(BTN_PORT, BTN2_PIN);    //----Set Breakpoint 2
break;
default:
PINS_DRV_ClearPortIntFlagCmd(BTN_PORT);
break;
}

if (sendFrame)
{
/* Set information about the data to be sent
* - Standard message ID
* - Bit rate switch enabled to use a different bitrate for the data segment
* - Flexible data rate enabled
* - Use zeros for FD padding
*/
can_buff_config_t buffCfg = {
.enableFD = true,
.enableBRS = true,
.fdPadding = 0U,
.idType = CAN_MSG_ID_STD,
.isRemote = false
};

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

/* Prepare message to be sent */
can_message_t message = {
.cs = 0U,
.id = TX_MSG_ID,
.data[0] = ledRequested,
.length = 1U
};

/* Send the information via CAN */
CAN_Send(&can_pal1_instance, TX_MAILBOX, &message);   //----Set Breakpoint 3
}
}
}

//------------------------

Labels (2)
Tags (4)
2 Replies

955 Views
jiri_kral
NXP Employee
NXP Employee

Hi, 

are you using external 12V power supply? This example requires it. 

Jiri 

955 Views
jimmyli
Contributor IV

Hi Jiri,

      I just use usb for power supply. I can try again.

      Thank you.

0 Kudos
Reply