Программирования avr через lpt порт

Программаторы для AVR микроконтроллеров (USB, COM, LPT)

Узнаем что такое ISP-интерфейс, разберемся с недорогим и удобным программатором USB ISP. Рассмотрим принципиальные схемы простейших программаторов для AVR микроконтроллеров с использованием COM и LPT портов компьютера. Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС.

Интерфейс внутрисистемного программирования ISP

Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор.

Программатор — это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера (COM, LPT, USB) для последующего считывания и записи прошивки (программирования).

Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера.

Наиболее надежный и удобный вариант — это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.

В готовых устройствах программатор подключается к микроконтроллеру посредством интерфейса ISP (In System Programming) — интерфейс внутрисистемного программирования. ISP интерфейс представляет собою несколько проводников по которым поступает тактовый сигнал и данные для связки программатора с микроконтроллером.

Как правило ISP интерфейс размещают на платах в виде десяти или шести штырьков, к которым посредством подходящего коннектора через шлейф подключается программатор.

ISP интерфейс

Рис. 4. ISP интерфейс на плате.

Назначение пинов в ISP интерфейсе:

  1. VCC — плюс питания, как правило +5В;
  2. GND — минус питания, земля (Ground);
  3. MOSI — вход данных (Master Out Slave In);
  4. MISO — выход данных (Master In Slave Out);
  5. SCK — тактовый сигнал (Serial Clock);
  6. RST — дла подачи сигнала сброса (Reset).

Для внутрисхемного программирования микроконтроллера достаточно всего 4 пина, поскольку питание микроконтроллера может осуществляться от самой схемы где он установлен.

Как подключить программатор к микросхеме-микроконтроллеру AVR если он не впаян в схему? — очень просто, используя те же пины ISP интерфейса, при необходимости запитав при этом микроконтроллер от источника питания.

Программатор USB ISP ASP

Для работы с AVR чипами я приобрел недорогой USB ISP программатор по цене примерно 10$. Такое устройство есть сейчас в продаже во многих отечественных и зарубежных интернет-магазинах, так что с покупкой проблем не должно возникнуть.

USB ISP программатор

Рис. 5. USB ISP — программатор со шлейфом для внутрисхемного программирования AVR микроконтроллеров фирмы ATMEL.

Данный программатор безопасен в использовании, имеет небольшие размеры и поддерживается большинством программ для прошивки микроконтроллеров AVR. USB ISP работает под операционными системами Linux, Mac OS X и Windows. Для Linux никаких драйверов устанавливать не нужно, после подключения программатора к USB порту устройство сразу же определится и будет готово к использованию.

Ниже приведу распиновку коннекторов программатора USB ISP — она нам потом пригодится при подключении к микроконтроллеру.

Распиновка USB ISP

Рис. 6. Расположение пинов на разъеме USB ISP (распиновка).

Распиновка коннектора USB ISP

Рис. 7. Расположение контактов в гнездах коннектора подключенного к программатору USB ISP.

Что делать если нет возможности купить программатор USB ISP ? — можно программировать микроконтроллеры используя несложные самодельные программаторы что подключаются к COM или LPT порту, но лучше самому изготовить USB ISP при этом один раз запрограммировав микросхему-микроконтроллер для него простым самодельным программатором через COM или LPT порт.

USB ASP ISP схема

Рис. 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 для подключения к микроконтроллеру (или же просто несколько проводников к чипу). Диоды в схеме можно использовать любые маломощные.

Программатор AVR через COM порт схема

Рис. 9. Принципиальная схема программатора AVR микроконтроллеров через COM порт компьютера.

Для полноты информации ниже приведу распиновку портов RS-232 для вариантов DB-9 и DB-25.

RS232 COM Port пины

Рис. 10. RS232 — COM Port, DB-9 расположение выводов.

RS232 COM DB-25 распиновка

Рис. 11. RS232 COM Port DB-25 — расположение выводов на разъемах.

Программатор с использованием LPT-порта

Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера (Local Printer Port), но тем не менее его часто используют для подключения различных устройств и самоделок. В данном случаем мы можем его использовать для программирования AVR микроконтроллеров, собрав для данной цели очень простую схему что приведена ниже.

Программатор AVR LPT порт схема

Рис. 12. Принципиальная схема программатора для AVR микроконтроллеров с использованием LPT порта компьютера.

Как видим, схема еще проще чем в варианте с программатором Громова, здесь нам нужны всего лишь 4 маломощных резистора и разъем (папа, со штырьками) для подключения к LPT порту компьютера.

LPT распиновка

Рис. 13. Расположение пинов для разъемов LPT-порта.

Все детали и соединения можно разместить в корпусе LPT-разъема, а для подключения к микроконтроллеру вывести шлейф с коннектором под ISP-интерфейс или же просто необходимые проводники для подключения к микро-чипу.

Программное обеспечение и заметки

Подключив COM или LPT программатор к микроконтроллеру нужно не забыть подать питание на сам микрочип. В качестве источника питания микроконтроллера можно использовать батарейки или блок питания со стабилизатором, это будет наиболее безопасно как для порта компьютера, так и для чипа. О том как использовать источники питания для AVR микроконтроллера мы уже рассматривали.

Под Linux есть очень мощная программа которая умеет работать с USB ASP, COM и LPT программаторами — это программа AVRDUDE, о ней будет идти речь в следующих разделах.

