Программаторы для AVR микроконтроллеров (USB, COM, LPT)
Узнаем что такое ISP-интерфейс, разберемся с недорогим и удобным программатором USB ISP. Рассмотрим принципиальные схемы простейших программаторов для AVR микроконтроллеров с использованием COM и LPT портов компьютера. Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС.
Содержание:
- Интерфейс внутрисистемного программирования ISP
- Программатор USB ISP ASP
- Программатор с использованием COM-порта
- Программатор с использованием LPT-порта
- Программное обеспечение и заметки
- Заключение
Интерфейс внутрисистемного программирования ISP
Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор.
Программатор - это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера (COM, LPT, USB) для последующего считывания и записи прошивки (программирования).
Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера.
Наиболее надежный и удобный вариант - это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.
В готовых устройствах программатор подключается к микроконтроллеру посредством интерфейса ISP (In System Programming) - интерфейс внутрисистемного программирования. ISP интерфейс представляет собою несколько проводников по которым поступает тактовый сигнал и данные для связки программатора с микроконтроллером.
Как правило ISP интерфейс размещают на платах в виде десяти или шести штырьков, к которым посредством подходящего коннектора через шлейф подключается программатор.
Рис. 4. ISP интерфейс на плате.
Назначение пинов в ISP интерфейсе:
- VCC - плюс питания, как правило +5В;
- GND - минус питания, земля (Ground);
- MOSI - вход данных (Master Out Slave In);
- MISO - выход данных (Master In Slave Out);
- SCK - тактовый сигнал (Serial Clock);
- RST - дла подачи сигнала сброса (Reset).
Для внутрисхемного программирования микроконтроллера достаточно всего 4 пина, поскольку питание микроконтроллера может осуществляться от самой схемы где он установлен.
Как подключить программатор к микросхеме-микроконтроллеру AVR если он не впаян в схему? - очень просто, используя те же пины ISP интерфейса, при необходимости запитав при этом микроконтроллер от источника питания.
Программатор USB ISP ASP
Для работы с AVR чипами я приобрел недорогой USB ISP программатор по цене примерно 10$. Такое устройство есть сейчас в продаже во многих отечественных и зарубежных интернет-магазинах, так что с покупкой проблем не должно возникнуть.
Рис. 5. USB ISP - программатор со шлейфом для внутрисхемного программирования AVR микроконтроллеров фирмы ATMEL.
Данный программатор безопасен в использовании, имеет небольшие размеры и поддерживается большинством программ для прошивки микроконтроллеров AVR. USB ISP работает под операционными системами Linux, Mac OS X и Windows. Для Linux никаких драйверов устанавливать не нужно, после подключения программатора к USB порту устройство сразу же определится и будет готово к использованию.
Ниже приведу распиновку коннекторов программатора USB ISP - она нам потом пригодится при подключении к микроконтроллеру.
Рис. 6. Расположение пинов на разъеме USB ISP (распиновка).
Рис. 7. Расположение контактов в гнездах коннектора подключенного к программатору USB ISP.
Что делать если нет возможности купить программатор USB ISP ? - можно программировать микроконтроллеры используя несложные самодельные программаторы что подключаются к COM или LPT порту, но лучше самому изготовить USB ISP при этом один раз запрограммировав микросхему-микроконтроллер для него простым самодельным программатором через COM или LPT порт.
Рис. 8. Принципиальная схема самодельного программатора USB ASP ISP.
Подробную информацию по изготовлению USB ASP, а также печатные платы, драйвера и прошивку для микроконтроллера можно найти на официальном сайте: http://www.fischl.de/usbasp/
К тому же в интернете достаточно много ресурсов по данному свободному программатору, есть много готовых разводок печатных плат, в том числе и в программе SprintLayout, поэтому подробно в данной статье останавливаться на этом не будем.
Программатор с использованием COM-порта
Этот программатор еще называют "программатором Громова", в честь того кто придумал эту схему, создателя программы Algorithm Builder (графическая среда для программирования AVR под Windows используя алгоритмический язык) - Г.Л. Громова.
Данный программатор позволяет программировать AVR чипы используя COM порт компьютера - интерфейс RS232. Для сборки такого программатора потребуется минимум деталей - 3 диода, 7 резисторов, разъем DB-9 или DB-25(в зависимости от того какой ответный разъем установлен у вас в компьютере) и коннектор ISP для подключения к микроконтроллеру (или же просто несколько проводников к чипу). Диоды в схеме можно использовать любые маломощные.
Рис. 9. Принципиальная схема программатора AVR микроконтроллеров через COM порт компьютера.
Для полноты информации ниже приведу распиновку портов RS-232 для вариантов DB-9 и DB-25.
Рис. 10. RS232 - COM Port, DB-9 расположение выводов.
Рис. 11. RS232 COM Port DB-25 - расположение выводов на разъемах.
Программатор с использованием LPT-порта
Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера (Local Printer Port), но тем не менее его часто используют для подключения различных устройств и самоделок. В данном случаем мы можем его использовать для программирования AVR микроконтроллеров, собрав для данной цели очень простую схему что приведена ниже.
Рис. 12. Принципиальная схема программатора для AVR микроконтроллеров с использованием LPT порта компьютера.
Как видим, схема еще проще чем в варианте с программатором Громова, здесь нам нужны всего лишь 4 маломощных резистора и разъем (папа, со штырьками) для подключения к LPT порту компьютера.
Рис. 13. Расположение пинов для разъемов LPT-порта.
Все детали и соединения можно разместить в корпусе LPT-разъема, а для подключения к микроконтроллеру вывести шлейф с коннектором под ISP-интерфейс или же просто необходимые проводники для подключения к микро-чипу.
Программное обеспечение и заметки
Подключив COM или LPT программатор к микроконтроллеру нужно не забыть подать питание на сам микрочип. В качестве источника питания микроконтроллера можно использовать батарейки или блок питания со стабилизатором, это будет наиболее безопасно как для порта компьютера, так и для чипа. О том как использовать источники питания для AVR микроконтроллера мы уже рассматривали.
Под Linux есть очень мощная программа которая умеет работать с USB ASP, COM и LPT программаторами - это программа AVRDUDE, о ней будет идти речь в следующих разделах.
Для прошивки AVR чипов под Windows с использованием данных COM и LPT программаторов нужна программа UniРrof от Николаева, которая представляет собою универсальный программатор для AVR (avr.nikolaew.org).
Программа UniProf (Windows) - avr-programming-uniprof-08-jun-10.zip (400кБ).
ВНИМАНИЕ! Будьте предельно внимательны и осторожны при сборке и использовании программаторов с использованием COM или LPT порта компьютера, простой ошибкой можно запросто подпалить эти порты. Для нормальной работы таких программаторов нужно стараться использовать по возможности максимально короткие проводники от разъема к схеме программатора и микроконтроллеру. Микропроцессор компьютера желательно чтобы имел частоту не более 1-2 ГГц, а в качестве ОС для программирования чипов желательно использовать Win2000 или WinXP.
Также важно знать что переходники USB-RS232 (USB-COM Port) скорее всего не будут работать с программатором Громова, заработают возможно только те у которых стоят более новые микросхемы, так что лучше искать машину с родным COM-портом.
Заключение
Программаторы что рассмотрены в статье - это всего лишь несколько наиболее доступных и простых решений из большого списка программаторов для AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, программаторы на FTDI и другие.
Теперь в любом случае вы сможете собрать доступный вам программатор и прошить хотя бы одну микросхему, на основе которой можно собрать другой более удобный программатор или же какое-то устройство.
В следующей статье мы разберемся как подключить разные модели AVR микроконтроллеров к программатору, узнаем где брать информацию о распиновке микроконтроллеров.
Начало цикла статей: Программирование AVR микроконтроллеров в Linux на языках Asembler и C.
Спасибо, Автор ! Очень помогла ваша статья.