1. Заменил ATmega64 на AT90CAN128 у двух своих устройств + добавил КАН приёмопередатчики.
2. Переписал программу (таблица прерываний и обращение к портам).
3. Разобрался (более-менее) с КАН-овскими портами.
4. Написал примитивную посылалку - принималку по КАН.
5. Попробовал - всё сразу заработало!
6. Отрубил у принимающего устройства TXCAN (не передаёт в линию ACK) - начались вопросы:
У принимающего устройства возникает ошибка "ACK error", хотя по описанию (да и логически) должна-бы возникнуть "Bit Error". Устройство-то передаёт в линию 0-й уровень (ACK), а в линии 1.
7. Запретил у принимающего устройства приём адреса генерируемого передатчиком. Судя по описанию в этом случае должна возникнуть общая ошибка - ACK error general (в линии имеется кадр с ресессивным уровнем в бите ACK). Реально у приёмника не возникает никаких ошибок. Пробовал запретить все MOb вообще, проверял разрешение всего, что относится к общим ошибкам - бесполезно.
Особенно волнует отсутствие общей ошибки (планировал использовать), что это - глюк в AT90CAN128, или во мне.