Цитата
Обнаружил что если во время работы отключить все кан устройства выдернув кабель начинает увеличиваться tx error counter и когда он достигает 128 драйвер рапортует о состоянии ERRER PASSIVE. Это соответствует спецификации.
Если же ни одного устройства не подключено при старте или рестарте драйвера он переходит в состояние ERROR WARNING, при этом tx error counter равен 128. Нет ли здесь ошибки ? Разве может быть ERROR WARNING при том что счетчик ошибок = 128 ?
STMовский CAN передатчик ведет себя точно также... При этом во втором случае он продолжает передавать на пинах.
Цитата
В примечаниях спецификации бош упоминается ситуация старта системы когда еще некому выдавать ACK и там написано что контроллер не должен переходить в состояние BUS-OFF.
Наверное, эти гады что-то знают...
ИМХО в первом случае передатчик знает, что на шине кто-то был, поэтому при увеличении счетчика ошибок первым делом делает так, чтобы он не уложил уже существующую сеть. А во втором случае возможно это связано с автоопределением скорости - т.е. он будет что-то передавать, пока не получит первый Ack - это значит, что приемник настроился на нужную частоту. Если он в эетом случае быстро перейдет в Error Passive, то передача остановится и приемнику не на что будет настраиваться.
ПС. Это все предположения.