Использование UART (D0/D1) на UNO, непонятки

Yuz
Offline
Зарегистрирован: 06.08.2021

Приветствую всех

Имею китайскую UNO (USB-UART на CH340g)
Хочу подключить ее к компу, используя выходы D0/D1, через другой китайский USB-UART переходник, тоже на CH340g

Все тестовые скетчи отлично передают данные в обоих направлениях посредством Serial Monitor или любой другой проги на компе при условии, что UNO подключена к компу с использованием "бортового" USB-UART на CH340g

Отключаю UNO от USB, подаю на нее питание с внешнего БП 12В
Подключаю к UNO шнурок USB-UART на CH340g (TX шнурка на RX UNO, RX шнурка на TX UNO, GND на GND)
Запускаю на UNO все те же тестовые скетчи и вижу фигу.

Шнурок рабочий. Использовался для консольного подключения к маршрутизатору. При подключении TX к RX, эхо на комп приходит.
Шнурок выдает TTL уровни (CH340g).
Осцилографа нет, но при подачи сигнала на DTR/RTS на выводах около +5В, при снятии - 0В. Светодиод, подвешенный к TX, мигает только в одной полярности (соответственно при низком уровне сигнала на выходе 0В, не -5В).
Скорости на обоих сторонах согласованы, четности, паритеты и прочее тоже.
Менял местами RX/TX, cтавил резисторы по 1К (по аналогии, как между бортовым CH340g и atmega328P)

Еще,
При подключении TX шнурка к RX UNO, загорается и постоянно горит индикатор TX на UNO (выход TX бортового CH340g). Если отключить землю шнурка, продолжает светить, но менее ярко.
Тестер показывает +0.25В между GND и RX UNO. Я так понимаю, что каким-то образом происходит подтяжка питания к этому светодиоду

В общем, ничего я не понимаю. Подозреваю две причины:
1. Шнурок все же глючит
2. Я не дочитал некоторую элементарную вещь
Если второе (третье, четвёртое), ткните носом

Спасибо

b707
Offline
Зарегистрирован: 26.05.2017

уберите отдельное питание 12в и питайте Уно от USB-UART

Yuz
Offline
Зарегистрирован: 06.08.2021

Это как?

Выставить принудительно сигнал на DTR или RTS и подключить его к входу +5В ?

Попробую конечно, но это как-то нестандартно
и не понятна суть проблемы - что не так в моих предыдущих действиях?

b707
Offline
Зарегистрирован: 26.05.2017

Yuz пишет:
Это как? Выставить принудительно сигнал на DTR или RTS и подключить его к входу +5В ?

зачем? на любом USB-UART переходнике есть выход для питания. обычно даже два - 5в и 3.3

Pyotr
Offline
Зарегистрирован: 12.03.2014

Покажите какая плата Уно. Также нужна ее схема - подключение СН340 к пинам 0 и 1. Какая-то  похожая проблема была, и я ее как-то решал. Но блин забыл...

Upper
Offline
Зарегистрирован: 23.06.2020

При "типовой" схеме Уно и "типовой" схеме переходника работать не должно, т.к. у переходника на выходе TX стоит последовательный резистор 1,5 КОм. Так что надо смотреть схему не только УНО но и переходника.

По какой причине было решено использовать отдельный переходник?

Upper
Offline
Зарегистрирован: 23.06.2020

Проверить работоспособность "шнурка" можно предварительно загрузив скетч использующий SoftwareSerial. И подключив "шнурок" к выводам SoftwareSerial.

Green
Offline
Зарегистрирован: 01.10.2015

Работоспособность шнурка проверяется замыканием RX c TX и наблюдая эхо на экране терминала.

Upper
Offline
Зарегистрирован: 23.06.2020

Работоспособность в смысле совместимость с УНО, проводами между ними, способом питания УНО, скоростями и т.д.

svm
Offline
Зарегистрирован: 06.11.2016

Проблема в том, что Вы подключаете внешний переходник параллельно тому который стоит на борту. Обрежьте провода у родного, тогда и внешний заработает.

Yuz
Offline
Зарегистрирован: 06.08.2021

b707 пишет:

зачем? на любом USB-UART переходнике есть выход для питания. обычно даже два - 5в и 3.3

