Dear Sir.,
We are using TM4C1294NCPDT microcontroller and CAN1 communication.We are communicating two PCB with CAN communication. We received CAN Communication fault error randomly. We could not able to run, please let me know if i add any initialization for CAN configuration.
This is for 1st PCB CAN1 initialization,(Transmitting)
SysCtlPeripheralEnable(SYSCTL_PERIPH_CAN1);
CANInit(CAN1_BASE);
CANBitRateSet(CAN1_BASE, SysClkFreq, 500000);
CANIntEnable(CAN1_BASE, CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS);
IntEnable(INT_CAN1);
CANEnable(CAN1_BASE);
CAN1MsgRx.ui32MsgID = CAN1RXID;
CAN1MsgRx.ui32MsgIDMask = 0;
CAN1MsgRx.ui32Flags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER;
CAN1MsgRx.ui32MsgLen = sizeof(g_ui8CAN1RxData);
CANMessageSet(CAN1_BASE, CAN1RXOBJECT, &g_CAN1MsgRx, MSG_OBJ_TYPE_RX);
This is for 2nd PCB CAN1 initialization,(Receiving)
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
GPIOPinConfigure(GPIO_PB0_CAN1RX);
GPIOPinConfigure(GPIO_PB1_CAN1TX);
GPIOPinTypeCAN(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_CAN1);
CANInit(CAN1_BASE);
//CANRetrySet(CAN1_BASE, false);
CANBitRateSet(CAN1_BASE, g_ui32SysClkFreq, 500000);
//CANIntRegister(CAN1_BASE, CAN1IntHandler);
CANIntEnable(CAN1_BASE, CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS);
IntEnable(INT_CAN1);
CANEnable(CAN1_BASE);
CAN1MsgRx.ui32MsgID = CAN1RXID;
CAN1MsgRx.ui32MsgIDMask = 0;
CAN1MsgRx.ui32Flags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER;
CAN1MsgRx.ui32MsgLen = sizeof(g_ui8CAN1RxData);
CANMessageSet(CAN1_BASE, CAN1RXOBJECT, &g_CAN1MsgRx, MSG_OBJ_TYPE_RX);
If you need any information please let me know.
Thanks in advance.