В какой-то момент меня заинтересовала тема оффлайн программатора, то есть устройства, позволяющего прошить микроконтроллер без участия компьютера. В общем, потребность в нем может возникнуть очень редко, но тем не менее хотелось бы, чтобы такая «шоб была».
Портативный автономный программатор..
Так же ISP программатор можно сделать на любой Arduino, а значит это не должно составить труда. Веб-поиск дает почти единственную перепечатанную версию на многих сайтах. Программатор очень хороший и простой в повторении, но в некоторых моментах не удобный. А так как автор не предоставил исходный код (что не мешает людям его производить и продавать), то изменить что-то практически невозможно.
Что меня не устраивает в авторской версии?
- Хотелось бы иметь возможность сделать на других экранах, подешевле, с большим разрешением, может покомпактнее, у меня как минимум два варианта.
- Авторская версия поддерживает только карты памяти MicroSD старого формата до 2 Гб, которые сейчас трудно найти. Библиотеки SD позволяют использовать современные карты памяти.
- Без карты памяти программатор «превращается в тыкву», даже сообщение об ошибке на экране отображается некорректно. Хотелось бы, чтобы основные функции были доступны без карты памяти.
4*. Бонусный список желаний. Обойдетесь без карты памяти вообще. Для этого вам потребуется микросхема памяти, которая стоит всего несколько центов, программная реализация интерфейса USB для загрузки прошивки с компьютера и терминальная программа для преобразования HEX-файла и отправки его с компьютера в память программатора. . Последнее для меня обычно темный лес, надеюсь на спецов.
Пять*. На основании предыдущего пункта предлагается другой вариант. Если вам нужно загрузить на контроллеры 100500 одну и ту же прошивку, которая помещается в память программы контроллера программатора, то достаточно преобразовать HEX файл в байтовый массив с помощью скрипта на компьютере (тут опять для меня темный лес) , и вставьте его в код программатора. А так как экран в данном случае не обязателен, то можно просто запустить созданный скетч на первой попавшейся плате Arduino и отправиться в горы с павербанком прошивать 100 500 контроллеров (а где еще такого может не быть? ?). Вот только для последнего варианта в сети была другая версия программатора — ультрамобильная прошивка. Я смог запустить его только почти полностью переписав код, но спасибо за идею.
6*. В связи с этим вспомнился еще один важный список пожеланий — возможность выбора интерфейса программирования в меню программатора: ISP (по умолчанию), JTAG, TPI (Attiny10).
Если включить монитор порта (когда Arduino питается от USB компьютера), то на мониторе будет отображаться отображаемая подпись контроллера и ход записи и чтения прошивки. Внимание! Каждый раз, когда вы запускаете Port Monitor, Arduino перезагружается и снова запускает скетч, соответственно перезаписывая Attiny. Это не страшно, но если вынуть его из USB в неподходящий момент, то можно испортить Аттини. Накосячил Atmega64 в процессе экспериментов. Прошивка появляется через пару секунд после подачи питания, затем вы можете проверить Attiny в действии: когда уровень на входе 3 (это контакт 2 tini13) низкий, загорается светодиод на выходе 2. (это пин 7 tini13), его роль играет светодиод на Arduino, и он не загорается при высоком).
Источник: аrduinо.ru