У меня не такой переходник.

Думаю, что он и косячит

Green
Offline
Зарегистрирован: 01.10.2015

Это похоже на USB-RS232. Чувствуете разницу?

Yuz
Offline
Зарегистрирован: 06.08.2021

Green пишет:

Работоспособность шнурка проверяется замыканием RX c TX и наблюдая эхо на экране терминала.

Проверял - работает.

Upper пишет:

Проверить работоспособность "шнурка" можно предварительно загрузив скетч использующий SoftwareSerial.
И подключив "шнурок" к выводам SoftwareSerial.
Работоспособность в смысле совместимость с УНО, проводами между ними, способом питания УНО, скоростями и т.д.

Была мысль - ещё не пробовал.

Upper пишет:

При "типовой" схеме Уно и "типовой" схеме переходника работать не должно, т.к. у переходника на выходе TX стоит последовательный резистор 1,5 КОм.

Между "бортовым" CH340g и atmega328P на RX и TX стоят резисторы по 1К, штатные. Работает же как-то, UNO прошивается и обмен с Serial Monitor нормальный.

Upper пишет:

Так что надо смотреть схему не только УНО но и переходника.

Вполне возможно, что проблема все-таки в переходнике, хотя не понимаю какая
Схемы переходника нет.
В ОС пишет, что это CH340g, буква в букву, как и для UNO. Уровни TTL, чем он еще может отличаться от наколенного USB-UART или того, что на борту UNO ?

Upper пишет:

По какой причине было решено использовать отдельный переходник?

Через бортовой работает - уже не интересно.
Хочется пощупать со всех сторон.
Вот начал щупать, узнаю много нового и интересного.
Попал на косяк на ровном месте - зацепило, надо разобраться.

Слышал пару раз, что все эти шнурки-переходники глючные. Просто на данный момент заменить/перепаять нечем, на даче я, а родной балкон далеко.

Основной вопрос то был в том не упустил ли я чего при таком подключении, может подтягивания какие нужны, конденсаторы или еще что.
Хотя, все вроде очевидно - проще некуда.

К сожалению на всех форумах описывают либо как драйвер устанвить для CH340g, либо как стандартно потестить по Serial Monitor, либо как две ардуины крест на крест соединить.
 

Yuz
Offline
Зарегистрирован: 06.08.2021

Green пишет:

Это похоже на USB-RS232. Чувствуете разницу?

Чувствую и понимаю.
Для этого и проверял его тестером и диодами.
На выходах +5В  и  0В.  TTL

Или работа UART отличается от RS232 ?   Кроме уровней сигналов, конечно
Сча пойду на вики, возраст таки - промою извилины

Можно предположить, что в этом кАбельке после CH340g стоит еще MAX232
Но тогда уровни сигналов на выходе должны быть другие (около +5В  и  -5В)

Green
Offline
Зарегистрирован: 01.10.2015

Какими ещё диодами! Найдите распиновку RS232 и измерьте относительно к.5 при отключенном разъёме.

sadman41
Offline
Зарегистрирован: 19.10.2016

Как минимум - 232 инвертирован.

Yuz
Offline
Зарегистрирован: 06.08.2021

sadman41 пишет:
Как минимум - 232 инвертирован.

Это уже ближе к телу.

Yuz
Offline
Зарегистрирован: 06.08.2021

Green пишет:

Какими ещё диодами!

Затем, что-бы убедиться, что на выходе шнурка TTL-уровни (при отсутствии осцилографа)

1. RX - анод-катод - GND
2. RX - катод-анод - GND

при уровнях 0В/+5В (TTL)
в одном случае диод светит в другом не светит (при выдаче данных в порт)

при уровнях -5В/+5В
диод светит в обоих полярностях
 

Моя ошибка была в том, что определив TTL уровни на выходах своего переходника USB-RS232, а также увидев в перечне устройств компа название USB-SERIAL CH340 (буква в букву точно такое же, как для UNO) я ошибочно посчитал, что мой переходник абсолютно идентичен (по сути подключения) бортовому CH340g на UNO.

Однако, упустил момент относительно инверcных TTL сигналов моего переходника USB-RS232 в сравнении с TTL сигналами UART.
Дилетант-энтузиаст, что еще сказать ...

