CAN error status register (CAN_ESR)

Регистр состояния ошибок CAN-шины

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

Reset value: 0x0000'0000

3130292827262524
REC[7:0]
rrrrrrrr
00000000
2322212019181716
TEC[7:0]
rrrrrrrr
00000000


15141312111098
Reserved
------------------------
00000000
76543210
Reserved LEC[2:0] Reserved BOFF EPVF EWGF
---rwrwrw---rrr
00000000


Bits 31:24
REC[7:0]
Receive error counter
Счетчик ошибок приёма

В случае ошибки во время приема этот счетчик увеличивается на 1 или на 8 в зависимости от типа ошибки, определенного стандартом CAN. После каждого успешного приема счетчик уменьшается на 1 или сбрасывается на 120, если его значение было больше 128. Когда значение счетчика превышает 127, контроллер CAN переходит в пассивное состояние с ошибкой.

Bits 23:16
TEC[7:0]
Least significant byte of the 9-bit transmit error counter
Младший значащий байт 9-разрядного счетчика ошибок передачи
Bits 15:7
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 6:4
LEC[2:0]
Last error code
Код последней ошибки, обнаруженной на CAN-шине

Если сообщение было передано (при приеме или передаче) без ошибок, это поле будет сброшено до значения ‘0’.

Устанавливается аппаратно. Программно может быть установлено в значение 0b111, но обновляются аппаратно для отображения текущего состояния связи.

 000 :  No Error - нет ошибок

 001 :  Stuff Error -

 010 :  Form Error -

 011 :  Acknowledgment Error -

 100 :  Bit recessive Error -

 101 :  Bit dominant Error -

 110 :  CRC Error -

 111 :  Set by software - устанавливается программно

Bit 3
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 2
BOFF
Bus-off flag
Флаг отключения шины

Устанавливается аппаратно при переходе в состояние отключения шины (Bus-off). Состояние отключения шины вводится при переполнении TEC, превышающем 255.

Bit 1
EPVF
Error passive flag
Флаг пассивного режима

Устанавливается аппаратно, когда достигнут предел пассивной ошибки (счетчик ошибок приема или счетчик ошибок передачи > 127)

Bit 0
EWGF
Error warning flag
Флаг предупреждения об ошибках

Устанавливается аппаратно при достижении предельного значения предупреждения об ошибках(счетчик ошибок приема или счетчик ошибок передачи достиг значения 96)



/********************  Bit definition for CAN_ESR register  *******************/
#define  CAN_ESR_EWGF       ((uint32_t)0x00000001)     /* Error Warning Flag */
#define  CAN_ESR_EPVF       ((uint32_t)0x00000002)     /* Error Passive Flag */
#define  CAN_ESR_BOFF       ((uint32_t)0x00000004)     /* Bus-Off Flag */

#define  CAN_ESR_LEC        ((uint32_t)0x00000070)     /* LEC[2:0] bits (Last Error Code) */
#define  CAN_ESR_LEC_0      ((uint32_t)0x00000010)     /* Bit 0 */
#define  CAN_ESR_LEC_1      ((uint32_t)0x00000020)     /* Bit 1 */
#define  CAN_ESR_LEC_2      ((uint32_t)0x00000040)     /* Bit 2 */

#define  CAN_ESR_TEC        ((uint32_t)0x00FF0000)     /* Least significant byte of the 9-bit Transmit Error Counter */
#define  CAN_ESR_REC        ((uint32_t)0xFF000000)     /* Receive Error Counter */