Модуль ECAN для dsPIC. Типичная сеть ECAN. 16 приемных фильтров для фильтрования сообщения, страница 25

Чтобы защищать систему шины CAN от фатальных последствий из-за нарушений вышеупомянутого требования, модуль переводит вывод TXCAN в отключённое состояние в режиме Sleep. Рекомендуется прежде чем переходить в режим Sleep перевести модуль ECAN в неактивное состояние, после чего выполнять инструкцию для центрального процессора PWRSAV.

12.2. Режим Idle

Инструкция центральному процессору PWRSAV, 0 сигнализирует модулю, чтобы он остановил свой генератор тактовых импульсов. Для разрешения данного действия в регистре управления (CiCTRL1 <13>) бит CSIDL должен быть установлен в «1». Пользовательская программа должна гарантировать, что перед входом в режим Idle модуль ECAN находится в неактивном состоянии. Чтобы защищать систему шины CAN от фатальных последствий из-за нарушений вышеупомянутого требования, модуль отключает вывод TXCAN от шины в режиме Idle. Рекомендуется прежде чем переходить в режим Idle перевести модуль ECAN в неактивное состояние, после чего выполнять инструкцию для центрального процессора PWRSAV.

12.3. Режим пробуждения

Модуль следит за активностью на линии RX во время режима sleep. Если модуль CPU находится в режиме sleep, то при обнаружении активности на шине CAN генерируется прерывание. Из-за задержек запуска генератора и центрального процессора, теряется текущее сообщение, которое вызвало пробуждение.

Модуль может быть запрограммирован, чтобы применить функцию фильтра линии входе CiRX. Эта особенность может использоваться, чтобы защитить модуль от пробуждения из-за коротких замыканий на линиях шины CAN. Бит CiCFG2 <WAKFIL> включает или отключает фильтр.

13. ИСПОЛЬЗОВАНИЕ INPUTCAPTURE ДЛЯ ПОЛУЧЕНИЯ ВРЕМЕННОГО ШТАМПА

ECAN модуль генерирует сигнал, который можно послать на вход input capture таймера всякий раз, когда была получен правильный фрейм данных. Это полезно для синхронизации сети и получения штампа времени.

Поскольку спецификация CAN определяет фрейм, чтобы быть правильным, и не содержать каких-либо ошибок, пока не будет принято поле EOF; сигнал таймера будет сгенерирован прямо после поля EOF. Генерируется однобитный импульс.

Штамп времени разрешается в соответствии с управляющим битом Message Receive Timer Capture Event Enable (CANCAP)  (CiCTRL1 <3>). Вход захвата (input capture) IC2 используется для получения штампа времени.

Обратите внимание: Если CAN захват разрешён, вывод IC2 становится непригодным как общий вывод inputcapture. В этом режиме, IC2 канал получает его входной сигнал из выводов C1RX или C2RX вместо вывода IC2.

ERRATACAN

11. Если множество передающих буферов запрашивают передачу (много TXREQ битов устанавливаются в «1» одновременно), то переданные сообщения через включенные буферы могут пересечься друг с другом. В результате получаем некорректный ID и данные передаются скачками.

Пути устранения

В одно и то же время необходимо включать запрос на передачу только для одного передающего буфера. В программе необходимо предусмотреть проверку всех других битов TXREQ что они все сброшены прежде чем устанавливать соответствующий бит для передачи.

12. При определенных условиях первые пять битов передающегося идентификатора могут не совпадать со значением передающего буфера SID. Если ECAN модуль обнаружил SOF в третьем бите области кадра и если сообщение полностью не передано, первые пять битов передающегося идентификаторов могут исказится.

Действия

Нет

13. В зацикленном режиме ECAN1 и ECAN2 работают неправильно.

Действия

Не используйте зацикленный режим.

24. Когда используется ECAN модуль с DMA, передающий буфер 6 и 7 могут передать ошибочное сообщение. Для примера, буфер сконфигурирован со стандартным идентификатором, а иногда передаёт расширенный.

Действия

Нет. Не используйте буферы 6 и 7 для передачи.

30. Регистры C1RXOVF2 и C2RXOVF2 не функционируют. Всегда читаются как 0х0000, когда происходит переполнения.

Действия

Нет.