1 (04-08-2019 22:22:15 отредактировано ipsurin)

Тема: Передача-приём по КАН шине с отображением по UART

Связал две КАННИ 5 НАНО по КАН шине. Поставил на шину осциллограф, чтобы видеть что происходит. Общая идея была получать данные от DHT на локальном контроллере, передавать их по КАН на главный контроллер и затем передавать по UART на терминал.  При этом предполагалось, что передача данных с локального контроллера запускается с главного контроллера.
Никак эта затея не работает, хотя был момент, когда связь частично заработала..  Поэтому я пока оставил чистую передачу с локального контроллера и чистый приём на главном контроллере. Не работает. Осциллограф показывает, что пачка с передающего контроллера в шину идёт. Более того, принимающий контроллер явно на эту пачку реагирует.  И только..
Явно чего-то я не учитываю.

Вложений в сообщении

Иконка вложения Передача данных по шине КАН.cfd 1.62 кб, скачивался 233 раз, последний раз 2019-08-04 

Иконка вложения Передача данных по шине КАН.cfd 1.62 кб, скачивался 211 раз, последний раз 2019-08-04 

Иконка вложения Приём по шине КАН.cfd 6.15 кб, скачивался 213 раз, последний раз 2019-08-04 

2 (04-08-2019 23:55:40 отредактировано ipsurin)

Re: Передача-приём по КАН шине с отображением по UART

Исправил в Передаче по шине КАН Передача данных по шине КАН значение Регистр установки CAN IDL с FFFF на FFF1. 
Результат тот же.
Передающая сторона видит приёмную.  Когда приёмник отключён передатчик выдаёт поток пачек.   Стоит запустить приёмник, как пачки начинают идти как положено...

Переделал шину и  проверил её качество. Основной провод это витая пара от интернет шлейфа. Использованы розетки RJ-45 с винтовыми колодками. Прозвонил всю шину от контроллера до контроллера.  И как положено на концах шины  поставил сопротивления по 120 ом.

3

Re: Передача-приём по КАН шине с отображением по UART

Максимально возможное значение идентификатора в стандартном диапазоне равняется 0x7FF (11 бит).
В диаграмме "Прием по шине КАН", при сравнении "Регистра принятого сообщения CAN IDL" с константой 0xFFF1 (блок №1) равенство не выполняется.
Используйте идентификаторы из корректного диапазона (например 0x100 и 0x101).

4

Re: Передача-приём по КАН шине с отображением по UART

Спасибо, помогло.

И всё же возможности контроллеров CANNY явно недооценены.
Нет большого подробного  описания, вроде работ Петина.
И нельзя купить CANNY в магазинах большой тройки.

Осталось несколько вопросов по некоторым таинственным регистрам.

Регистр отсутствия активности драйвера
Регистр переполнения буфера приёма
Регистр ошибки приёма/передачи
Регистр готовности буфера передачи данных

Тут торчат уши глубинного (виртуального по терминологии MBED)  уровня взаимодействия с шиной. Нет описания работы логики работы этих регистров и использования. Меня больше всего занимает смысл и использование Регистра готовности передачи данных. Когда и как есть смысл его использовать?