Для прошивки AVR чипов под Windows с использованием данных COM и LPT программаторов нужна программа UniРrof от Николаева, которая представляет собою универсальный программатор для AVR (avr.nikolaew.org).

ВНИМАНИЕ! Будьте предельно внимательны и осторожны при сборке и использовании программаторов с использованием COM или LPT порта компьютера, простой ошибкой можно запросто подпалить эти порты. Для нормальной работы таких программаторов нужно стараться использовать по возможности максимально короткие проводники от разъема к схеме программатора и микроконтроллеру. Микропроцессор компьютера желательно чтобы имел частоту не более 1-2 ГГц, а в качестве ОС для программирования чипов желательно использовать Win2000 или WinXP.

Также важно знать что переходники USB-RS232 (USB-COM Port) скорее всего не будут работать с программатором Громова, заработают возможно только те у которых стоят более новые микросхемы, так что лучше искать машину с родным COM-портом.

Заключение

Программаторы что рассмотрены в статье — это всего лишь несколько наиболее доступных и простых решений из большого списка программаторов для AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, программаторы на FTDI и другие.

Теперь в любом случае вы сможете собрать доступный вам программатор и прошить хотя бы одну микросхему, на основе которой можно собрать другой более удобный программатор или же какое-то устройство.

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

Источник

027-UniProf-программируем AVR через LPT порт.

Кроме того, нам нужен LPT программатор, а также, отладочная плата с разъемами для подключения программатора (для примера возьмем отладочную плату с ATTiny2313). Вот пожалуй и все что нам нужно.

Главное окно uniprof

Окно UniРrof выглядит так:

Теперь пошагово опишем сам процесс программирования при помощи LPT программатора:

1 Для начала нам необходимо «прописать» наш LPT программатор. Для этого нужно выбрать LPT порт в поле «Программатор подключен к», нажать кнопку «LPT pins» и мы увидим такую картинку. Это окно произвольного назначения линий порта под сигналы программатора. Установки по умолчанию предназначены для другого программатора. Чтобы заработал наш – ставим точки как на рисунке,

нажимаем «ОК» (в следующий раз устанавливать не придется – программа запомнит установки). Все — программатор «прописан».

2 Подключаем программатор к LPT порту.

3 Подключаем программатор к плате микроконтроллера, подаем питание на микроконтроллер.

4 Запускаем UniРrof (если уже не запущен), выбираем в поле «Программатор подключен к» LPT порт. Синим должно отобразиться название микроконтроллера. Для проверки надежности связи тыкаем несколько раз в красную системную частоту. Если на каком либо этапе выпадает такое окно, то связь ненадежна – ставим галочку «тормоз» — и проверяем заново.

5 Нажимаем кнопку загрузить «HEX», выбираем нужный файл-прошивку. В окошке «PROGRAM» появятся цифры – наша программа.

6 Нажимаем кнопку «Erase» — стираем микроконтроллер. Если происходят ошибки — ставим галочку «Тормоз».

7 Нажимаем кнопку «Prog» — записываем программу в микроконтроллер. Если происходят ошибки — ставим галочку «Тормоз», повторно стираем и снова программируем. Программа записана, осталось записать фьюзы.

8 Обязательно ставим галочку «Тормоз»! Нажимаем кнопку «FUSE», видим окошко, в котором 4 отделения (4 конфигурационных байта контроллера). В каждом отделении нажимаем кнопку «Read» считываем текущие значения (это уменьшит вероятность ошибки при вводе новых значений). Вводим новые значения фьюзов. Особое внимание обращаем на обведенные красным фьюзы. Они должны остаться в таком же состоянии, иначе дальнейшее программирование станет невозможным. Нажимаем «Write» в каждом из окошек (первое окошко – защитные биты – можно не трогать). Готово, фьюзы прошиты!

9 Снимаем питание с микроконтроллера, отключаем программатор от платы – микроконтроллер прошит, устройство готово!

Что делать если:

— не найден микроконтроллер – проверьте правильность подключения программатора к контроллеру, проверьте питание контроллера (должно быть +5v), попробуете поменять порт (если есть несколько);

— не распознается контроллер – поставьте галочку «тормоз», покликайте несколько раз красную системную частоту, поставьте керамический конденсатор на ножки питания контроллера, если длинна шлейфа большая, возможно большие помехи мешают – уменьшите длину шлейфа;

— прошивка записывается с ошибками — поставьте галочку «тормоз», покликайте несколько раз красную системную частоту, поставьте керамический конденсатор на ножки питания контроллера, если длинна шлейфа большая, возможно большие помехи мешают – уменьшите длину шлейфа;

— после записи фьюзов контроллер перестал читаться / писаться что-то Вы напутали с установкой фьюзов – теперь Вам поможет только параллельный программатор . Как альтернативный вариант можно собрать «Atmega fusebit doctor»

P.S. Нужно прошить кроме Flash еще и EEPROM?
Все просто! Сначала ставим галочку EEPROM — появится окошко EEPROM (Галочку «тормоз» нужно поставить до этого!). Далее открываем HEX-файл, автоматически программа найдет и загрузит EEP-файл (заполнятся данными оба окошка PROGRAM и EEPROM). Если юнипроф сам не определил EEP-файл откроется диалог выбора файла. Далее действуем как описано выше. При нажатии кнопки «Prog» программируется и Flash и EEPROM. Вот и все!

Источник

Читайте также:  Научные статьи программирование на английском
Оцените статью