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

Arduino mini Как залить скетч

Ср апр 29, 2020 23:57:32

Добрый день!

Имеется устройство управления сервоприводом (схему прилагаю).
У Arduino доступны Питание, Земля, UART и внешняя кнопка reset.
Проблемы с загрузкой скетча.

Мои действия:
1. Перевожу схему на питание от ноута (отключаю кнопку включения, подсоединяю питание и землю от переходника usb-ttl).
2. Подключаю UART.
3. В среде разработки IDE выбираю порт (у меня COM3) и нажимаю "Upload" - залить скетч.
4. После завершения компиляции (среда возвращает лог) передергиваю внешнюю кнопку reset.

Итог.
Среда разработки IDE возвращает ошибку.
Текст ошибки не сохранил, но смысл в том, что не получен верный ответ (либо, второй вариант - порт занят).

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

Текущее состояние схемы:
1. управление сервоприводом осуществляется по программе текущего скетча в arduino - значит, arduino жива.
2. при передергивании внешней кнопки reset на arduino один раз мигает светодиод, как при нажатии на штатную кнопку - значит, внешняя кнопка работает.
3. при подключении ноута (перевод питания + подключение UART) в терминале получаю данные с arduino (согласно программе текущего скетча) - значит, связь ноута с arduino есть.

Прошу помощи у знатоков, как все-таки залить скетч в ардуино?

Второй вопрос тоже насущный, можно ли получать данные с arduino на ноут по UART при условии питания схемы от блока питания 6,5 В? Не удобно каждый раз переключать питание, чтобы подсоединиться к схеме (наверно, это даже и не логично).
Эл. схема.jpg
(71.52 KiB) Скачиваний: 281

Re: Arduino mini Как залить скетч

Чт апр 30, 2020 01:32:44

питать можно внешним блоком, тогда +5в не присоединяйте от усб-уарт, только землю и tx/rx

Re: Arduino mini Как залить скетч

Чт апр 30, 2020 19:23:14

Имеется устройство управления сервоприводом (схему прилагаю).

По схеме нарисовано +6,5 В подаётся на вывод VCC. Так ли это? Если так, то напряжение питания для МК семейства мега допустимо максимально лишь до 6 В. Кстати в схеме ошибка… + питание от внешнего БП подаётся на GND МК.
1.png

Re: Arduino mini Как залить скетч

Чт апр 30, 2020 19:51:50

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

Re: Arduino mini Как залить скетч

Чт апр 30, 2020 20:02:16

Вход стабилизатора обозначается RAW, а не VCC.
VCC это непосредственно вывод питания МК и выход стабилизатора. Который выведен на шильде для подачи напряжения на МК в обход стабилизатора, или можно питать от него периферию если задействован стабилизатор.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:26:30

питать можно внешним блоком, тогда +5в не присоединяйте от усб-уарт, только землю и tx/rx


Подсоединил - работает, спасибо за совет.
Данные на ноут передаются нормально,
но скетч по-прежнему не загружается.

Пробовал вместо внешней кнопки соединить один из ее контактов с ножкой rst переходника usb-ttl. Еффекта ноль. Вернул кнопку на место.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:32:27

А RESET кто подключать будет? CTS или DTR (забыл что именно, попробовать можно - не поплохее) переходника на RESET пин подключите. Сбросом оно переводит МК в бутлоадер, без которого не будет прошивки.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:33:56

...в схеме ошибка… + питание от внешнего БП подаётся на GND МК.

Вижу, так и есть, нарисовано с ошибкой.
Рисунок поправлю, если это ускорит решение :write:

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:36:57

Пробовал вместо внешней кнопки соединить один из ее контактов с ножкой rst переходника usb-ttl. Еффекта ноль. Вернул кнопку на место.

Что значит "один из"? Нужен тот, что на ногу МК идет.

И обратите внимание на слова Самсусамыч, питание выше 6В должно подключаться на вывод RAW, а не VCC.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:37:36

На плате написано RST, а на схеме DTR. :)

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:39:53

4. После завершения компиляции (среда возвращает лог) передергиваю внешнюю кнопку reset.

Долго так будете пытаться попасть в бут. Он всего 0.5с ожидает запроса на переход в режим программирования, а прога для прошивки только один раз подает сигнал. Нужно совпасть. Или нормально подключить вывод RESET.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:45:06

Я умудрялся успевать кнопкой на шильде сбросить МК… :)))

