# CAN Bus Bit Timing Calculator

Use the calculator below (requires JavaScript) to calculate all possible sets of CAN bus parameters for a given input frequency and a given bus speed.

The input frequency is the frequency you are feeding the CAN controller with. For example, if you are using a standalone CAN controller and a 16 MHz oscillator, you would enter ’16’ in the field below. Most, if not all, CAN controllers, standalone or built-in, will then divide that frequency by 2 before actually using it.

• (MHz)
• (kbit/s)
• 0% 0.5% 1.5%

### Results

Share
T1 T2 BTQ SP% SJW BIT RATE ERR% BTR0 BTR1
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81
8 8 16 56.25 4 250 0 81 81

#### Lots of values, but which should I use?

The calculator will show you all possible settings that meet your requirements. If the requirements can’t be met at all, you will see a message stating this. If the requirements can be met, but only within the specified tolerance, the deviation will be shown in the Err% column.

• Use an exact match, if at all possible.
• If the system designer or someone else has defined values for the SJW and/or the position of the sampling point, use them.
• If you don’t know which value to choose for the SJW, use 1 (one).
• If you don’t know which value to choose for the sampling point, use 75% or something close to that.
• For laboratory work almost any setting will work.
• The number of quanta in a bit is, in itself, not interesting. It does affect the absolute length of the SJW, however. If two sets of bus parameter differs in the number of quanta only, and you or someone else don’t have firm opinions about the length of the SJW, you can pick either one.

#### What use are the Bus Timing Register values?

Most CAN controllers are using two registers to define the bus parameters. They tend to look the same in all controllers – Microchip 2510 and friends being a notable exception. The names of the bits in these registers might vary from chip to chip but their meaning is usually the same.

The values displayed in the table are useful for the type of registers found in Philips 82C200, Philips SJA1000, Intel 82527, Infineon C16x and C5xx series and many more. You might want to check if the bit timing registers in your favorite CAN controller is compatible with the registers in these controllers. If so, you can use the values right away.

#### Are really all possible values shown?

No, some controllers will allow you to break the CAN spec. We don’t show these values in the table.

# My Last Timings

• {{calc_data.id | date:'dd-MM-yyyy' }}

View