LPC1768 CAN-BUS init issue

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

LPC1768 CAN-BUS init issue

1,101 Views
testolin
Contributor I

hi, we have many products that sometimes fail the canbus baudrate settings:

"static void can_SetBaudrate (LPC_CAN_TypeDef *CANx, uint32_t baudrate)"

i attach the file we use to do the init of baudrate. almost all the time all is working fine, to replicate the issue, we put a board and power it on/off many times and usually after 1h we can replicate the issue. we found that sometimes, for unknow reason, the register "CANx->BTR" is not set! we tried also to make a while loop until the register is set but it never takes values when the problem happen.....

code:

/* Enter reset mode */

CANx->MOD = 0x01;

/* Set bit timing *Default: SAM = 0x00; * SJW = 0x03; */

CANx->BTR = (TSEG2<<20)|(TSEG1<<16)|(3<<14)|BRP;

/* Return to normal operating */

CANx->MOD = 0;

i looked on errata sheet but seem there is nothing about can. we were able to improve the issue but not to fix it completely. all other pheriperials of nxp mcu are working fine, power supply is good, no ripple no spikes.

here the code we use to init the can peripherial

void task_can_init(void) {

CAN_Init(LPC_CAN1, 500000 );

CAN_IRQCmd(LPC_CAN1, CANINT_RIE, ENABLE);

CAN_IRQCmd(LPC_CAN1, CANINT_TIE1, ENABLE);

CAN_IRQCmd(LPC_CAN1, CANINT_TIE2, ENABLE);

CAN_IRQCmd(LPC_CAN1, CANINT_TIE3, ENABLE);

CAN_IRQCmd(LPC_CAN1, CANINT_EIE, ENABLE);

CAN_IRQCmd(LPC_CAN1, CANINT_EPIE, ENABLE);

CAN_IRQCmd(LPC_CAN1, CANINT_BEIE, ENABLE);

CAN_SetAFMode(LPC_CANAF,CAN_AccBP);

//Enable CAN Interrupt

NVIC_SetPriority( CAN_IRQn, 1 );

NVIC_EnableIRQ(CAN_IRQn); }

in main.c this is the code:

//*******************// //*** INIT CANBUS ***// //*******************//

task_can_init( );

PINSEL_ConfigPin( EXT_CAN_TX_uP_Port, EXT_CAN_TX_uP_Pin, EXT_CAN_TX_uP_Func );

PINSEL_ConfigPin( EXT_CAN_RX_uP_Port, EXT_CAN_RX_uP_Pin, EXT_CAN_RX_uP_Func );

//*******************//

init is made at startup we have 300k machines now that MAY have this problem, and we are in production, so number will increase. hope you have some suggestion

Labels (1)
0 Kudos
Reply
0 Replies