1 (31-01-2026 14:42:07 отредактировано opel009)

Тема: отличие UART-7.0-7.2

Здравствуйте
Столкнулся с такой задачей. Первоначально был сделан проект CANNY 7.0-Nextion(Dwin) с обменом по UART(обычный UART не RS). Все ок, все работает
Пример ниже. Между монитором и CANNY 7.0 идет обмен все ок. Монитор получает данные и отправляет, CANNY так же все получает и отправляет

Появилась необходимость переделать на CANNY 7.2 , нужен второй CAN и начались "нюансы". Не работает. Тот же пример переделанный под 7,2 и он не работает. Причем после подачи питания 1-2 отправки/приемки сообщений по UART проходят, а дальше перестает. Если отключить передачу CANNY,  то прием CANNY работает. Если отключить прием CANNY то передача работает, передача работает всегда но прием "отваливается". Второй день пытаюсь разобраться в причинах. Пока нашел основное отличие драйверов UART 7.0-7.2 это то что по двум линиям 7,2 может работать только в инвертированном режиме RS232. У монитора есть только обычный UART. 7,2 в режиме обычного UART может работать по 1му проводу, но монитор по 1му не может. В общем в тупике, как 7,2 "соединить" по обычному UART?
Возможно проблема в уровнях TTL, тк 7,2 т.к с ПК через USB-TTL все работает, с монитором нет. Сделал развязку уровней через преобразователь уровней, не работает. С ПК работает. 7,0 со всем работает. В общем с 7,2 запутался что не так? чем он от 7,0 отличается?

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

Иконка вложения 7.0-uarn-dwin.cfd 3.16 кб, скачивался 4 раз, последний раз 2026-01-31 

Иконка вложения 7.2_UART_dwin прием отправка тест.cfd 3.58 кб, скачивался 3 раз, последний раз 2026-01-31 

2 (31-01-2026 16:56:09 отредактировано AlexN)

Re: отличие UART-7.0-7.2

Зачем нужен блок номер 8 ?
С какой переодичностью сообщения на вход uart сыпятся и какой длины?
Что на осцилограммах видать?

3

Re: отличие UART-7.0-7.2

AlexN пишет:

Зачем нужен блок номер 8 ?
С какой переодичностью сообщения на вход uart сыпятся и какой длины?
Что на осцилограммах видать?

блок 8 генератор периодичности отправки в UART. Соответстветственно сыпятся 1000/10мс
его всяко пробовал настраивать в тч 1-передача юарт
до осцилографа пока не дошел-не вижу смысла, т.к CANNY перестает принимать UART, т.е в осцилограмме увижу стандартный юарт, его вижу в мониторе COM на ПК, а на 7,2 отваливается. На 7,0 все работает, уже не первый год, на 7,2 принмает 1-2 сообщения и перестает

4

Re: отличие UART-7.0-7.2

Генератор этот ничего не генерирует кроме единичного импульса в те редкие моменты когда на его входе "старт" на мгновение появляется не ноль.

Если справитесь с ощущением бессмысленности то на осциллографе можно увидать красоту формы сигнала и оценить уровни сигнала на достаточность для входов дуо. Верхний должен быть >=4.5 вольт. Разумеется преобразователь уровней должен наличиствовать и быть подключен правильным образом.

5 (31-01-2026 19:02:33 отредактировано opel009)

Re: отличие UART-7.0-7.2

AlexN пишет:

Генератор этот ничего не генерирует кроме единичного импульса в те редкие моменты когда на его входе "старт" на мгновение появляется не ноль.

Если справитесь с ощущением бессмысленности то на осциллографе можно увидать красоту формы сигнала и оценить уровни сигнала на достаточность для входов дуо. Верхний должен быть >=4.5 вольт. Разумеется преобразователь уровней должен наличиствовать и быть подключен правильным образом.

