Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

uart загадка

Вт июл 05, 2022 09:23:24

Здрасте всем.
Щас в отпуске, но меня не отпускает мысль о решении загадки, которая возникла за день до отъезда.

Далее по тексту "Arduino" читать как "плата Arduino".
Ни какой арду-зависимости тут нет. Прошики написаны на ассемблере.

Значит, имею полетный контроллер, на базе меги_2560.
В полетнике есть несколько UART.
назовем их условно uart1, uart2 и тп..

Имеется устройство на базе платы arduino mini (это, та у которой нет на борту USB) в связке с платой преобразователем на базе rs232, и второй вариант на базе arduino nano (эта с USB ch 340)

Прошивка написана мной собственноручно на ассемлере.
Задача контроллера читать поток данных с полетного контроллера и перекодировать его в собственный формат.
(Обе арду-платы прошиты одинаковой прошивкой)

Сперва работал с первым вариантом ( тот что без usb )
и проблем не возникало, но ради удобства перешел на ардуино_нано ( который с usb ) и оказалось, что этот вариант не читает uart1 с полетного контроллера, но при этом нормально читает uart2 :shock: ( и uart3 )

Хотя uart1 полетника не отличается от uart2!
Даже осциллографом глянул, чтоб на всякий случай убедится.. Амплитуда одинаковая - 5 Вольт.
Записал семплы с обоих портов - они идиентичны!

Ну и самое смешное: первый вариант ( arduino mini без usb ) читает нормально все порты на полетнике!

Ну, думаю, "значит" проблема в arduino nano... ( это которая с usb )...

Смотрю на плату, а там на tx-rx светодиодики есть... Отпаял их - ничего не изменилось..

Думаю, может проблема в TTL конверторе ch340, установленном на arduino nano.. Подключился к tx-rx на arduino nano ( которая с usb ) преобразователем rs232 из первого варианта, не отпаивая родной TTL конвертор ch340. Все равно не читает.
Еще раз подчерну, родной (ch340) TTL не отпаивал...

Загадка заключается в том, что uart2 полетника arduino nano читает без проблем. А uart1 не отличается от uart2.
Как такое возможно?

П.С. предположу, что uart1 на плате полетника разведен не совсем корректо, но замечу, что первый вариант ( arduino mini ) работает нормально со всеми портами.

еще под подозрением TTLконвертор на плате arduino nano ch340 - ведь я его не отпаивал. Хотя с uart2 оно работает.

П.П.С. отличие в прошивках все же есть: это наличие ватчдога и залоченная прошивка на arduino nano

Re: uart загадка

Вт июл 05, 2022 10:15:40

УАРТы софтовые или аппаратные? И в чем заключается это "не читает"? Не распознает старт-бит, выдаёт ошибку кадра, не соответствует скорость связи, приходят неверные данные, не та полярность сигнала?

Re: uart загадка

Вт июл 05, 2022 12:03:42

Видимо Вы не внимательно читали.
Связка Ардуино_Мини + rs232 читает любой из uart.
А тот же самый код, но на плате Ардуино_Нано не читает uart1, но читает uart2 и 3...

все настройки uart-ов естественно одинаковые.
говорю же: даже осциллографом посмотрел на всякий случай.
( записанные семплы идиентичны )

Если я ничего не путаю, то на полетнике все uart хардварные.
Вот только uart1 подключен через мультиплексор.... Может в этом дело ? (но ардуино мини работает исправно, значит не в этом)

Неисправность проявляется так:
на плате ардуино нано есть мега328, внутри нее программа, которая использует арпаратный уарт микроконтроллера.
Она читает поток по Rx и перекодирует его в собственный формат и отправляет в Tx. Через встроенный в arduino nano конвертор на базе ch340 микроконтроллер подключен к ПК, на котором крутится терминалка. Так вот на экране ПК я не наблюдаю буковок и циферок в случае подключения к uart1 полетника.. Правда осциллографом не смотрел что на выходе
у Меги 328 в этом случае...

Re: uart загадка

Вт июл 05, 2022 12:13:39

Ну вот охота вам засирать людям мозги? Это ж надо столько писАть! Тогда как сам бы посмотрел/проверил/потестил всё что хош. Ужос!

Re: uart загадка

Вт июл 05, 2022 12:23:55

Помнится, была такая шутка, мол, если не учить физику, то жизнь будет полна загадок ☺
Вот и здесь похоже: если не читать мануалы…

Re: uart загадка

Вт июл 05, 2022 12:45:07

Читал внимательно и перечитывал несколько раз, и даже сейчас трижды перечитал. Но не увидел главного - поведения самой программы в микроконтроллере. Можно в Протеусе создать проект, закинуть прошивку, эмулировать УАРТ и пошагово просмотреть поведение кода.
Потомучто так гадать можно сколько угодно. Может, просто с компом нет связи или не тот порт уарта настроен.
Я не спец в ардуинах, но на разных платах стоят одинаковые ли микроконтроллер и пины совпадают ли? Щас загуглил - есть разные версии ардуино нано с разными контроллерами.

Re: uart загадка

Вт июл 05, 2022 13:41:59

микроконтроллеры одинаковые - мега 328п
с распиновкой проблемы нет.
в коде я не сомневаюсь на другой платке все работает как часы.
проверено годом эксплуатации.

думаю, что гальваническая связь не такая как должна быть.
может ch340 голову делает
может еще чего.. ( может мега328 подделка китайская )

В протеус код сунуть не могу. в отпуске я.
за день перед отъездом столкнулся с этим.
А сейчас мысли не отпускают. Вот и гадаю, что же это может быть... Хотя бы теоретически. Куда копать.

