Интернет. Программы. Игры. Операционные системы. Антивирусы

Программатор на 74hc374 под lpt. Программаторы AVR микроконтроллеров

Перед начинающими вопрос “а чем мы будем прошивать свой контроллер?” встает практически сразу. Эта проблема решается двумя путями - покупаем серийный программатор или собираем свой собственный. Естественно нецелесообразноприобретать какой либо из серийных программаторов на начальном этапе знакомства с микроконтроллерами. Самым простым решением будет так называемый программатор «пять проводков». Это вариант вполне подойдет для разового применения, но существует большая опасность, что рано или поздно ваш LPT - порт в компьютере сгорит. В качестве бюджетного и безопасного варианта программатора для параллельного порта мы используем более совершенную схему.

Представляем простой и безопасный программатор для параллельного порта. Схема программатора достаточно распространена в различных вариациях и основана на использовании микросхемы-буфера 74HC 244N . Буфер сохраняет ваш порт принтера в целости и сохранности. Дополнительно в схему включен резистор, задачей которого является защита от статического электричества.

Программатор совместим с Атмеловскими STK 200/300 и поддерживается многими популярными компиляторами. Весь небольшой набор деталей для его сборки достаточно распространен и не вызовет трудностей с приобретением. Печатная плата выполнена в одностороннем варианте с несколькими перемычками.

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

Схема в формате sPlan 6.0 и разводка платы в формате Sprint Layout 4.0 под ЛУТ вы можете скачать ниже.

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

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

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

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

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

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

В готовых устройствах программатор подключается к микроконтроллеру посредством интерфейса ISP (In System Programming) - интерфейс внутрисистемного программирования. 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$. Такое устройство есть сейчас в продаже во многих отечественных и зарубежных интернет-магазинах, так что с покупкой проблем не должно возникнуть.

Рис. 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 программатор к микроконтроллеру нужно не забыть подать питание на сам микрочип. В качестве источника питания микроконтроллера можно использовать батарейки или блок питания со стабилизатором, это будет наиболее безопасно как для порта компьютера, так и для чипа. О том как использовать мы уже рассматривали.

Под 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 микроконтроллеров к программатору, узнаем где брать информацию о распиновке микроконтроллеров.

Довольно часто многие встречают на просторах интернета интересную конструкцию но сдерживает одно - она выполнена с применением контроллера. А это так сложно...

На самом деле всё намного проще. Если есть возможность приобрести контроллер, пол дела уже сделано. Останется "отутюжить" плату, протравить и запаять её деталями.. И вот доходит дело до контроллера. Как же его "оживить"? Как "прошить"? Начинаются мучительные поиски схемы и программы программатора. Схема найдена, но вот незадача - на задней стенке компьютера аж 8 разъемов USB, порт для принтера и ни одного порта СОМ для которого была найдена схема.

Есть и другой вариант развития событий. СОМ порт в компьютере есть. Но программатор почему то отказывается "шить" контроллер - постоянно выскакивает ошибка. А дело в том, что часто на современных материнских платах (и особенно в ноутбуках) СОМ порты делаются очень слабыми по току. Из-за этого процесс программирования заканчивается не начавшись. Во всех вышеприведенных случаях Вам поможет эта несложная схема.

Это программатор для порта LPT. При всей кажущейся сложности схема довольно проста и начинает работать сразу, не требуя никакой настройки. Детали доступные и стоят буквально копейки. Зато возможности... Этим устройством Вам без труда можно будет прошить контроллер не только в панельке, но и внутрисхемно (это касается устройств у которых плата разведена под SMD корпус контроллера, а покупать панельку за 20 долларов под него ну никак не хочется).

Собранная она выглядит вот так:

Этот программатор с мелкими отличиями кочует по интернету уже лет 20. Он известен как Clasic Tait Programer, ProPIC2, meProg. До сих пор выпускается некоторыми фирмами и успешно продается.

Последние версии программного обеспечения можно скачать отсюда:

  • http://www.winpic800.com/
  • http://melabs.com/support/progsoft.htm
  • http://members.aon.at/electronics/pic/picpgm/

Вот настройки для WinPIC800:

А вот адаптер для прошивки 8-14-18-20 выводных контроллеров.


C этой схемой также часто просматривают:

Первым шагом по освоению микроконтроллера для каждого наверняка является сборка программатора. Купить программатор тоже можно, но за совсем неразумные деньги, как по мне. Рассмотрим работоспособный программатор для AVR’ок, которым я пользуюсь вот уже 4-й год. В свое время показал отец, программа мне очень понравилась, и было решено делать под нее программатор. Порывшись на сайте программы, обнаружил простую схему программатора (COM порты я не рассматриваю по причине легкости их горения от статики):


