Цитата
1. TJA1040(tja1041,MCP2551,PCA82C251,tja1050)-High speed CAN transceiver
2. TJA1054(TJA1053)-Fault-tolerant CAN transceiver
Вот и налетел я на эти грабли.
Как раз была отладочная плата с двумя CAN-ами TJA1054 на борту. Между собой естественно они обменивались прекрасно на 125000 бит.
Разработали мы свою плату на том же контроллере, но, естественно, другом драйвере - MCP2551. Соединили ее с отладочной платой - и сразу глюк - При подключении кабеля этот TJA1054 начинает не диф-сигнал передавать а переходит в однопроводной режим и шлет по обеим линиям синфазный сигнал!
MCP2551 ессно ничего в этом случае не видит.
Оказалось, что этот подлянский TJA1054 в упор не понимает терминальный резистор - 120 Ом, который стоит на нашей плате. У них оказывается слабая подтяжка линий CANH и CANL стоит, которая в рецессивном состоянии тянет CANH к земле, а CANL к питанию. В итоге на линии в рецессивном состоянии не 0в диф.сигнал, а -5В - то есть CANL выше CANH. И рецессивный уровень у нее -3,5В тоже. В итоге когда терминальный резистор честно тянет CANH и CANL друг-к-другу TJA1054 просто считает, что на линии доминанта и переходит в аварийное состояние.
Но слава Богу, что у нас в сети все рассчитано на нашу плату, и такой прикол только с отладочной платой возникает.
Ну и в принципе при отключении терминальных резисторов все работает нормально.