Скорее всего, в моем переходнике USB-RS232 к выходам CH340g прикручен еще некоторый преобразователь, который инвертирует сигналы UART как того требует стандарт RS232 (окромя того, что вместо +/- 25, 12, 7.5 или 5 В сигналы на его выходах имеют уровни  0/+5 В)

sadman41, большое спасибо за наводку

 

Yuz
Offline
Зарегистрирован: 06.08.2021

svm пишет:

Проблема в том, что Вы подключаете внешний переходник параллельно тому который стоит на борту. Обрежьте провода у родного, тогда и внешний заработает.

На сколько я понимаю, как раз для этого между "бортовым" RX/TX CH340g и TX/RX avr-а стоят резисторы 1К, а при использовании пинов D0/D1 в UNO, настоятельно рекомендуют отключать (никак не отпиливать) родной CH340g от USB, что я и выполнял

Yuz
Offline
Зарегистрирован: 06.08.2021

Pyotr пишет:

Покажите какая плата Уно. Также нужна ее схема - подключение СН340 к пинам 0 и 1. Какая-то  похожая проблема была, и я ее как-то решал. Но блин забыл...

На всякий случай (вдруг таки проблема не в переходнике) скину рисунки, делал старался - может кому пригодятся (хотя подобного полно в Интернете).

 

Вот моя плата - самая обычная китайская

 

Это ее USB-UART на CH340g

Видим R8 и R9 - резисторы по 1 КОм-у между RX/TX CH340g и Atmega328p,  рядом с ними светодиоды-индикаторы RX и TX
Пунктирные соединения расположены на обратной стороне платы

 

Подключение CH340g к RX/TX Atmega328p и продолжение этих подключений к пинам D0/D1 а также к дополнительной площадке под пайку

Тут также пунктирные линии показывают соединения с противоположной стороны платы

 

А это соединения на обратной стороне

Yuz
Offline
Зарегистрирован: 06.08.2021

Отложу свой странный (а может и не странный, по современным меркам) USB-RS232 переходник в сторону

Куплю или сотворю USB-UART

И да прибудет мне счастье! ...

Всем огромное спасибо за оперативные и точные пинки.

 

Pyotr
Offline
Зарегистрирован: 12.03.2014

Yuz, плата у меня такая же. Но схему Вы другую показали. Чтоб новички не путались, покажу подходящую к этой ардуинке.

У меня при замыкании D0, D1 не проходило эхо. Увеличил R6, R7 до 4.7 кОма. На моей плате поменяны местами R6 и лед Rx, но это не принципиально - они соединены последовательно.

Yuz
Offline
Зарегистрирован: 06.08.2021

Pyotr пишет:

Yuz, плата у меня такая же. Но схему Вы другую показали.
Чтоб новички не путались, покажу подходящую к этой ардуинке.

Согласен, Ваша схема подходит, вплоть до обозначения элементов
Свою убрал

Pyotr пишет:

У меня при замыкании D0, D1 не проходило эхо. Увеличил R6, R7 до 4.7 кОма.
На моей плате поменяны местами R6 и лед Rx, но это не принципиально - они соединены последовательно.

У меня все нормально работает
Запустил такой тест
 

void setup() {
  pinMode( 8, OUTPUT);
  Serial.begin(9600);
}
  
void loop() {
 
  delay(2000);
  Serial.write('1');
    
  if (Serial.available() > 0) {        
    if (Serial.read() == '1') {digitalWrite(8, HIGH);}
  }
    
  delay(2000);
  digitalWrite(8, LOW);
    
}

Если D0 и D1 не замкнуты, приходят единички только в прием Serial Monotor-а
После замыкания D0 и D1, диод включается и выключается с периодом в 1 сек.

Т.е. единички пишутся паралельно в виртуальный COM-порт на комп через USB-UART (бортовой CH340g) и в RX Atmeg-и
Килоомные резисторы (R8,R9) между TX/RX CH340g и Atmeg-и, а также на светодиодах (R6,R7) индикации TX/RX CH340g передаче никак не мешают

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

так и не понял, зачем это нужно?

Yuz
Offline
Зарегистрирован: 06.08.2021

ua6em пишет:

так и не понял, зачем это нужно?