Добавлено after 2 minutes 48 seconds:
как работает ch340 ?
линии tx rx обрабатываются парраллельно одновременно или по осереди ?
он ведь подключен обеими линиями к микроконтроллеру

а в случае ардуино мини и rs232, последняя подключена только к линии TX.

хотя тоже не клеится эта версия, так как с uart2 и uarr3 оно работает нормально.

Re: uart загадка

Вт июл 05, 2022 14:46:36

В китайской Arduino Nano между CH340G/C и ATmega328, вместе со светодиодами и их резисторами на +, стоят два резистора 1 kOhm, smd. Отпаяйте их. А я бы ничего не отпаивал по хардуер, а конструкцию перенес бы на Arduino Mini, они без CH340G/C.

Re: uart загадка

Вт июл 05, 2022 15:14:28

veso74 писал(а):конструкцию перенес бы на Arduino Mini, они без CH340G/C.

Ну я с нее и переехал. Я же писал об этом.
Придется городить еще одну плату с rs232, так как данные нужно толкать в USB.
Надо не костылями проблему решать, а кардинально.
Про резисторы понял, но мне кажется это проблему не решит.
Не может от резистора зависеть с каким портом будет работать микроконтроллер... Хотя натолкнуло на мысль. Может там ток недостаточный в линиях tx rx uart1. Это уже похоже на правду.

Re: uart загадка

Вт июл 05, 2022 15:23:02

Далее по тексту "Arduino" читать как "плата Arduino". Значит, имею полетный контроллер, на базе меги_2560. В полетнике есть несколько UART. назовем их условно uart1, uart2 и тп..

Насколько я помню, у Ардуины всего один UART. Откуда берутся ещё UARTы?

Re: uart загадка

Вт июл 05, 2022 16:15:02

У меня такого не было, часто посылаю сигнал через другой преобразователь RX/X и с много модулей проблем не было. Предположил, что выполнили программного проверку, поэтому и предположил аппаратную проблему. Задайте статический режим пинов или очень медленную скорость и посмотрите уровни по крайней мере: с вольтметром. Проверить легко: мешает или нет апаратно CH340G/C (+ г. транслейт БГ->РУ).

Re: uart загадка

Вт июл 05, 2022 21:15:38

electroget писал(а):Насколько я помню, у Ардуины всего один UART.

На сколько я помню Arduino это проект.
Это как сравнивать яблоки и килограммы.
Если вы говорите про конкретную плату, то называйте её и не забудьте озвучить МК установленный на оную, а то всякие китайские версии существуют.
А если Вы пытались меня упрекнуть в неграмотности, то гляньте сперва датащит на 2560, а потом продолжим (нет) этот бесполезный диалог.

Добавлено after 13 minutes 31 second:
посмотрите уровни по крайней мере: с вольтметром. Проверить легко: мешает или нет апаратно CH340G/C (+ г. транслейт БГ->РУ).


Уровни смотрел сперва мультиметром, а потом и осциллографом - все в норме. А вот ток на линиях tx rx не проверял. Возможно даже что то не согласованно...

с микрухи ch340 отрежу линию RX микроконтроллера ( прям дорожку перережу..) В этом проекте она не нужна, а в случае чего восстановить дело двух минут..

Re: uart загадка

Ср июл 06, 2022 04:17:38

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

Мне нет никакого дела до вашей грамотности.

Re: uart загадка

Ср июл 06, 2022 08:01:23

Если на нанке остался неудаленный бутлоадер - будут проблемы первые 2-5 секунд.
И ... всегда помним, что CH340 (на ардуинке нано) еще и выводом reset управляет.
8)

Re: uart загадка

Ср июл 06, 2022 09:53:19

бутлодер ардуиновский?
да откуда он? на асме пишу - нет его и в помине..

ch340 дергает ресет? это новость.
спасибо, гляну..

// хотя эта версия тоже не годится.
один порт читает, а другой нет...

Добавлено after 5 minutes 41 second:
Мне нет никакого дела до вашей грамотности.

в 256 меге два уарта
в 2560 - четыре

Re: uart загадка

Ср июл 06, 2022 10:40:42

... ch340 дергает ресет? это новость.

Вам может пригодиться схема Arduino Nano. В разных модулях может быть разница.
Вложения
1872313 copya.png
(184.61 KiB) Скачиваний: 93

Re: uart загадка

Ср июл 06, 2022 17:07:11

за схему спасибо!

Re: uart загадка

Ср июл 06, 2022 18:08:41

По умолчанию во всех адуринках установлен бутлоадер.
Если его не удалить общим стиранием кристалла - он там и останется.
Писать на ассемблере всю программу под мегу 328Р (32 килобайта памяти программ).... Это таки садомазохизьм... Даже для меня...
:roll:
В то же время использовать нанку или про-мини для "малых" прожек (до 4 килобайт кода) как-то ЖАБО давит...
Но тут уж у кого чего больше залежалось.
:beer:

Re: uart загадка

Ср июл 06, 2022 18:58:28

BOB51 писал(а):По умолчанию во всех адуринках установлен бутлоадер.
Если его не удалить общим стиранием кристалла - он там и останется.
Писать на ассемблере всю программу под мегу 328Р (32 килобайта памяти программ).... Это таки садомазохизьм... Даже для меня...
:roll:
В то же время использовать нанку или про-мини для "малых" прожек (до 4 килобайт кода) как-то ЖАБО давит...
Но тут уж у кого чего больше залежалось.
:beer:

Вы не правы. Изучите вопрос.

Re: uart загадка

Ср июл 06, 2022 19:34:57

Да все как-то "в стадии изучения"
до сих пор еще не до конца разобрался...
:wink:
Можете ознакомиться:
viewtopic.php?f=62&t=94201
viewtopic.php?f=62&t=156720
:tea:
Ответить