RS232 to TTL
- Войдите на сайт для отправки комментариев
Втр, 15/07/2014 - 23:52
Добрый вечер.
Купил конвертер RS232 to TTL. Цель покупки была использовать ком порт компютера для программирования а в дальнейшем для связи Arduino mega2560 с программой на компютере. При подключении ардуины через конвертер и попытке залить скетч получаю следующее:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Пробовал на конвертере замыкать RX TX и слать куски текста в serial monitor. Получаю обратно мусор. Плату в списке устройств не вижу. Плата жива, через USB порт все идет без проблем и в списке устройств находится.
Подскажите пожалуйста кто знает в чем проблема и что сделать что бы ардуина появилась в списке устройств, если это вообще возможно с этим конвертером...
Нашел косяк...у меня чип на конвертере на 3 вольта.
Надо быть внимательнее покупая с ebay....
Нашел косяк...у меня чип на конвертере на 3 вольта.
Дык это не проблема. Если чип TTL tolerance - все равно должен работать. Смотрите на даташит чипа конвертера.
Если нет - нужно значит между TX дуины и им вкорячить делитель напряжения, что-бы он ронял 5-ть вольт до 3-х.
А от конвертера к дуине - ничего не нужно.
Это если он еще не сгорел.
Горелость проверить можно замкнув RX/TX на самом конвертере и что-нибудь послать в Serial - если вернулось, значит живой.
Единственное что может стать проблемой - нужно будет искать питание +5v для меги. Ну либо питать ее отдельным блоком. Либо от COM-порта пробрасывать +12v на VIN меги (правда регулятор питания может греться...)
Вот посмотрите как делают usb-конвертер из кабеля для мобилки:
http://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
Он тоже - трех, вольтовый - и все работает (я проверял :)
Ну я купил микросхему МАХ232АСPЕ собрал сам конвертер и впринципе добился чтобы при замыкании RX и ТХ в serial monitor отсылать и получать то что отправил, но в диспечере устройств у меня на физическом порту ничего не определяется.... Если подключаю плату по усб то все идет как надо.
Может нужен какойто дополнительный драйвер для RS232 порта?
впринципе добился чтобы при замыкании RX и ТХ в serial monitor отсылать и получать то что отправил, но в диспечере устройств у меня на физическом порту ничего не определяется....
Как-то взаимоисклчающе звучит. Если вы в Serial мониторе открыли порт, значит физически уже все определилось. Иначе вы бы открыть его не смогли. Что вы подразумеваете под "ничего не определяется", что вы там ожидаете?
Может вот это еще пригодится: Arduino - ArduinoSoftwareRS232
Видимо я что то не так понимаю...ну я хотел в ардуино мега2560 залить скетч не через USB виртуальный COM port а через физический COM port RS232 используя микросхему МАХ232. При попытке это сделать я получаю:
А вы не прыгайте через голову. Раз нарушилась цепочка обеспечивающую заливку, значит нужно КАЖДЫЙ элемент цепочки проверить.
Вот замкнув RX/TX на конвертере вы проверили что "дрова и сам конвертер - рабочий" (это естественно в предположении что эту проверку вы делали именно "через физический COM port RS232 используя микросхему МАХ232").
Тепер, до того как биться с заливкой, нужно убедится что данные на ардуину, с ардуины приходят через конвертер нормально.
Это тоже одно из условий что-бы заливка работала (но не последнее).
Через USB же у вас вливаеются скетчи? Ну значит заливайте туда скетч типа
Цепляете свой конвертер D0,D1 открываете его в Serial мониторе и смотрите видите ли вы хелошки раз в секунду. Если да .... значит "от ардуины" данные приходят нормально (ну, естественно USB свой при этом желательно отключить).
Проверил. Данные идут, хелошки получаю нормально именно через ком порт без усб.
Проверил. Данные идут, хелошки получаю нормально именно через ком порт без усб.
Ну теперь нужно проверить что в ардуина нормально комп слышит.
Опять закорачиваем RX/TX только теперь програмно внутри ардуины:
Открываем монитор и должны получать назад все что послали. Физически - ничего не закорачиваем.
Проверил. И этот пункт работает...
Ну, для успокоения совести, можно проверить еще влив пустой скетч:
Если "эхо" от ардуины перестало поступать, значит предыдущий "програмный закорот" у нас таки работал. И случайного физического корочения RX/TX (сопля там припоя или еще что-то) - не имеется.
Ну предположим, что и с этим все в порядке (но я бы проверил).
Теперь, что-бы нормально пошла заливка должны выполнится два условия:
1. У ардуины должно быть питание (кстати, а откуда вы его берете, когда USB отключен?)
2. Нужно как-то передать управление бутлоадеру, что-бы он начал принимать свежую прошивку....
Отсюда вопрос: а каким образом (когда) в ардуине происходит передача управление бутлоадеру? Заливка-то происходит через тот же самый Serial который вы в скетчах используете. Как ардуина узнает когда нужно выполнять бутлоадер, а когда скетч?
Кстати обратите внимание, что вы нигде выше по теме не описали что и как вы подключаете. Ни питание, ни те же DTR нигде не упомянуты. Подключение не описанно, поэтому "заметить лишние" или "заметить отсуствующие" могут только телепаты.
Но... уж пока не морочтись с этим. Без DTR (я так понял у вас его нет) - тоже можно.
Кстати "программное эхо", из #9 тоже лучше проверять именно на скорости 115200, раз заливка у нас будет на 115200
Overriding Baud Rate : 115200
А то вдруг у вас все нормально работает на 9600, а на 115200 помехи и шум ловит.
1)Питание беру от внешнего блок питания. С этим проблем нет.
2)Мда... у меня подключены только RX TX и GND. Судя по тому что когда я заливал скетч через ftdi в ардуино нано то еще подключал СTS и DTR то видимо с ними тут тже еще нужно разобраться?
Или может ресет нажимать во время загрузки.. не помагает вроде
Нашел наконец:
Если автоматический сброс не сработал, то ввиду описанных отличий, использовать физическую кнопку сброса для прошивки Arduino Leonardo/Micro нужно несколько по-другому. Нажмите и удерживайте нажатой кнопку сброса на плате, после этого в среде разработки Ардуино кликните по кнопке Upload. Отпускайте кнопку сброса только после того, как в строке состояния программы появится надпись "Uploading...".
Спасибо большое что помогли последовательно разобраться. В голове уже была полная каша. Даже не надеялся на такую помощь.
Вопрос: как поменять скорость Serial, которая по умолчанию (например 115200), например на 9600.