Bit Timing Calculator for CAN FD
This page tries to help you calculate the bus timing parameters needed in order to set up a reliable CAN system.
1. Device Characteristics
We need to know three device characteristics in order to do the system analysis; Clock Frequency of the device, the deviation of the device clock (measured in ppm, parts per million), and the device's total node delay - i.e. the sum of input and output delay of the device. Your CAN device supplier should be able to assist you with these values. Do not worry about the prescalers for now, if possible, they can be adjusted later in the Individual Bus Timing Parameter table at the bottom of the page.
FREQUENCY (kHz) | TOLERANCE (ppm) | NODE DELAY (ns) | PRESCALER NOMINAL | PRESCALER DATA | |
---|---|---|---|---|---|
40 000 | 5 000 | 200 | 1 | 1 |
System Tolerance: 4000 ppm
System Device delay: 200 ns
When specifying more than one device, you will notice that the Base Frequency is the lowest common divisor. We will use this Base Frequency to calculate a common sample point for all of the devices. The System Tolerance is the worst case tolerance which occurs when the two "worst" devices talk to each other, i.e. twice the highest tolerances specified. (We assume that your system actually has more than one of each device specified in the table). Likewise, the System Node Delay is twice the highest values in the Node delay columnn . Likewise, the System delay is the sum of the highest input and output delays.
2. Bitrates
Now we should specify the Nominal bitrate and Data bitrate we would like our system to use.
3. Calculate System Parameters
Hit the "Recalculate" button to force a recalcutaion
Warnings and Messages:
The below two tables shows the calculated values, first for the nominal bitrate and then for the data bitrate. The tolerances df1 through df5 correspond to the CAN FD required tolerances. We here use the notation "2 * df" since the system tolerance calculated above is the actual tolerance needed. In the nomenclature, df actually stands for half the tolerance when assuming that the tolerance is symmetrically +/-df. Our system tolerance needs to be better (i.e. smaller) than "2 * df", hence the (min) in the table below.
3.1 Nominal bit calculations at base frequency
These values have been calculated based on the base frequency and nominal bitrate. Note the max cable length (as given by Tbus_time) below. The sample point may be adjusted using the +/- buttons. Moving the sample point results in a trade off between between cable length and tolerance margin.
Bit configuration for nominal bitrate (Bit/s) and frequency (kHz):
T q (ns) | Tprop_seg (ns) | Tbus_time (ns) | approx. cable length (m) | Prescaler: | Bit time: (Tq) | Tsync_seg (Tq) | Tprop_seg (Tq) | Tphase_seg1 (Tq) | Tphase_seg2 (Tq) | sjw (Tq) | sample point % | 2*df 1 (min) (ppm) | 2*df 2 (min) (ppm) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
3.2 Data bit calculations at base frequency
These values have been calculated based on the base frequency and data bitrate. You can adjust the sample point by using the +/- buttons.
Bit configuration for nominal bitrate (Bit/s) and frequency (kHz):
T q (ns) | Prescaler: | Bit time: (Tq) | Tsync_seg (Tq) | Tprop_seg (Tq) | Tphase_seg1 (Tq) | Tphase_seg2 (Tq) | sjw (Tq) | sample point: % | 2*df 3 (min) (ppm) | 2*df 4 (min) (ppm) | 2*df 5 (min) (ppm) |
---|---|---|---|---|---|---|---|---|---|---|---|
|
4. Individual Bus Timing Parameters
If we did not get any errors when calculating the parameters at base frequency, we now transform the calculated system parameters into device specific parameters. Each row in the table below corresponds to a device frequency specified earlier. You can now change the prescaler if you want to. Notice that if any tolerance is inadequate, the corresponding cell will be colored red.
Nominal | Data | Tolerance (ppm) | ||||||||||||||
FREQUENCY (kHz) | Tseg1 | Tseg2 | SJW | SP | PRESCALER | Tseg1 | Tseg2 | SJW | SP | PRESCALER | SYSTEM | df1 | df2 | df3 | df4 | df5 |
Note: The Data prescaler must be equal to 1 or 2, in order for the transmitter delay compensation mechanism to work according to the ISO CAN FD specification.
If the table is incomplete, please see error messages above.