Ее повторение не займет более часа, но гарантирует целостность вашего LPT порта и совместную работу с Pony Prog 2000 . Микросхема – буфер. Резистор R1 – 100k, конденсатор C1 – 0.1мкФ. Диод D1 – любой кремниевый. LPT разъем типа «папа». Теперь разберемся с ISP разъемом, который будет использоваться для программирования. Выводы MISO , MOSI , SCK , RESET – управляющие, вывод LED – к нему подключается светодиод, который сигнализирует чтение/запись прошивки в микроконтроллер, VDD и GND соответственно +5В и земля.

Для подсоединения микроконтроллера удобно использовать шлейф на 10 проводов и соответствующий IDC , но это дело вкуса и каждый сам решает, как ему нравиться, главное не делать его слишком длинным, во избежание наводок. У меня получилось вот так:



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


Перейдем к программной части. В начале говорилось, что программировать мы будет с помощью Pony Prog 2000 .

Первое включение и калибровка:
При первом использовании программатора не забываем корректно его настроить: Setup->Interface setup, в появившемся окне выбирай LPT порт, к которому подключен программатор, выбираем AVR ISP API в выпадающем списке, а флажки Polarity of control lines не трогаем, оставляем пустыми. Далее калибруем все это дело Setup->Calibration. Все, теперь мы можем с помощью нашей макетной платы программировать AVR"ки.

Выбор среды для написания программ:
Теперь осталось выбрать, в какой среде писать программы и на каком языке. Рекомендую писать на С, если не критичен размер и скорость выполнения программы.

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

Почти успех =) => =(

Спаял вроде все как на схеме)
Тоесть не вроде а так и есть)
Только вместо D1 поставил ИК диод незнаю скажется ли как то другово под рукой не было)

Первая проблема когда пытался прошить с настройкой AVR ISP API (LPT2 другово немог выбрать)
выбивало 16 ошибку, типа нет порта

После того как поменял настройки на AVR ISP I/O LPT1 выбило ошибку -24 типа я незнаком с вашим девайсом)
И пытается прошивать. . . пока без результатно(((

подскажите в чем проблема?
Слышал вроже нужно менять какие то настройке в биос?
так вот какие?7?

поздравьте с приобретением!

купил нечто миниатюрное, на usb, без корпуса и без всяких bells&whistles, в инструкции сказано что это аналог stk500, может определяться как avr910, но у меня определился как avr doper.
пока никуда не подключал - при попытке чтения фьюзов программа пишет programmer is not responding.
подозреваю, что так и должно быть.
теперь собственно вопрос. на самой плате есть разъемы на 6 и на 10 штырьков, но кабель - только на 10. для прошивки микроконтроллера мне надо только ножки к штырькам mosi, vcc, rst, miso и ground подключить? остальные могут пины микроконтроллера могут висеть свободными?

Для программирования МК

Для программирования МК требуется подключить к программатору MOSI, MISO, SCK, RESET и подать питание. Остальные можно не трогать. Смотри доку на программатор, какие из тех пинов нужно вывести.

тыкс

он отказывался у меня работать как avr910, как stk500, как stk500v1, зато прочитал фьюзы как stk2, и прошил флешку за пару секунд. попробую дособирать свой дивайс и запустить его))
микруха прошита!

первый раз, первый программатор, боюсь что-либо спалить)

Доброго времени суток всем!
Подскажите пожалуйста, а Выводы MISO, MOSI, SCK, RESET – управляющие, нужно напрямую подсоединять к МК или как здесь

Я имею ввиду через резисторы выводы MISO, MOSI, SCK, RESET подтягивать к питанию и земле надо?
Дело в том, что у меня мега16, там вывод RESET инверсный, сброс по нулю будет по идее, мне R3 на землю бросить?


Спасибо если кто откликнется!
p.s. Диплом с МК попался, а я не шарю:) Хочу разобраться, но тонкостей очень много...

Перед начинающими вопрос “а чем мы будем прошивать свой контроллер?” встает практически сразу. Эта проблема решается двумя путями - покупаем серийный программатор или собираем свой собственный. Естественно нецелесообразноприобретать какой либо из серийных программаторов на начальном этапе знакомства с микроконтроллерами. Самым простым решением будет так называемый программатор «пять проводков». Это вариант вполне подойдет для разового применения, но существует большая опасность, что рано или поздно ваш LPT - порт в компьютере сгорит. В качестве бюджетного и безопасного варианта программатора для параллельного порта мы используем более совершенную схему.

Представляем простой и безопасный программатор для параллельного порта. Схема программатора достаточно распространена в различных вариациях и основана на использовании микросхемы-буфера 74HC 244N . Буфер сохраняет ваш порт принтера в целости и сохранности. Дополнительно в схему включен резистор, задачей которого является защита от статического электричества.

Программатор совместим с Атмеловскими STK 200/300 и поддерживается многими популярными компиляторами. Весь небольшой набор деталей для его сборки достаточно распространен и не вызовет трудностей с приобретением. Печатная плата выполнена в одностороннем варианте с несколькими перемычками.

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

Схема в формате sPlan 6.0 и разводка платы в формате Sprint Layout 4.0 под ЛУТ вы можете скачать ниже.