AVR ISP2 - пример практического использования

Опубликовано 13.09.2012 Ведущий Филипп Болгов

Из-за различия в стандартах, протоколах и спецификациях довольно часто возникают весьма неприятные ситуации: устройство, отлично работающее в паре с другим устройством от производителя А, категорически отказывается работать с устройством от производителя Б, а если и работает, то некорректно. Примером может служить фотостол для предметной съёмки, который отлично работает с фотоаппаратами фирмы Canon, но из-за отличия в последовательности управляющих импульсов некорректно работает с фотоаппаратом фирмы Sony – в результате чего, пользоваться им практически невозможно.
Первое что мы решили сделать – это открыть корпус и посмотреть на его внутреннее устройство. Открываем корпус и видим внутри шаговый двигатель, обеспечивающий поворот стола на заданный угол и плату контроллера. Схемы контроллера у нас нет, однако на нём без труда можно увидеть микросхему ключей и микроконтроллер, в нашем случае ATMega8A. Для изменения программы данного AVR микроконтроллера можно применять внутрисхемное программирование, т.е. просто подпаять 6 проводков прямо на плату, но даже этого делать не потребуется – разъем ISP уже присутствует на плате.
Для изменения прошивки нам потребуется программатор, в данном случае мы остановили свой выбор на AVR ISP2, т.к. он предельно прост в настройке и эксплуатации. Устанавливаем программное обеспечение – драйвера, которые можно найти на диске и среду разработки AVR Studio, которую можно загрузить с сайта Atmel. Подключаем наш программатор к компьютеру и к программируемому устройству. После чего подаём на устройство питание. Зелёный индикатор сигнализирует о том, что все готово к работе.
Новую прошивку, учитывающую особенности работы нашего фотоаппарата мы получили от разработчиков стола и сохранили на жёстком диске. Запускаем AVR Studio и выбираем Tools – Programm AVR – Connect. В открывшемся окне – выбираем наш программатор и тип подключения (USB). Когда программа получит ответ от программатора, откроется новое окно, в котором мы выбираем тип программируемого контроллера и указываем путь к HEX-файлу с прошивкой. Всё готово – жмём «Program» и программа загружается в контроллер. Надписи «ОК» показывают, что все этапы программирования прошли успешно.
Отключаем питание стола, отключаем программатор, и собираем стол обратно, после чего можно проверять его в работе. Как вы видите, никаких сбоев в работе фотоаппарата не наблюдается – после каждого поворота стола на определённый угол, происходит однократное фотографирование объекта. Таким же образом можно работать и с другими устройствами на базе AVR микроконтроллеров с поддержкой внутрисхемного программирования.