CAN master control register (CAN_MCR)

Регистр основного управления CAN-шиной

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

Reset value: 0x0001'0002

3130292827262524
Reserved
------------------------
00000000
2322212019181716
Reserved DBF
---------------------rw
00000001


15141312111098
RESET Reserved
rs---------------------
00000000
76543210
TTCM ABOM AWUM NART RFLM TXFP SLEEP INRQ
rwrwrwrwrwrwrwrw
00000010


Bits 31:17
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 16
DBF
Debug freeze
Остановка работы CAN-шины во время отладки

 0 :  CAN-шина продолжает работать во время отладки.

 1 :  приём/передача по CAN-шине приостановлена во время отладки. К полученным данным в FIFO по-прежнему можно получить доступ и упралять ими в обычном режиме.

Bit 15
RESET
bxCAN software master reset
Основной программный сброс контроллера CAN-шины

 0 :  работа в обычном режиме.

 1 :  выполняет основной сброс (выход из спящего режима) (bxCAN -> Sleep mode) активированный после включения питания (сброса микроконтроллера). При этом биты FMP регистров CAN_RF0R, CAN_RF1R и регистр CAN_MCR инициализируются значениями сброса.

По окончании процедуры основного сброса и выхода из спящего режима автоматически сбрасывается в 0.

Bits 14:8
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 7
TTCM
Time triggered communication mode
Режим связи, запускаемый по таймеру

 0 :  режим связи по таймеру отключен.

 1 :  режим связи по таймеру включен.

Bit 6
ABOM
Automatic bus-off management
Автоматическое управление отключением шины

Управляет режимом работы контроллера CAN-шины при выходе из режима отключенной шины (Bus-Off).

 0 :  режим откюченной шины (Bus-Off) сохраняется по запросу программы после отслеживания 128 вхождений 11 рецессивных битов и после того, как программное обеспечение сначала установило, затем сбросило бит INRQ регистра CAN_MCR..

 1 :  аппаратное обеспечение автоматически выводит шину из состояния отключения после отслеживания 128 вхождений 11 рецессивных битов.

Bit 5
AWUM
Automatic wakeup mode
Управляет поведением CAN-контроллера при приеме сообщений в спящем режиме.

 0 :  выход из спящего режима (Sleep mode) происходит программно, путем сброса бита SLEEP в регистре CAN_MCR.

 1 :  выход из спящего режима (Sleep mode) происходит автоматически при обнаружении сообщения CAN. Бит SLEEP в регистре CAN_MCR и бит SLAK в регистре CAN_MSR сбрасываются аппаратно.

Bit 4
NART
No automatic retransmission
Отключение автоматической повторной передачи сообщения

 0 :  контроллер CAN-шины будет автоматически повторно передавать сообщение до тех пор, пока его приём не будет подтверждён в соответствии со стандартами CAN.

 1 :  сообщение будет передано только один раз, независимо от результатов передачи: успешная передача, ошибка или проигранный арбитраж.

Bit 3
RFLM
Receive FIFO locked mode
Блокировка приёмника FIFO при переполнении

 0 :  приёмник FIFO не блокируется при переполнении. После заполнения приёмника FIFO следующее входящее сообщение перезапишет предыдущее.

 1 :  приёмник FIFO заблокирован от переполнения. После заполнения приёмника FIFO следующее входящее сообщение будет отброшено.

Bit 2
TXFP
Transmit FIFO priority
Приоритет сообщений при передаче.

Определяет порядок передачи, когда несколько почтовых ящиков ожидают отправки сообщений одновременно.

 0 :  приоритет определяется идентификатором сообщения.

 1 :  приоритет определяется в хронологическом порядке (в порядке поступления сообщений на отправку).

Bit 1
SLEEP
Sleep mode request
Спящий режим.

Устанавливается программно и переводит контроллер CAN-шины в спящий режим (Sleep mode).

Сбрасывается программно и переводит контроллер CAN-шины из спящего в активный режим.

Автоматически сбрасывается аппаратно если установлен AWUM=1 и обнаружен стартовый бит фрейма (SOF, start of frame).

 0 :  контроллер CAN-шины в активном режиме.

 1 :  контроллер CAN-шины будет переведён в спящий режим (Sleep mode) по завершении приёма/передачи.

Этот бит установлен (SLEEP=1) после сброса. Контроллер CAN-шины стартует в спящем режиме.

Bit 0
INRQ
Initialization request
Режим инициализации

Программный сброс бита переводит контроллер CAN-шины в нормальный режим работы. После проверки в сигнале Rx 11-ти последовательных рецессивных битов, аппаратное обеспечение CAN синхронизируется и готово к передаче и приему. Сбрасывается флаг INAK в регистре CAN_MSR.

Программная установка бита формирует запрос на перевод контроллера CAN-шины в режим инициализации. Контроллер CAN ожидает завершения текущей операции (передачи или приема), прежде чем перейти в режим инициализации. Устанавливается флаг INAK в регистре CAN_MSR.

 0 :  обычный режим (normal mode) работы CAN-контроллера.

 1 :  CAN-контроллер в режиме инициализации (initialization mode).



/*******************  Bit definition for CAN_MCR register  ********************/

#define  CAN_MCR_INRQ         ((uint16_t)0x0001)     /* Initialization Request */
#define  CAN_MCR_SLEEP        ((uint16_t)0x0002)     /* Sleep Mode Request */
#define  CAN_MCR_TXFP         ((uint16_t)0x0004)     /* Transmit FIFO Priority */
#define  CAN_MCR_RFLM         ((uint16_t)0x0008)     /* Receive FIFO Locked Mode */
#define  CAN_MCR_NART         ((uint16_t)0x0010)     /* No Automatic Retransmission */
#define  CAN_MCR_AWUM         ((uint16_t)0x0020)     /* Automatic Wakeup Mode */
#define  CAN_MCR_ABOM         ((uint16_t)0x0040)     /* Automatic Bus-Off Management */
#define  CAN_MCR_TTCM         ((uint16_t)0x0080)     /* Time Triggered Communication Mode */
#define  CAN_MCR_RESET        ((uint16_t)0x8000)     /* CAN software master reset */