Ок, исключили генератор. Идет постоянная передача из Canny в UART на монитор. Все то же самое, 1-2 отправки с монитора Canny 7,2 видит, а дальше перестает принимать с монитора. подключаю через второй провод с платой соглпсование уровней -все то же самое. На 7,0 все работает идеально без всяких плат. с ПК уровни тоже 3,3в все работает идеально без плат уровней. Два одинаковых кода, с 7,0 работает ок, 7,2 срабатывают 1-2 приема и перестает, почему? причем если отключить передачу CANNY 7,2 в UART(тест2), то светодиоды мигают, те CANNY 7,2 видит входящий UART т.е уровни CANNY нравятся
Тест2 отключенна отправка с CANNY в UART при таком варианте CANNY 7,2 принимает UART монитора, все ок.
Почему?
1 соединяю с-(рег старт передачи юарт2) все перестает работать
в 7,0 все ок, с пк все ок
Пока пришел к выводу из мануалов CANNY что драйвера у 7,2 и 7,0 Uart имеют отличия. У 7,2 двухпроводной режим только в  реализован в rs 232

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

Иконка вложения 7.2_UART_dwin прием отправка тест.cfd 3.51 кб, скачивался 9 раз, последний раз 2026-01-31 

Иконка вложения 7.2_UART_dwin прием отправка тест2.cfd 3.49 кб, скачивался 4 раз, последний раз 2026-01-31 

6

Re: отличие UART-7.0-7.2

Единица на постой в регистр старта передачи это вообще огонь конечно. Результатом будет как минимум постоянное переполнение буфера передачи.
Ну и выводы у вас конечно неожиданные. При чем тут двухпроводный режим уарт если вы используете два разных уарта а не один?
В документации черным по белому указан минимальный уровень 4.5 вольта.
Без осцилограмм дальнейший поиск афроамериканцев темном подвале считаю бесперспективным

Разве что в качестве последнего упражнения можете одним уартом передоавать только по нормальному как в примерах нарисовано без этих вот постоянных единиц в регистре старта. А другим уартом принимать что передаете замкнув каналы снаружи. И неизбежно возрадоваться что всё у вас работает.

7

Re: отличие UART-7.0-7.2

AlexN пишет:

Единица на постой в регистр старта передачи это вообще огонь конечно. Результатом будет как минимум постоянное переполнение буфера передачи.
Ну и выводы у вас конечно неожиданные. При чем тут двухпроводный режим уарт если вы используете два разных уарта а не один?
В документации черным по белому указан минимальный уровень 4.5 вольта.
Без осцилограмм дальнейший поиск афроамериканцев темном подвале считаю бесперспективным

Разве что в качестве последнего упражнения можете одним уартом передоавать только по нормальному как в примерах нарисовано без этих вот постоянных единиц в регистре старта. А другим уартом принимать что передаете замкнув каналы снаружи. И неизбежно возрадоваться что всё у вас работает.

Вот, это похоже ближе к правде. Тоже смотрел документацию на 7,0 и 7,2 и там по разному организованны диаграммы. Тоже была мысль попробовать в 7,2 организовать обмен по 1му физическому проводу с регистром буфера как в примерах, но остановило то что на 7,0 работает по двум и с ПК на 7,2 все видит и понимает. И второй момент не понимаю как монитор будет работать в однопроводном режиме? Если CANNY отправляет в юарт и в этот момент от монитора тоже пойдет отправка в юарт? В мониторе же буфер не предусмотрен или как? В документации эти моменты как минимум не раскрыты. И зачем осцилографф нужен, увидеть уровни сигнала выше 4,5в? ПК и 7,0 его видят и 7,2 его видит, если отправка не активна

8 (01-02-2026 00:51:48 отредактировано AlexN)

Re: отличие UART-7.0-7.2

Ой как всё плохо. Я не на передачу по одному физическому проводу предлагал переходить а проверить уарты контроллера сами на себя без монитора вообще и убедиться что с ними самими все в порядке. Ищите в другом месте. Проверяйте уровни сигнала и наличие данных которые вы ожидаете и тайминги. Как часто идут сообщения? Не забит ли канал сообщениями как прием так и передача? Затем и осциллограф. То ли там передается что надо?  Видят ли контроллер и монитор сообщения хоть какие нибудь вообще без привязки к данным? Уберите проверку данных проверяйте только регистр их наличия. Если контроллер видит сообщения то длина их точно девять байт или больше и 1 или 2 точно в восьмом байте у вас приходят а в девятом при этом точно нули? И т д. Успехов

9 (01-02-2026 15:53:25 отредактировано opel009)

