CAN master status register (CAN_MSR)
Регистр основного состояния CAN-шиной
Смещение (Address offset): 0x04
Reset value: 0x0000'0C02
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | RX | SAMP | RXM | TXM | |||
--- | --- | --- | --- | r | r | r | r |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | SLAKI | WKUI | ERRI | SLAK | INAK | ||
--- | --- | --- | rc_w1 | rc_w1 | rc_w1 | r | r |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Этот бит устанавливается, когда установлен SLKIE=1 в регистре CAN_IER (разрешено прерывание при переходе в спящий режим) и CAN-контроллер переходит в спящий режим. Так же генерируется прерывание изменения состояния.
Сбрасывается программно записью 1 или аппаратно, когда очищается SLAK.
Когда SLKIE=0 в регистре CAN_IER, опрос SLAKI невозможен. В этом случае может быть запрошен бит SLAK.
Устанавливается аппаратно при обнаружении стартового бита сообщения SOF, когда контроллер CAN-шины находился в спящем режиме.
Если установлен бит WKUIE в регистре CAN_IER, то будет сгенерировано прерывание изменения состояния.
Сбрасывается программно записью 1.
Устанавливается аппаратно, когда бит CAN_ESR был настроен на обнаружение ошибок и включено соответствующее прерывание в CAN_IER.
При установке бита автоматически генерируется прерывание изменения состояния, если установлен бит ошибки в регистре CAN_IER.
Сбрасывается программно записью 1.
Устанавливается аппаратно и указывает на нахождение контроллера CAN-шины в спящем режиме.
Подтверждает программный запрос (установка бита SLEEP=1 в регистре CAN_MCR) после перехода контроллера в спящий режим.
Сбрасывается аппаратно, когда контроллер CAN-шины выходит из спящего режима. Для синхронизации контроллер должен отслеживать последовательность из 11 последовательных рецессивных битов в сигнале CAN RX.
Сбрасывается программно, когда сбрасывается бит SLEEP в регистре CAN_MCR.
см. бит AWUM в регистре CAN_MCR
Устанавливается аппаратно и указывает на нахождение контроллера CAN-шины в режиме инициализации.
Подтверждает программный запрос (установка бита INRQ=1 в регистре CAN_MCR) на инициализацию после перехода контроллера в режим инициализации.
Сбрасывается аппаратно, когда контроллер CAN-шины выходит из режима инициализации. Для синхронизации контроллер должен отслеживать последовательность из 11 последовательных рецессивных битов в сигнале CAN RX.
/******************* Bit definition for CAN_MSR register ********************/
#define CAN_MSR_INAK ((uint16_t)0x0001) /* Initialization Acknowledge */
#define CAN_MSR_SLAK ((uint16_t)0x0002) /* Sleep Acknowledge */
#define CAN_MSR_ERRI ((uint16_t)0x0004) /* Error Interrupt */
#define CAN_MSR_WKUI ((uint16_t)0x0008) /* Wakeup Interrupt */
#define CAN_MSR_SLAKI ((uint16_t)0x0010) /* Sleep Acknowledge Interrupt */
#define CAN_MSR_TXM ((uint16_t)0x0100) /* Transmit Mode */
#define CAN_MSR_RXM ((uint16_t)0x0200) /* Receive Mode */
#define CAN_MSR_SAMP ((uint16_t)0x0400) /* Last Sample Point */
#define CAN_MSR_RX ((uint16_t)0x0800) /* CAN Rx Signal */