Re: Arduino mini Как залить скетч

Пт май 01, 2020 00:49:07

Да можно конечно вручную попасть. Сам так делал. Но это обычно не с 1го раза получается ) И делать это надо ДО запуска avrdude, прям перед самым его запуском.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 09:09:51

4. После завершения компиляции (среда возвращает лог) передергиваю внешнюю кнопку reset.

Долго так будете пытаться попасть в бут. Он всего 0.5с ожидает запроса на переход в режим программирования, а прога для прошивки только один раз подает сигнал. Нужно совпасть. Или нормально подключить вывод RESET.

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


Добавлено after 19 minutes 6 seconds:
Что значит "один из"? Нужен тот, что на ногу МК идет.

Я так понимаю, оба контакта идут на ноги МК- каждый на свою. Один на GND, а второй, видимо, на RST. Иначе, как ещё кнопка может перезапустить МК?
Подключал по одереди, сначала один контакт - и пробовал прошить МК, затем, вместо первого - второй.
Идея была в том, чтобы переходник usb-ttl своим выводом RST подал сигнал сброса в нужный момент. Раньше, в том числе, и до подключения конденсатора в схему, такой вариант я не пробовал.

Добавлено after 5 minutes 17 seconds:
И обратите внимание на слова Самсусамыч, питание выше 6В должно подключаться на вывод RAW, а не VCC.

К чему, в данной схеме, приведет это переподключение: На процесс прошивки может повлиять?

Добавлено after 16 minutes 54 seconds:
Грешу на конденсатор.
Можно предположить, что с ним - как-то изменилась крутизна фронта сигнала сброса. И теперь arduino mini от кнопки перезапускается (это точно, передача данных на ПК останавливается), но "как-то недостаточно". И поэтому, процесс прошивки заканчивается ошибкой.
Правда, насколько это правдоподобно?

Добавлено after 4 minutes 15 seconds:
На плате написано RST, а на схеме DTR. :)

Вы какую схему имеете ввиду?)

Re: Arduino mini Как залить скетч

Пт май 01, 2020 10:32:41

Я так понимаю, оба контакта идут на ноги МК- каждый на свою. Один на GND, а второй, видимо, на RST. Иначе, как ещё кнопка может перезапустить МК?

Ну как общепринято, что земля - это земля, она общая. Она везде есть, а не только у МК. Поэтому один из контактов кнопки у вас на землю идет, а второй на ногу REST. Вот ко второму и надо подключаться.

Идея была в том, чтобы переходник usb-ttl своим выводом RST подал сигнал сброса в нужный момент. Раньше, в том числе, и до подключения конденсатора в схему, такой вариант я не пробовал.

Это не ваша идея, оно так и работает. Прошивальщик при прошивке на вывод DTR программатора на 250 мс подает низкий уровень, чтобы разрядить конденсатор и сбросить МК. Когда МК запускается, загрузчик проверят причину сброса - и только если она по сбросу через пин RESET (это называется внешний сброс), то он в течение 500мс ожидает комманду на прошивку. Иначе сразу прыгает в основную программу. Т.е. без сброса по сигналу RESET в режим прошивки вы никак не войдете.
Если ваш конденсатор в схеме между Vcc и GND, то повлиять он особо не может. Питание податеся всегда при включении, он всегда будет заряжен. Как же раньше вы прошивали тогда? Вручную сброс нажимали, ловя момент после компиляции?

К чему, в данной схеме, приведет это переподключение: На процесс прошивки может повлиять?

К тому, что МК и остальное не спалите. Нельзя выше 6В (а лучше 5) подавать на схему. Для более высокого напряжения питания есть ногда RAW, которая идет на линейный стабилизатор напряжения до 5В.

Добавлено after 6 minutes 11 seconds:
А, я понял кажись в чем у вас дело. Вы кнопку "внешнюю" поставили небось параллельно кнопке на плате. И туда и вывод USB-TTL тулите. Так работать не будет. Программатор после подачи низкого уровня на вывод DTR-RESET, сразу подает высокий и ждет еще. Схему смотрите, платка аруино - не голый МК:
Изображение
Обратите внимание на то, где DTR - там до ноги RESET еще стоит конденсатор. Так и надо подключать - через вывод RESET на плате Arduino Mini, а не на пин кнопки. Так конденсатор сначала разряжается, а потом через R2 начинает заряжаться, пока на DTR низкий уровень, формируя сигнал сброса. Программатор arduino на DTR держит всё время низкий уровень до окончания прошивки. Если вы подключите вместо кнопки, сразу на ногу RESET МК - он из сброса не выходит, вот и не работает.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 12:58:41

