CAN master control register (CAN_MCR)
Регистр основного управления CAN-шиной
Смещение (Address offset): 0x00
Reset value: 0x0001'0002
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 | DBF | ||||||
--- | --- | --- | --- | --- | --- | --- | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
RESET | Reserved | ||||||
rs | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
TTCM | ABOM | AWUM | NART | RFLM | TXFP | SLEEP | INRQ |
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 : CAN-шина продолжает работать во время отладки.
1 : приём/передача по CAN-шине приостановлена во время отладки. К полученным данным в FIFO по-прежнему можно получить доступ и упралять ими в обычном режиме.
0 : работа в обычном режиме.
1 : выполняет основной сброс (выход из спящего режима) (bxCAN -> Sleep mode) активированный после включения питания (сброса микроконтроллера). При этом биты FMP регистров CAN_RF0R, CAN_RF1R и регистр CAN_MCR инициализируются значениями сброса.
По окончании процедуры основного сброса и выхода из спящего режима автоматически сбрасывается в 0.
0 : режим связи по таймеру отключен.
1 : режим связи по таймеру включен.
Управляет режимом работы контроллера CAN-шины при выходе из режима отключенной шины (Bus-Off).
0 : режим откюченной шины (Bus-Off) сохраняется по запросу программы после отслеживания 128 вхождений 11 рецессивных битов и после того, как программное обеспечение сначала установило, затем сбросило бит INRQ регистра CAN_MCR..
1 : аппаратное обеспечение автоматически выводит шину из состояния отключения после отслеживания 128 вхождений 11 рецессивных битов.
0 : выход из спящего режима (Sleep mode) происходит программно, путем сброса бита SLEEP в регистре CAN_MCR.
1 : выход из спящего режима (Sleep mode) происходит автоматически при обнаружении сообщения CAN. Бит SLEEP в регистре CAN_MCR и бит SLAK в регистре CAN_MSR сбрасываются аппаратно.
0 : контроллер CAN-шины будет автоматически повторно передавать сообщение до тех пор, пока его приём не будет подтверждён в соответствии со стандартами CAN.
1 : сообщение будет передано только один раз, независимо от результатов передачи: успешная передача, ошибка или проигранный арбитраж.
0 : приёмник FIFO не блокируется при переполнении. После заполнения приёмника FIFO следующее входящее сообщение перезапишет предыдущее.
1 : приёмник FIFO заблокирован от переполнения. После заполнения приёмника FIFO следующее входящее сообщение будет отброшено.
Определяет порядок передачи, когда несколько почтовых ящиков ожидают отправки сообщений одновременно.
0 : приоритет определяется идентификатором сообщения.
1 : приоритет определяется в хронологическом порядке (в порядке поступления сообщений на отправку).
Устанавливается программно и переводит контроллер CAN-шины в спящий режим (Sleep mode).
Сбрасывается программно и переводит контроллер CAN-шины из спящего в активный режим.
Автоматически сбрасывается аппаратно если установлен AWUM=1 и обнаружен стартовый бит фрейма (SOF, start of frame).
0 : контроллер CAN-шины в активном режиме.
1 : контроллер CAN-шины будет переведён в спящий режим (Sleep mode) по завершении приёма/передачи.
Этот бит установлен (SLEEP=1) после сброса. Контроллер CAN-шины стартует в спящем режиме.
Программный сброс бита переводит контроллер 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 */