Hello,
Thank you for your reply. Yes , I could change the CAN bit rate run time. I have made changes in CANx_CTRL1 register. I was looking for 250 kbps nad 500 kbps baud rate change in run time. So I have used,
for Bit rate = 250 Kbps
Ftq = (Fcan_clk / Prescalar value), Fcan_clk = 20.9715 MHz, PREDIV = 6,
Bit rate = (Ftq / No. of time quanta), Ftq = 3.49525 * E6, No. of time quanta = (Sync Seg + PROPSEG + PSEG1 +2 + PSEG2 +1) = 14,
bit rate = 249.62 kbps.
Like wise we have calculated for 500 kbps.
CAN0_CTRL1 |= CAN_CTRL1_PSEG1(0x01) |
CAN_CTRL1_PSEG2(0x01) |
CAN_CTRL1_TSYN_MASK |
CAN_CTRL1_LBUF_MASK |
CAN_CTRL1_PROPSEG(0x01); /* Setting CTRL1 register */
For changing bit rate run time, disable CAN interrupt then change the CANx_CTRL1 values, initialize CAN again and enable the interrupts.
Thanks a lot,
Kirti