Чтобы в течении суток во время своего отпуска разобраться, что китайский переходник USB-RS232 на базе CH340g имеет инверсные сигналы в сравнении с UART выходами CH340g, который стоит на борту китайской UNO.

И сделать умопомрачительный вывод:
Нельзя пихать переходник USB-RS232 в выходы D0/D1 UNO.
Для подобных задач существует другое китайское чудо - USB-UART

А новичкам на ус намотать

Green
Offline
Зарегистрирован: 01.10.2015

Yuz пишет:

Нельзя пихать переходник USB-RS232 в выходы D0/D1 UNO.

А новичкам на ус намотать


Новичкам? От матёрого? ППЦ!))) 

Yuz
Offline
Зарегистрирован: 06.08.2021

то, что я дилетант я уже признал выше

интересно - копаюсь и разбираюсь

себе на ус уже намотал и всех поблагодарил ну еще низкий поклон не выполнил, бывает

познавать новое никогда никому не поздно и не зазорно

Green, почему такой сарказм?

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, Федор посчитал это за совет, а не за делёжку неудачным опытом. То, что для новичка радостное открытие, то для человека с опытом - позорная ошибка. Увы, профессиональная деформация присутствует в каждом из нас и каждый считает, что тот, другой за монитором, должен быть не менее опытным.

Yuz
Offline
Зарегистрирован: 06.08.2021

sadman41, спасибо Вам за поддержку и ещё раз за самую точную подсказку

Green
Offline
Зарегистрирован: 01.10.2015

Yuz пишет:

Green, почему такой сарказм?


Что бы учить новичков, нужно самому разобраться в вопросе. А не производить измерения с помощью СВЕТОдиодов! Ужос(.

Yuz
Offline
Зарегистрирован: 06.08.2021

1. Я никого не учил
2. Как раз сам и разбирался
3. По светодиодам свою позицию объяснил несколько раз - ничего ужОсного не вижу

Green
Offline
Зарегистрирован: 01.10.2015

Yuz пишет:
3. По светодиодам свою позицию объяснил несколько раз - ничего ужОсного не вижу

​Дядя, неужто ты считаешь что светодиод (который ты раньше называл диодом) во всех случаях является индикатором полярности?
Не думаешь ли ты что для ёйного свечения необходим какой-никакой ток?
Если честно, не могу представить что переходник USB-RS232 не выдаёт стандартные для RS232 уровни на выходе...
В любом случае, начинающий, которому ты рекомендуешь свой "опыт" может запросто спалить свой Ардуино.(
А ведь не зря интернет считается помойкой, в которой именно начинающим очень трудно ориентироваться.

Yuz
Offline
Зарегистрирован: 06.08.2021

Сынок, представь себе, что да, именно так и есть - в моем китайськом чудо-шнурке USB-RS232 действительно уровни 0 и +5 В. НЕТ там отрицательного уровня, НЕТ!

Поэтому я наивно посчитал, что это позволит его использовать для подключения к UART.
Да, я НЕ знал (не забыл, а именно НЕ знал) о противоположных полярностях RS232 и UART и несколько раз это признавал в обсуждении. До сих пор мне это не мешало жить - расстреляйте меня за это.

При всем этом, этот шнурок, как не удивительно, использовался много раз для консольного подключения к Cisco и Микротикам и даже для программирования радиостанций Vertex и стареньких Yeasu.

Админы, закройте или удалите пожалуйста эту ветку, пока у Федора не взорвался пукан

Простите за хамство, но не я первым перешёл на личности

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Green пишет:

Если честно, не могу представить что переходник USB-RS232 не выдаёт стандартные для RS232 уровни на выходе...

Федор! Я с люботытсвом следил за темой. Было интересно, когда решение найдется ;)))) Нельзя лишать людей радости простых открытий! ;)) У меня был именно такой шнурок распотрошен. Даже цвета такого же. Толь в ДНС толь в Ситилинке купил.

Там не RS-232 уровни, а вполне себе TTL. Только инверсные. Так делали на ноутах часто, не было на ком-порту 12 вольт. По сигналам совместимо, по уровням нет.

Yuz
Offline
Зарегистрирован: 06.08.2021

wdrakula пишет:

У меня был именно такой шнурок распотрошен.

