Здравствуйте. Возникла задача, с которой я уже 3 дня не могу справиться. Мне нужно программировать Arduino Uno через COM-порт (не через USB). Программировать хочу через IDE Arduino (стандартную среду разработки), поэтому нужно программировать не через SPI-интерфейс (пины SCK, MISO, MOSI), а через пины TX и RX, используя стандартный загрузчик, прошитый в контроллер. Пробую пока не через COM-порт, а через внешний преобразователь USB -> UART на микросхеме FTDI (MMusb232RL). Не получается! Появляется куча ошибок при загрузке прошивки: avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00. Вообще, например, Arduino Mini, как раз таки программируется только за счёт внешнего преобразователя интерфейсов FTDI, правда не такого, как у меня, но микросхема у него та-же FT232RL. Ну а почему я не могу? Подключаю по стандартной схеме: "VCC" к "VCC"; "GND" к "GND"; "TX" к "RX"; "RX" к "TX"; "reset (out) FTDI" к "RESET Arduino" через конденсатор 100 пФ, как говорят люди и как сделано и в самой плате Arduino Uno (посмотрел в схеме). Так-же в качестве ресета предлагают использовать вывод DTR преобразователя USB->UART, подключал и его (и через конденсатор и напрямую) - всё равно не прошивается! Что я делаю не так? Выбирал "Arduino Mini" вместо "Arduino Uno" в IDE - не помогло! Ну порт естественно выбрал правильно и драйвера поставил правильно. В момент программирования, мой Arduino к USB не подключен, а питание идёт на него через проводки со штыревыми разъёмами. Я подозреваю, что мешает ему программироваться свой собственный преобразователь USB-UART на контроллере ATMEGA16U2, но отключить линии TX и RX от него там не получится, ну я и не хочу что-то испортить на плате.
Нужно всё это за тем, чтобы программировать его удалённо (помимо программирования, ещё буду принимать с него данные с пина TX и передавать на RX). Arduino будет располагаться на расстоянии 12 от компа (по кабелю). Можно конечно купить 2 USB хаба и поставить их через каждые 5 метров по USB кабелю от компа до Arduino, но это во первых будет не надёжно, во вторых нету лишних денег.
ПОМОГИТЕ, ПРОШУ ВАС!
Hyжно отладить этот способ программирования Arduino
-
port_wine777
- Открыл глаза
- Сообщения: 61
- Зарегистрирован: Пн окт 03, 2011 09:49:59
Hyжно отладить этот способ программирования Arduino
- Вложения
-
- Как_программируется_ArduinoMini.jpg
- (18.76 КБ) 533 скачивания
-
- Как_люди_предлагают_подключить(так-же).png
- (120.63 КБ) 297 скачиваний
-
- Фрагмент_схемы_ArduinoUno.png
- (204.21 КБ) 568 скачиваний
Re: Hyжно отладить этот способ программирования Arduino
Конденсатор 100 пф - это описка в вашем сообщении ? Там 100nF надо. Может и встроенный USB-UART мешает. Оторвите дорожки аккуратно, а то можем долго гадать что там не так. Есть платы без USB - я такую применял в удаленном устройстве, через 7 метров витой пары шьется нормально на штатной скорости.
По идее там резисторы должны стоять между tx/rx контроллеров и при прямом подключении к внешнему UART (без резисторов) внешний перетянет уровень как надо.
По идее там резисторы должны стоять между tx/rx контроллеров и при прямом подключении к внешнему UART (без резисторов) внешний перетянет уровень как надо.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
-
port_wine777
- Открыл глаза
- Сообщения: 61
- Зарегистрирован: Пн окт 03, 2011 09:49:59
Re: Hyжно отладить этот способ программирования Arduino
Morroc писал(а):Конденсатор 100 пф - это описка в вашем сообщении ? Там 100nF надо. Может и встроенный USB-UART мешает. Оторвите дорожки аккуратно, а то можем долго гадать что там не так. Есть платы без USB - я такую применял в удаленном устройстве, через 7 метров витой пары шьется нормально на штатной скорости.
По идее там резисторы должны стоять между tx/rx контроллеров и при прямом подключении к внешнему UART (без резисторов) внешний перетянет уровень как надо.
Нет, не опечатка, это я ТУПАНУЛ, припаял сейчас кондёр на 0,1 мкФ, но проблема не исчезла.
Но в самой плате ардуино, сделано всё на прямую, без резюков, и терминал Arduino у меня данные принимает через FTDI (так как он уже был запрограмирован ранее)
Ещё вот такую схему попробовал, тоже всё печально.