Использование UART (D0/D1) на UNO, непонятки
- Войдите на сайт для отправки комментариев
Приветствую всех
Имею китайскую 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. Я не дочитал некоторую элементарную вещь
Если второе (третье, четвёртое), ткните носом
Спасибо
уберите отдельное питание 12в и питайте Уно от USB-UART
Это как?
Выставить принудительно сигнал на DTR или RTS и подключить его к входу +5В ?
Попробую конечно, но это как-то нестандартно
и не понятна суть проблемы - что не так в моих предыдущих действиях?
зачем? на любом USB-UART переходнике есть выход для питания. обычно даже два - 5в и 3.3
Покажите какая плата Уно. Также нужна ее схема - подключение СН340 к пинам 0 и 1. Какая-то похожая проблема была, и я ее как-то решал. Но блин забыл...
При "типовой" схеме Уно и "типовой" схеме переходника работать не должно, т.к. у переходника на выходе TX стоит последовательный резистор 1,5 КОм. Так что надо смотреть схему не только УНО но и переходника.
По какой причине было решено использовать отдельный переходник?
Проверить работоспособность "шнурка" можно предварительно загрузив скетч использующий SoftwareSerial. И подключив "шнурок" к выводам SoftwareSerial.
Работоспособность шнурка проверяется замыканием RX c TX и наблюдая эхо на экране терминала.
Работоспособность в смысле совместимость с УНО, проводами между ними, способом питания УНО, скоростями и т.д.
Проблема в том, что Вы подключаете внешний переходник параллельно тому который стоит на борту. Обрежьте провода у родного, тогда и внешний заработает.
зачем? на любом USB-UART переходнике есть выход для питания. обычно даже два - 5в и 3.3
У меня не такой переходник.
Думаю, что он и косячит
Это похоже на USB-RS232. Чувствуете разницу?
Работоспособность шнурка проверяется замыканием RX c TX и наблюдая эхо на экране терминала.
Проверял - работает.
Проверить работоспособность "шнурка" можно предварительно загрузив скетч использующий SoftwareSerial.
И подключив "шнурок" к выводам SoftwareSerial.
Работоспособность в смысле совместимость с УНО, проводами между ними, способом питания УНО, скоростями и т.д.
Была мысль - ещё не пробовал.
При "типовой" схеме Уно и "типовой" схеме переходника работать не должно, т.к. у переходника на выходе TX стоит последовательный резистор 1,5 КОм.
Между "бортовым" CH340g и atmega328P на RX и TX стоят резисторы по 1К, штатные. Работает же как-то, UNO прошивается и обмен с Serial Monitor нормальный.
Так что надо смотреть схему не только УНО но и переходника.
Вполне возможно, что проблема все-таки в переходнике, хотя не понимаю какая
Схемы переходника нет.
В ОС пишет, что это CH340g, буква в букву, как и для UNO. Уровни TTL, чем он еще может отличаться от наколенного USB-UART или того, что на борту UNO ?
По какой причине было решено использовать отдельный переходник?
Через бортовой работает - уже не интересно.
Хочется пощупать со всех сторон.
Вот начал щупать, узнаю много нового и интересного.
Попал на косяк на ровном месте - зацепило, надо разобраться.
Слышал пару раз, что все эти шнурки-переходники глючные. Просто на данный момент заменить/перепаять нечем, на даче я, а родной балкон далеко.
Основной вопрос то был в том не упустил ли я чего при таком подключении, может подтягивания какие нужны, конденсаторы или еще что.
Хотя, все вроде очевидно - проще некуда.
К сожалению на всех форумах описывают либо как драйвер устанвить для CH340g, либо как стандартно потестить по Serial Monitor, либо как две ардуины крест на крест соединить.
Это похоже на USB-RS232. Чувствуете разницу?
Чувствую и понимаю.
Для этого и проверял его тестером и диодами.
На выходах +5В и 0В. TTL
Или работа UART отличается от RS232 ? Кроме уровней сигналов, конечно
Сча пойду на вики, возраст таки - промою извилины
Можно предположить, что в этом кАбельке после CH340g стоит еще MAX232
Но тогда уровни сигналов на выходе должны быть другие (около +5В и -5В)
Какими ещё диодами! Найдите распиновку RS232 и измерьте относительно к.5 при отключенном разъёме.
Как минимум - 232 инвертирован.
Это уже ближе к телу.
Какими ещё диодами!
Затем, что-бы убедиться, что на выходе шнурка 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, большое спасибо за наводку
Проблема в том, что Вы подключаете внешний переходник параллельно тому который стоит на борту. Обрежьте провода у родного, тогда и внешний заработает.
На сколько я понимаю, как раз для этого между "бортовым" RX/TX CH340g и TX/RX avr-а стоят резисторы 1К, а при использовании пинов D0/D1 в UNO, настоятельно рекомендуют отключать (никак не отпиливать) родной CH340g от USB, что я и выполнял
Покажите какая плата Уно. Также нужна ее схема - подключение СН340 к пинам 0 и 1. Какая-то похожая проблема была, и я ее как-то решал. Но блин забыл...
На всякий случай (вдруг таки проблема не в переходнике) скину рисунки, делал старался - может кому пригодятся (хотя подобного полно в Интернете).
Вот моя плата - самая обычная китайская
Это ее USB-UART на CH340g
Видим R8 и R9 - резисторы по 1 КОм-у между RX/TX CH340g и Atmega328p, рядом с ними светодиоды-индикаторы RX и TX
Пунктирные соединения расположены на обратной стороне платы
Подключение CH340g к RX/TX Atmega328p и продолжение этих подключений к пинам D0/D1 а также к дополнительной площадке под пайку
Тут также пунктирные линии показывают соединения с противоположной стороны платы
А это соединения на обратной стороне
Отложу свой странный (а может и не странный, по современным меркам) USB-RS232 переходник в сторону
Куплю или сотворю USB-UART
И да прибудет мне счастье! ...
Всем огромное спасибо за оперативные и точные пинки.
Yuz, плата у меня такая же. Но схему Вы другую показали. Чтоб новички не путались, покажу подходящую к этой ардуинке.
У меня при замыкании D0, D1 не проходило эхо. Увеличил R6, R7 до 4.7 кОма. На моей плате поменяны местами R6 и лед Rx, но это не принципиально - они соединены последовательно.
Yuz, плата у меня такая же. Но схему Вы другую показали.
Чтоб новички не путались, покажу подходящую к этой ардуинке.
Согласен, Ваша схема подходит, вплоть до обозначения элементов
Свою убрал
У меня при замыкании D0, D1 не проходило эхо. Увеличил R6, R7 до 4.7 кОма.
На моей плате поменяны местами R6 и лед Rx, но это не принципиально - они соединены последовательно.
У меня все нормально работает
Запустил такой тест
Если D0 и D1 не замкнуты, приходят единички только в прием Serial Monotor-а
После замыкания D0 и D1, диод включается и выключается с периодом в 1 сек.
Т.е. единички пишутся паралельно в виртуальный COM-порт на комп через USB-UART (бортовой CH340g) и в RX Atmeg-и
Килоомные резисторы (R8,R9) между TX/RX CH340g и Atmeg-и, а также на светодиодах (R6,R7) индикации TX/RX CH340g передаче никак не мешают
так и не понял, зачем это нужно?
так и не понял, зачем это нужно?
Чтобы в течении суток во время своего отпуска разобраться, что китайский переходник USB-RS232 на базе CH340g имеет инверсные сигналы в сравнении с UART выходами CH340g, который стоит на борту китайской UNO.
И сделать умопомрачительный вывод:
Нельзя пихать переходник USB-RS232 в выходы D0/D1 UNO.
Для подобных задач существует другое китайское чудо - USB-UART
А новичкам на ус намотать
Нельзя пихать переходник USB-RS232 в выходы D0/D1 UNO.
А новичкам на ус намотать
Новичкам? От матёрого? ППЦ!)))
то, что я дилетант я уже признал выше
интересно - копаюсь и разбираюсь
себе на ус уже намотал и всех поблагодарил ну еще низкий поклон не выполнил, бывает
познавать новое никогда никому не поздно и не зазорно
Green, почему такой сарказм?
Ну, Федор посчитал это за совет, а не за делёжку неудачным опытом. То, что для новичка радостное открытие, то для человека с опытом - позорная ошибка. Увы, профессиональная деформация присутствует в каждом из нас и каждый считает, что тот, другой за монитором, должен быть не менее опытным.
sadman41, спасибо Вам за поддержку и ещё раз за самую точную подсказку
Green, почему такой сарказм?
Что бы учить новичков, нужно самому разобраться в вопросе. А не производить измерения с помощью СВЕТОдиодов! Ужос(.
1. Я никого не учил
2. Как раз сам и разбирался
3. По светодиодам свою позицию объяснил несколько раз - ничего ужОсного не вижу
Дядя, неужто ты считаешь что светодиод (который ты раньше называл диодом) во всех случаях является индикатором полярности?
Не думаешь ли ты что для ёйного свечения необходим какой-никакой ток?
Если честно, не могу представить что переходник USB-RS232 не выдаёт стандартные для RS232 уровни на выходе...
В любом случае, начинающий, которому ты рекомендуешь свой "опыт" может запросто спалить свой Ардуино.(
А ведь не зря интернет считается помойкой, в которой именно начинающим очень трудно ориентироваться.
Сынок, представь себе, что да, именно так и есть - в моем китайськом чудо-шнурке USB-RS232 действительно уровни 0 и +5 В. НЕТ там отрицательного уровня, НЕТ!
Поэтому я наивно посчитал, что это позволит его использовать для подключения к UART.
Да, я НЕ знал (не забыл, а именно НЕ знал) о противоположных полярностях RS232 и UART и несколько раз это признавал в обсуждении. До сих пор мне это не мешало жить - расстреляйте меня за это.
При всем этом, этот шнурок, как не удивительно, использовался много раз для консольного подключения к Cisco и Микротикам и даже для программирования радиостанций Vertex и стареньких Yeasu.
Админы, закройте или удалите пожалуйста эту ветку, пока у Федора не взорвался пукан
Простите за хамство, но не я первым перешёл на личности
Если честно, не могу представить что переходник USB-RS232 не выдаёт стандартные для RS232 уровни на выходе...
Федор! Я с люботытсвом следил за темой. Было интересно, когда решение найдется ;)))) Нельзя лишать людей радости простых открытий! ;)) У меня был именно такой шнурок распотрошен. Даже цвета такого же. Толь в ДНС толь в Ситилинке купил.
Там не RS-232 уровни, а вполне себе TTL. Только инверсные. Так делали на ноутах часто, не было на ком-порту 12 вольт. По сигналам совместимо, по уровням нет.
У меня был именно такой шнурок распотрошен.
Если можно, поделитесь схемой этого или подобного шнурка для полноты раскрытия вопроса.
Не буду утверждать, но не удивлюсь, что подобными шнурками АлиЭкспресс завален под завязку - так проще и дешевле. Найти реально правильный USB-RS232 можно только по отзывам или уж лучше самому изготовить.
Покупал я его достаточно давно, когда все компы с настоящимы COM-портами иссякли. На тот момент даже не подозревал о подвохе - работает, ну и ладно.
Понял, отлетаю - схем немерянно (USB-RS232 TTL)
А вот он, родной на Али (и ни слова о TTL)
https://a.aliexpress.com/_A0Nrki
Вот это вырванный кусок фразы и есть суть дела! Я бы попросил тебя пояснить цель изысканий. Если просто любопытство, то его лучше решать интимно. За Гуглем и стаканчиком Хереса, при неверном свете свечи. Любопытство сродни похоти и его удовлетворение требует уединения, как и рукоблудие. ;))) ИМХО.
Если ты хочешь пользоваться переходником USB-RS232, то почти везде подойдет этот. Оборудование, которое требует +/-12В уже на свалке, ну кроме военных - те еще некрофилы!
Если хочешь собрать переходник на 232 - Веклом! Есть микросхема MAX на ней и собирай.Мне изначально странен посыл - прихуярить к ардуине другой переходник, вместо штатного, зачем? Даже если просто интересно, то почему к hardware UART, а не к софтовому?
Какую задачу ты пере собой ставишь? Ну кроме выноса мозга на форуме? ;))
Хочешь влиться в наше хобби? Ок, мы рады. Скажи "да" и я, или любой старожил, объясним что необходимо купить. И Паяльник, логанализатор и осциллограф - начальные покупки. Вполне подойдет какая-нить USB приставка.
А пока вся тема - как списана из "12 стульев" про слесаря-интеллигента. Без обид, если сможешь.
Если честно и коротко - рукоблудие. Ну и частично отношусь к никрофилам.
А если серьёзно, то достал очередной раз в отпуске запыленную Уну - чего зря валяться ? Продолжить, так сказать знакомство, решил разбором подключения ее к компу по COM-порту (другой Уни или наны у меня пока нет).
По встроенному порту не интересно, решил попробовать через шнурок.
Лепил из того, что было а тут такой косяк на ровном месте. Сам не смог раздуплить вот и обратился.
Давно зарекся писать любые вопросы на форум, но иногда зудит. Тут, спасибо, какашками обложили не сразу. Сначала, так сказать, расчленили все качественно и за это благодарен всецело.
Закройте это тему, хрен с ней.
Сам себе уже за два дня мозг вынес.
Сынок, плохо когда не знаешь да ещё и забудешь. Тут все сынки не моложе твоего, поэтому не нужно изображать из себя старпёра.
Влад, ну я подозревал что китайцы могут сделать всё что хош, но лично именно на ЭТО не нарывался. Понятно, что RS2323 допускает (и работает) с нестандартными уровнями, но это не во всех случаях.
Ну а представь что начинающий, по совету, подключит именно "нормальный" USB-RS232... Как бы не очень. Ну и нафига людей вводить в заблуждение? Только в этом и мои замечания.
Green, цитату в студию кому и что я советовал.
Если коробит фраза "Новичкам, на ус намотать" , перевожу для особо опытных - "не учитесь на своих ошибках, уж лучше на моих ..." или "не наступайте на мои грабли".
Так понятнее?
Супер опытный? Спец по светодиодам???
Не излучай энергию понапрасну. Помоги парню в соседей ветке - два дня уже ожидает помощи.
http://arduino.ru/node/38252
Или для Гуру не уровень опускаться до такого плинтуса?