Atmega8A в корпусе TQFP-32 прошивка через Arduino ISP

Опубликовал | 05.05.2015

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

В обзоре будет описана возможность использования Arduino в качестве программатора далее по тексту Arduino ISP. Кому интересно, прошу под кат.

Наигравшись с различными модулями к Arduino, у меня возникло желание создать полноценное устройство, которое будет полезно в повседневной жизни.
Случайно наткнувшись в интернете на проект Эмулятор домофонных ключей iButton/Cyfral/Metacom — ibutton от ClusterM, решил попытаться его повторить.

Прочитав описание проекта, были сформулированы основные для меня проблемы или как принято говорить подводные камни:
— Создание печатной платы;
— Прошивка микроконтроллера Atmega8A в корпусе TQFP-32.

Atmega8 в корпусе TQFP-32 помимо достоинств, таких как более низкая цена и меньший размер по сравнению с DIP, имеет и недостаток — это неудобство прошивки микроконтроллера и более сложный монтаж на плату.

Устранить первый недостаток можно различными способами:
— Приобрести переходник TQFP32 TO DIP32, который имеет механизм зажима. Стоимость около 1 тыс. рублей;
— Приобрести переходник TQFP32 TO DIP32, который не имеет механизма зажима, рассчитан на припаивание микроконтроллера. Стоимость около 100 рублей за 5 штук;
— Сделать печатную плату-переходник TQFP32 TO DIP32 своими руками;
— Припаять тонкие провода к нужным ножкам и отпаять после прошивки.

Выбрав предпоследний вариант, чтобы не ждать еще месяц доставки, я приступил к созданию печатной платы по методу ЛУТ. Информации и роликов в интернете о данном методе очень много и каждый без труда сможет повторить его дома. Вытравив плату в хлорном железе и припаяв штырьки, получился вот такой переходник:

Исходные файлы для Sprint Layout, можно скачать здесь.

Припаиваем Atmega8 феном или паяльником. Можно «прихватить», только 8 ножек, которые участвуют в прошивке. Не рекомендую использовать различные зажимы или «колхозить» с прищепками.

Подключаем Arduino Uno к компьютеру по USB и загружаем скетч Arduino ISP. Компилируем и прошиваем Arduino Uno. В комментариях, есть подсказка по подключению для прошивки через Arduino ISP, нам потребуются пины MOSI, MISO, RESET, GND, GND, VCC, VCC, SCK.

// pin name:    not-mega:         mega(1280 and 2560)  // slave reset: 10:               53   // MOSI:        11:               51   // MISO:        12:               50   // SCK:         13:               52 

Общая схема подключения будет выглядеть следующим образом:

Для прошивки будем использовать консольную утилиту avrdude:

avrdude -p m8 -P USB15 -c arduino -b 19200 -U lfuse:w:0xE4:m -U hfuse:w:0xDA:m -U flash:w:main.hex

где -p m8 — Прошиваемый микроконтроллер в нашем случаи Atmega8;
-P USB15 — Имя порта, под которым опеределяется программатор Arduino ISP;
-с arduino — Тип программатора;
-b 19200 — Скорость USB порта;
-U flash:w:main.hex — Прошивка;
-U lfuse:w:0xE4:m -U hfuse:w:0xDA:m — Фьюзы.

После успешной прошивки, можно дополнительно сравнить код на flash с исходным hex файлом:

avrdude -p m8 -P USB15 -c arduino -b 19200 -U flash:v:main.hex

Если у Вас нет в наличии Arduino, то в качестве дешевого программатора, можно использовать USBasp. Его стоимость порядка 100 руб.

В заключении, продемонстрирую фотографии устройства, которое я собрал по проекту ClusterM.

Фотографии

Особенности:
— Эмуляция iButton/Cyfral/Metacom;
— Считывание iButton/Cyfral;
— Синхронизация базы ключей с компьютером по USB;
— Компактный размер платы;
— Низкое энергопотребление, автор проекта сообщал, что от одного комплекта батареек устройство работает около года;

(c) 2015 Источник материала.

Рекламные ссылки