Есть 3 устройства с разными прошивками на одной шине CAN. Они нормально работали. Теперь одно не работает (1), а два других продолжают функционировать в штатном режиме. Пытаюсь разобраться, что я такое мог изменить в коде, что оно перестало работать? Если на шине 3 устройства, то первое (которое глючит) получает пакеты. Если оставить первое и второе, то пакеты перестают получаться. Отправка с первого устройства не работает в обоих случаях (анализатор показывает, что на шину ничего не передается). CAN_MSR->INAK == 1 (Висит в режиме инициализации)
CAN_MCR->INRQ == 0 CAN_MCR->ABOM == 1 CAN_MCR->NART == 0 CAN_MCR->DBF == 1
В Loop mode отправка/получение работают. Может трансивер умирает? Что и как можно продиагностировать? Приду домой, запаяю копию платы, чтобы проверить железо. Но есть подозрение, что где-то в коде накосячил. Хотя код инициализации шины и все низкоуровневые процедуры не трогал.
|