Electronic – CAN Baud rate configuration – STM32F207

can

I need to configure the CAN module of a STM32F207 to the following different baud rates: 500 kbit/s, 600 kbit/s, 700 kbit/s, and 1 Mbit/s. For 500 kbit/s and 1 Mbit/s I am able to get exact integer values for the following registers.

  • Prescaler = 2 (CAN Controller's clocked @ 30 MHz)
  • BS1 Timequanta = 8
  • BS2 Timequanta = 6

But when I do the calculation for 600 kbit/s, I am not able to get integer values for the above mentioned registers.

Is it not possible to arrive at the exact register values for the baud rates 600 kbit/s, 700 kbit/s, etc.?

Best Answer

I have never heard of CAN going at 600Kbps. But can we work this out?

With a 30MHz clock, divided by 2, how many Tq do we need to achieve 600kbps?

15,000,000 / 600,000 = 25Tq

So, we use 1 Tq for the start bit, then we have to divide 24 Tq among BS1 and BS2. How about 14 and 10?