See section 19.2.2 of the C167CS user manual for information on the Bit-timing registers. (CS is used on the 2xCAN ESX. The CAN registers are identical to the 1xCAN ESX, though).
In the ESX BIOS, the function init_can() automatically configures the Bit-timing register by calling the undocumented BIOS function set_can_bittime_reg(). The setting to use is hardcoded and is chosen based on the bitrate and the clock frequency. The following BTR settings are used by the BIOS:
You can call set_can_bittime_reg() after can_init() to set your own custom configuration.
| Bitrate (kbit/s) | 20 MHz | 40 MHz |
|---|---|---|
| 10 | 0x6BB1 | 0x0000 |
| 20 | 0x6B98 | 0x6BB1 |
| 40 | 0x7F89 | 0x7F93 |
| 50 | 0x6B89 | 0x6B93 |
| 100 | 0x6B84 | 0x6B89 |
| 125 | 0x6B83 | 0x6B87 |
| 250 | 0x6B81 | 0x6B83 |
| 500 | 0x6B80 | 0x6B81 |
| 1000 | 0x2540 | 0x5C80 |