Всех с Новым Годом! Просветите пожалуйста - имею плату Ideaduino 2.2 Питается от внешнего источника. При подключении к компьютеру начинает снова запускать setup(), аналогичная история если открываю порт в любом терминале. Это так и должно быть или я чего то не понимаю? Видел тут на форуме человек мельком упоминал об этом, но больше нигде не нашёл информации об этой особенности.
При открытии порта мост USB-UART (FT232RL) дергает сигнал DTR и сбрасывает им контроллер. Это сделано для возможности переводить контроллер в режим программирования через сброс и рестарт загрузчика. Есть различные способы обходить функцию автосброса, как со стороны ПК, так и со стороны Arduino. Если в Arduino IDE вы открываете "монитор порта", сброс тоже происходит?
Да, происходит. Спасибо за информацию! Особо не напрягает эта особенность, просто надо быть внимательней при состовлении программы.
Тут вот какое дело... На разных платах используются разные мосты, почти на всех новых ардуинах используется еще один контроллер AVR со встроенным портом USB типа ATmega8U2/ATmega16U2, а на Leonardo так и вовсе один единственный чип ATmega32U4 вместо двух. На таких платах я сброса при открытии встроенного в IDE терминала не наблюдал, при этом сброс перед прошивкой происходит нормально. Как ведут себя ардуины с мостами типа FT232 не знаю, у меня таких нет. Есть подозрение, что где-то этот автосброс обходится программно, либо на ПК, либо в прошивке моста.
Вот что встретилось по этому поводу http://atroshin.ru/ru/content/avtomaticheskaya-perezagruzka-arduino-pri-podklyuchenii-terminala Сам воспользовался конденсатором 10 мкФ для Uno. Все получилось. Есть, правда, один нюанс. Сначала заливаем скетч, потом подключаем конденсатор. Иначе скетч не заливается.