Если можно, поделитесь схемой этого или подобного шнурка для полноты раскрытия вопроса.
Не буду утверждать, но не удивлюсь, что подобными шнурками АлиЭкспресс завален под завязку - так проще и дешевле. Найти реально правильный USB-RS232 можно только по отзывам или уж лучше самому изготовить.
Покупал я его достаточно давно, когда все компы с настоящимы COM-портами иссякли. На тот момент даже не подозревал о подвохе - работает, ну и ладно.

Yuz
Offline
Зарегистрирован: 06.08.2021

Понял, отлетаю - схем немерянно (USB-RS232 TTL)

А вот он, родной на Али (и ни слова о TTL)

https://a.aliexpress.com/_A0Nrki

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Yuz пишет:
работает, ну и ладно.

Вот это вырванный кусок фразы и есть суть дела! Я бы попросил тебя пояснить цель изысканий. Если просто любопытство, то его лучше решать интимно. За Гуглем и стаканчиком Хереса, при неверном свете свечи. Любопытство сродни похоти и его удовлетворение требует уединения, как и рукоблудие. ;))) ИМХО.

Если ты хочешь пользоваться переходником USB-RS232, то почти везде подойдет этот. Оборудование, которое требует +/-12В уже на свалке, ну кроме военных - те еще некрофилы!

Если хочешь собрать переходник на 232 - Веклом! Есть микросхема MAX на ней и собирай.Мне изначально странен посыл - прихуярить к ардуине другой переходник, вместо штатного, зачем? Даже если просто интересно, то почему к hardware UART, а не к софтовому?

Какую задачу ты пере собой ставишь? Ну кроме выноса мозга на форуме? ;))

Хочешь влиться в наше хобби? Ок, мы рады. Скажи "да" и я, или любой старожил, объясним что необходимо купить. И Паяльник, логанализатор и осциллограф - начальные покупки. Вполне подойдет какая-нить USB приставка.

А пока вся тема - как списана из "12 стульев" про слесаря-интеллигента. Без обид, если сможешь.

Yuz
Offline
Зарегистрирован: 06.08.2021

Если честно и коротко - рукоблудие. Ну и частично отношусь к никрофилам.

А если серьёзно, то достал очередной раз в отпуске запыленную Уну - чего зря валяться ? Продолжить, так сказать знакомство, решил разбором подключения ее к компу по COM-порту (другой Уни или наны у меня пока нет).
По встроенному порту не интересно, решил попробовать через шнурок.
Лепил из того, что было а тут такой косяк на ровном месте. Сам не смог раздуплить вот и обратился.
Давно зарекся писать любые вопросы на форум, но иногда зудит. Тут, спасибо, какашками обложили не сразу. Сначала, так сказать, расчленили все качественно и за это благодарен всецело.

Закройте это тему, хрен с ней.
Сам себе уже за два дня мозг вынес.

Green
Offline
Зарегистрирован: 01.10.2015

Yuz пишет:
Сынок, представь себе, что да, именно так и есть - в моем китайськом чудо-шнурке USB-RS232 действительно уровни 0 и +5 В. НЕТ там отрицательного уровня, НЕТ!

Сынок, плохо когда не знаешь да ещё и забудешь. Тут все сынки не моложе твоего, поэтому не нужно изображать из себя старпёра. 
Влад, ну я подозревал что китайцы могут сделать всё что хош, но лично именно на ЭТО не нарывался. Понятно, что RS2323 допускает (и работает) с нестандартными уровнями, но это не во всех случаях.
Ну а представь что начинающий, по совету, подключит именно "нормальный" USB-RS232... Как бы не очень. Ну и нафига людей вводить в заблуждение? Только в этом и мои замечания.

Yuz
Offline
Зарегистрирован: 06.08.2021

Green, цитату в студию кому и что я советовал.
Если коробит фраза "Новичкам, на ус намотать" , перевожу для особо опытных - "не учитесь на своих ошибках, уж лучше на моих ..." или "не наступайте на мои грабли".
Так понятнее?

Супер опытный? Спец по светодиодам???
Не излучай энергию понапрасну. Помоги парню в соседей ветке - два дня уже ожидает помощи.
http://arduino.ru/node/38252
Или для Гуру не уровень опускаться до такого плинтуса?