Программная инициализация
Программная инициализация начинается с установки бита INIT в регистре контроля CAN - контроллера. Этот бит может быть установлен программно микроконтроллером или автоматически после аппаратного сброса или после того, как CAN - контроллер будет переведен в состояние "отключен от шины".
Пока установлен бит INIT:
- все передачи данных от / к CAN - контроллеру останавливаются.
- биты NEWDAT и RMTPND регистра контроля последнего буфера сбрасываются.
- счетчики ошибок не изменяются.
Установка бита ССЕ дополнительно разрешает изменять содержимое регистров BTR0 и BTR1.
Для инициализации CAN - контроллера необходимо произвести следующие действия:
- настроить регистры BTR0 и BTR1
- установить регистры глобальной маски (Global Mask Registers)
- проинициализировать каждый буфер сообщения.
Если буфер сообщения не нужен, то нужно сбросить бит MSGVAL в регистре контроля этого буфера, т.е. объявить этот буфер недействительным. Это необходимо сделать во время инициализации.
После инициализации необходимо сбросить бит INIT.
Инициализация буферов сообщений может производиться и при сброшенном бите INIT, это так называемая инициализация "на лету". Для изменения конфигурации буфера сообщения в течение нормальных операций, микроконтроллер должен сбросить бит MSGVAL у данного буфера, т.е. объявить его недействительным. После завершения изменения конфигурации бит MSGVAL должен быть снова установлен.
|