Можно ли ускорить загрузку Arduino
- Войдите на сайт для отправки комментариев
Втр, 20/01/2015 - 22:47
Добрый день.
Сделал "проект" на Arduino micro (оригинал) - регулятор яркости светодиодов двухканальный с экранчиком. Регурировка производится энкодерами.
Но между подачей питания и началом работы проходит 3-5секунд (не мерял точно, но как-то долго)
Можно как-то ускорить загрузку? С чем это вообще связано?
немного ускорить можно если заменить штатный загрузчик на optiboot
остальное зависит от вашего скетча
а в чем проблема с задержкой? на что влияет?
4 с ждёт загрузчик.
Если есть вторая плата, можно сделать ArduinoISP программатор. Дорого но зато с ним даже ребёнок управится.
Если есть Atmega8A (не Atmega8L), можно сделать USBASP программатор. Геморрой (кварц на 12, стабилитроны, прошивать надо из командной строки), приколы (мой почему-то отказывается прошивать если нажать кнопку позже двух минут как вставил в USB, не прошивает во второй раз - надо выдернуть и снова воткнуть), зато дешёвый и пишет быстро (быстрее 57600).
Прошивание скетча программатором исключает задержку вообще.
Прошивание скетча программатором исключает задержку вообще.
ну тогда уж не только прошивать програматором нужно, но еще и загрузкчик фьюзами отключить
Можно как-то ускорить загрузку? С чем это вообще связано?
Это связано с загрузчиком (bootloader) ардуино, который позволяет загружать скетчи через USB-UART переходник. У него такой принцип работы - после подачи питания загрузчик некоторое время ждёт данных от USB-UART переходника. Если ничего не приходит, то только после этого он передаёт управление ранее загруженной программе. Поэтому и ожидание в несколько секунд. Чтобы ваша программа начала работать сразу после подачи питания, нужно убрать загрузчик. Для этого надо прошивать ардуино не через USB-UART переходник, а с помощью программатора, например USBasp.
UPD: А стоп... Попутал Arduino Micro c Arduino Pro Mini. Если у вас именно Micro с МК ATmega32u4, то там нет переходника. Втыкается напрямую в USB. Но в любом случае придётся отказаться от загрузки скетчей по USB и прошивать ардуину программатором.
но еще и загрузкчик фьюзами отключить
Чего?... Ведь достаточно прошить программатором и загрузчик автоматически затрётся.
Затрётся если вы загрузите большой код и залезете по его адресам.
Если фьюзами не выключить загрузчик то старт программы может быть не с тех адресов, лучше отключить
но кстати если просто поставить optiboot все будет намного быстрее и прошивать можно будет как и раньше
Если фьюзами не выключить загрузчик то старт программы может быть не с тех адресов, лучше отключить
Эм... Пните меня в нужную сторону, какими фьюзами управляется загрузчик? Честно говоря, в первый раз слышу.
BOOTRST
http://www.engbedded.com/fusecalc/
Загрузить с помощью программатора. Выбрать программатор USBASP, да, прошивать можно обычные скетчи.
Если исправить(добавить) плату в boards.txt то можно будет использовать всю память программ по максимуму.
А если снова " Записать загрузчик" то можно вернуться к нормальной загрузке по компорту.