Миландр. Неожиданное поведение CAN.
У контроллеров Миландр 1986ВЕ9х довольно много небольших проблем, описанных в errata, но так же есть и не описанные. Об одной из таких проблем и поговорим. Здесь не будет кода, только поток мыслей.

- Из чего состоит проблема?
- Проблема ли это?
- Как решить этот вопрос?
Проблема проявляется следующим образом.
Несколько буферов настроены на отправку ответа на запрос RTR
. Несколько буферов на приём. Из одного буфера периодически отправляется пакет (обычный пакет данных).
Имеет несколько ситуаций:
- Если мы получали
RTR
запрос и после него решили отправить какие-то данные в простом пакете, то замечаем такую картину - отправляется пакет данных, а за ним отправляется ответ на RTR запрос (хотя никакого запроса сейчас небыло). - Если мы не получали
RTR
запросов или получили после них просто пакеты данных (в нём не установлен флагRTR
), то при отправке лишнего пакета не наблюдается.