CAN bit timing register (CAN_BTR)

Регистр битов синхронизации CAN-шины

Смещение (Address offset): 0x1C

Reset value: 0x0123'0000

Регистр доступен только в режиме инициализации контроллера CAN-шины

3130292827262524
SILM LBKM Reserved SJW[1:0]
rwrw------------rwrw
00000001
2322212019181716
Reserved TS2[2:0] TS1[3:0]
---rwrwrwrwrwrwrw
00010111


15141312111098
Reserved BRP[9:0]
------------------rwrw
00000000
76543210
BRP[9:0]
rwrwrwrwrwrwrwrw
00000000


Bit 31
SILM
Silent mode (debug)
"Тихий" режим работы контроллера CAN-шины.

Режим без передачи сообщений по CANTX (CANTX=1 - выставлен рецессивный бит), только приём по CANRX. .

 0 :  Normal mode - обычный режим

 1 :  Silent mode - "тихий" режим

Bit 30
LBKM
Loop back mode (debug)
Режим "обратной связи" работы контроллера CAN-шины.

Режим без приёма сообщений по CANRX.

 0 :  Normal mode - обычный режим

 1 :  Loop back mode - режим "обратной связи"

Bits 29:26
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 25:24
SJW[1:0]
Resynchronization jump width
Определяет максимальное количество квантов времени, на которое контроллеру CAN разрешено удлинять или сокращать бит для выполнения повторной синхронизации.

tRJW = tq x (SJW[1:0] + 1)

Bit 23
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 22:20
TS2[2:0]
Time segment 2
Определяет количество квантов времени во временном сегменте 2

tBS2 = tq x (TS2[2:0] + 1)

Bits 19:16
TS1[3:0]
Time segment 1
Определяет количество квантов времени во временном сегменте 1

tBS1 = tq x (TS1[3:0] + 1)

Bits 15:10
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 9:0
BRP[9:0]
Baud rate prescaler
Предделитель бодрейта

Определяет длительность кванта времени.

tq = (BRP[9:0]+1) x tPCLK



/*******************  Bit definition for CAN_BTR register  ********************/
#define  CAN_BTR_BRP       ((uint32_t)0x000003FF)     /* Baud Rate Prescaler */
#define  CAN_BTR_TS1       ((uint32_t)0x000F0000)     /* Time Segment 1 */
#define  CAN_BTR_TS2       ((uint32_t)0x00700000)     /* Time Segment 2 */
#define  CAN_BTR_SJW       ((uint32_t)0x03000000)     /* Resynchronization Jump Width */
#define  CAN_BTR_LBKM      ((uint32_t)0x40000000)     /* Loop Back Mode (Debug) */
#define  CAN_BTR_SILM      ((uint32_t)0x80000000)     /* Silent Mode */