Re: отличие UART-7.0-7.2

В общем мучаю второй день. Удалось "локализовать" проблему.
Монитор+CANNY 7,0 работает все ок. уровни 3,5 и 12в, не критично, монитор и CANNY друг друга понимают
Терминал(через ttl-usb) +CANNY 7,2 тоже все ок. Уровни тоже 3,5 и 12в в целом ок
Монитор+ CANNY 7.2 начинаются глюки.
После включения связки Монитор+ CANNY 7.2, монитор отправляет сообщение по UART1, CANNY 7.2 его принимает, в соответствии с диаграммой выше включает светодиод, далее отправляет по UART2 сообщение в монитор, монитор его принимает и меняет данные на экране. На данном этапе все ок.
Далее, у монитора активна функция подтверждения получения сообщения, в итоге на принятое сообщение по UART1, монитор отправляет по UART2 сообщение 5a a5 03 82 4F 4B. В случае с CANNY 7.0 это сообщение игнорируется и все работает ок. В случае с CANNY 7.2 это сообщение принимается, пробовал другие данные в общем 7,2 принимает почему то  любой "мусор" в UART2, в результате светодиод горит, идет постоянная отправка по UART1 в монитор, в ответ монитор сыпет 5a a5 03 82 4f 4bf, светодиод горит. До тех пор пока монитором не отправишь еще сообщение, CANNY 7.2 его принимает и отключает все UART, перестает принимать и отправлять по UART.
После перевключения питания все отрабатывает по этому кркгу.
В итоге в CANNY 7.2 связка (рег есть данные UART)-(лигич И) отрабатывает иначе чем у 7,0.
Самое верное это отключить в мониторе функцию подтверждения получения сообщения, правда пока не знаю как.
Хотелось бы рпзобраться с CANNY

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

Иконка вложения 1111.png 103.87 кб, скачивался 1 раз, последний раз 2026-02-01 

10

Re: отличие UART-7.0-7.2

Всё не просто плохо а хуже чем было возможно предположить.

Что в этом не понятно:

AlexN пишет:

Если контроллер видит сообщения то длина их точно девять байт или больше и 1 или 2 точно в восьмом байте у вас приходят а в девятом при этом точно нули?

Это не 7.2 принимает любой мусор это ваша диаграмма принимает лбой мусор за данные так как вы не проверяете длину принятого сообщения и пытаетесь сравнивать с чем то данные за пределами длины полученного сообщения где всякий мусор и лежит.

То что разобраться хочется это похвально. Найдете способ как это сделать не читая и не вникая в прочитанное - сообщите.

11 (01-02-2026 21:27:18 отредактировано opel009)

Re: отличие UART-7.0-7.2

Вот в таком виде на 7,2 все заработало как надо.
Два дня танцев с бубнами минус. Минус соженый ttl-usb
Вопрос в оглавлении темы остается открытым....
Почему 7,0 не видит всякий "мусор" в UART, а в 7,2 откликается даже на помехи и вызывает срабатывание диаграммы, с дальнейшим зависанием или не понятно что происходит с CANNY
В документации это все не раскрыто, общие примеры для всех контроллеров, но в разных контроллерах они работают по разному
Спсибо AlexN за последний совет, с осциллографами было не туда...

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

Иконка вложения 7.2_UART_dwin прием отправка тест.cfd 4.07 кб, скачивался 10 раз, последний раз 2026-02-01 

12

Re: отличие UART-7.0-7.2

opel009 пишет:

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

В части, в которой поведение драйвера UART определено, различий в его реализации на CANNY 7 и CANNY 7.2 Duo не наблюдается.


opel009 пишет:

не понятно что происходит с CANNY

Как вам и указали выше, чтение данных находящихся в приемном буфере за пределами длины принятого сообщения возвращает неопределенный результат. См.: Неопределённое поведение

13

Re: отличие UART-7.0-7.2

opel009 пишет:

Спсибо AlexN за последний совет

На здоровье!

opel009 пишет:

с осциллографами было не туда...

Не туда было вообще в эту ветку заходить. Заработало у вас всё чистом на везении и не факт что на долго. Как читали буфер за пределами длины так и читаете. Дальнейших вам творческих!