Вы какую схему имеете ввиду?)

Схему шильда ардуины мини. :)

Re: Arduino mini Как залить скетч

Пт май 01, 2020 15:11:08

Спасибо NStorm за развернутый ответ!

... оно так и работает. Прошивальщик...

Поправьте, если ошибаюсь, но задействованный переходник USB-TTL это не совсем прошивальщик.
Не могу сказать, для чего предназначен его вывод RST (может ли он действовать как сбрасыватель, распознает ли он такую команду от IDE Arduino?) Поэтому отношусь к этой затее именно как к идее)

... кнопку "внешнюю" поставили небось параллельно кнопке на плате... Так работать не будет.

Как же раньше вы прошивали тогда? Вручную сброс нажимали, ловя момент после компиляции?

Да, с использованием внешней кнопки, параллельной внутренней кнопке RESET - писал об этом в самом начале.
Процедура не хитрая, по ней вопросов нет.

Задачи заменить кнопку RESET на сигнал DTR для целей прошивки - не стоит.
К чему, в данной схеме, приведет это переподключение: На процесс прошивки может повлиять?

К тому, что МК и остальное не спалите...
Схему смотрите, платка аруино - не голый МК:...

По данной схеме в части стабилизатора, можно предположить следующий эффект.
За счет внутренних емкостей С19 и С13 отпадает надобность во внешнем конденсаторе.
И, соответственно, появляется шанс его убрать :))

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

Для справки, используется серво типа DS3225MG.

Кстати,
Самсусамыч писал(а):На плате написано RST, а на схеме DTR. :)

на плате моей adruino mini используются оба эти обозначения. Выводы шилда разные :)
Если нужно, могу выложить фото моей adruino (естественно, китайский клон) и переходника USB-TTL.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 15:46:11

Поправьте, если ошибаюсь, но задействованный переходник USB-TTL это не совсем прошивальщик.
Не могу сказать, для чего предназначен его вывод RST (может ли он действовать как сбрасыватель, распознает ли он такую команду от IDE Arduino?) Поэтому отношусь к этой затее именно как к идее)

Прошивальщий = программа из комплекта avrdude в данном случае. Да, по железу просто переходник, но им же и прошивается, т.к. на ардуино не голый МК, там изначально уже прошит бутлоадер, умеющий прошивать по UART. На перехондиках USB-UART нет обычно никаких RESET. Там есть DTR. Это в вашем назвали так, потому что под ардуино заточен надписью просто. Подключайте, оно именно так и расчитано работать. Всегда. Все ардуино прошиваются именно переходником USB-UART (или USB-TTL как вы его назвали, это неважно). Даже старшие модели, где есть USB - там просто аналогичный переходник на плате "встроен" и всё. И именно через DTR<->RESET они переходят в режим прошивки.

В связи с этим вопрос, сможет ли указанный внутренний стабилизатор в известном смысле "заменить" собой внешний конденсатор?
Для справки, используется серво типа DS3225MG.

Чудес не бывает. Если и без стаба проседает, то сам по себе он помочь не может. Серву через него не подключить - там всего 150мА максимум тока он может выдавать, если такой стоит. А китайцы с разными конечно делают бывает. Ну может конечно конденсатор на входе стаба поможет, если хватит его.

Re: Arduino mini Как залить скетч

Пт май 01, 2020 15:56:45

на плате моей adruino mini используются оба эти обозначения. Выводы шилда разные :)

Теперь и я обнаружил этот вывод через увеличительное стекло… зрение подвело стазу обнаружить… :))

Re: Arduino mini Как залить скетч

Пт май 01, 2020 16:01:53

на плате моей adruino mini используются оба эти обозначения. Выводы шилда разные :)
Если нужно, могу выложить фото моей adruino (естественно, китайский клон) и переходника USB-TTL.

Такая небось: https://cdn.compacttool.ru/images/docs/ ... b257ea.jpg
Изображение
Вот DTR там через конденсатор подключено, а RST вроде напрямую. Подключать переходник надо к DTR. Покажите фото переходника.

А вообще это сто раз уже описано везде. Вот, например: https://habr.com/ru/post/249391/
Ответить