Академический Документы
Профессиональный Документы
Культура Документы
html
Микроконтроллеры семейства PIC мы уже научились прошивать вот из этой статьи. Но, существует не менее
популярное семейство AVR микроконтроллеров. В этой статье для начинающих будет рассмотрено как же
Еще когда я только начинал осваивать контроллеры семейства AVR сразу встал вопрос, а чем же я буду их
Так вот, суть технологии «пять проводков» заключается в том, что выводы программирования
контроллера подключаются напрямую к LPT порту компьютера. Пяты проводок — это общий провод.
Обратите внимание на перемычки между контактами 2-12, 3-11. По наличию этих перемычек программа
контроллер должны быть минимальной длины, иначе, посыпятся ошибки при прошивке контроллера.
Это, конечно самый простой способ прошить AVR контроллер. Но у него есть и куча недостатков. Самый
большой недостаток — это очень большая возможность «спалить» LPT порт, да и всю материнскую плату, так
как никакой защиты для порта не предусмотрено. Но, не все еще потеряно.
Вариант 2. Существуют программаторы, в которых предусмотрена защита. Вот такой нам и нужно собрать, и
Этот программатор получил свое название от комплектующихся им отладочных плат фирмы Atmel для
быстрого начала работы с микроконтроллерами At90s8515 и Atmega103. Но, им иожно прошивать и другие
типы контроллеров.
Схем в сети этого программатора полно в различных вариация. Вот собственно его схема:
Тут все просто. На входе защитные резисторы от перегрузки по току, далее идет микросхема 74HC244. Это не
инвертирующий буфер. Микросхема содержит два независимых четырехразрядных буфера. Каждый буфер
имеет свой сигнал разрешения выхода (низкий активный уровень). На входах нет триггеров Шмитта.
Микросхема выполнена по технологии “быстрый” КМОП, что обеспечивает высокое быстродействие. Мощный
токовый выход делает возможным сохранение высокого быстродействия даже при емкостной нагрузке.
Быстродействие 74HC244 сравнимо с быстродействием микросхем, основанных на диодах Шоттки, при этом
74HC244 сохраняет достоинства микросхем КМОП, т.е. высокая помехозащищенность и низкая потребляемая
Так что тут все ясно и просто. На входе питания для программатора и контроллера Vcc
сидит светодиод и сигнализирует о подачи напряжения питания. Светодиод на линии LED / XTAL 1(некоторые
программы на эту линию выводят тактовую частоту для работы контроллера) помаргивает при
Была сделана печатная плата. Детали в основном SMD. Плату планировалось «запихнуть в стандартную
контроллера.
Запускаем пони прог. С начала раздастся звук ржания пони, чтоб это в дальнейшем не напрягало, ставим
галочку в поле Disable sound, нажимаем ОК. Далее выпрыгнет окошко такого плана:
тут программа нас просит произвести ее калибровку, это нужно для того, чтобы программа проверило
„железо“ компа и подстроилось под него, компы ведь бывают шустрые и не очень!)
Тут программа хочет от нас, чтоб настроили интерфейс программирования, проще говоря, указали с каким
Далее лезем в Command -> Program Options. Настраиваем все как на картинке ниже.
Теперь последовательность действий для „прошивки“ контроллера. Программатор должен уже быть
подключен к LPT порту, контроллер к программатору и подано питание на программатор и контроллер.
3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл.
4. Жмём кнопку „Launch program cycle“. Когда программирование завершится, прога скажет „Program
successful“
5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку
В появившемся окне жмём „Read“, потом выставляем галочки фьюзов так, как нам нужно для конкретной
схемы и жмём „Write“. Все, все „прошито“ Подробнее об этих самых фьюзах можно почитать тут и тут — тут
А если у нас есть в наличии современный компьютер или ноутбук, где нет LPT порта вообще?
Как тогда быть? А тогда надо делать USB программатор. В принципе, тут тоже уже все давно придумано. Я
собрал себе USB программатор AVR910. Вот официальный сайт его разработчика. Повторюсь, и приведу тут
этого программатора — для прошивки контроллера программатора нужен программатор. Но, думаю где-
нибудь найти компьютер с LPT портом, чтоб прошить контроллер хоть „5 проводками“, думаю еще можно!)
Была разведена печатная плата, все смонтировано. На плате было выведено +5 вольт с USB порта для
Светодиоды HL1 и HL2 загораются при чтении/записи контроллера, светодиод HL3 сигнализирует о подачи
питания с USB порта. Перемычкой J1 LOW возможно понижать тактовую частоту порта SPI МК программатора
до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом — пониженная. Cкорость
работы порта SPI МК программатора при разомкнутом джампере J1 равна 187,5 кГц. Это позволяет
программировать контроллеры с тактовой частотой примерно от 570 кГц для tiny/mega, 750 кГц для 90S и 7,5
На вывод LED разъема выведен меандр с частотой 1 МГц для „оживления“ МК, у которых были ошибочно
Программатор позволяет программировать все контроллеры AVR, поддерживающие ISP (In System
Джампер J2-J3 служит как для начального программирования микроконтроллера (замкнут J2 — MOD), так и
то следует учесть, что нумерация выводов у МК в корпусах TQFP отличается от нумерации выводов МК в
корпусе PDIP-28.
Подключил собранный программатор к программатору STK 200/300, поставил джампер J2, воткнул кабель от
Вот файл прошивки.
После система определит новое устройство — AVR910 USB Programmer, при предложении автоматически
Система начнет устанавливать драйвер. Если установка драйвера прервется и система попросит указать путь
к файлу lowcdc.sys
то указываем где он у нас лежит, вот ссылка для скачивания данного файла. Система должна его увидеть и
Программатор установлен в системе. Теперь настроим его для работы в программе прошивальщике. К
сожалению этот программатор не работает в программе Pony Prog. Работает он в таких программах:AVRProg
v.1.4 (входит в пакет AVRStudio), ChipBlasterAVR v.1.07 Evaluation, AVROSP (ATMEL AVR Open Source
Programmer), CodeVisionAVR.
Качаем ее тут. Теперь самое главное. Щелкаем левой кнопкой на значке „Мой компьютер“,
Теперь запускаем CodeVision AVR. В основном меню нажимаем кнопку „Setting“, в выпадающем меню
нажимаем „Programmer“:
В самой первой строчке из списка выбираем наш AVR910, во второй строчке выставляем номер
Com порта, который смотрели в диспетчере оборудования. Остальное оставляем без изменений.
Все, программатор настроен. Теперь немного о том как прошить контроллер в CodeVision AVR.
В списке Chip выбираем наш контроллер, теперь нажимаем в меню сверху Read.
В этом меню мы можем запустить чтение содержимого контроллера. Пока, что нас интересуют два пункта, это
FLASH памяти контроллера, на программаторе будет мигать зеленый светодиод. Итак, FLASH прочитана, а где
Вот, собственно, все содержимое FLASH памяти контроллера, тут можно и отредактировать,
если нужно определенные блоки. Но, пока тут все чисто, во всех ячейка — FFFF.
Если нужно прочитать Fuse Bit(s), то делаем следующее — Read — Fuse Bit(s). Пройдет чтение и вот в таком
Сперва нужно указать сам файл прошивки, которым будем загружать в контроллер. Делается это так.
новый, то стирать не надо. Теперь нажимаем на FLASH. Программа спросит, действительно ли хотите
Когда он закончился, то теперь нужно запрограммировать фьюз биты. Сперва необходимые фьюз биты
Запомните, если в квадратике, напротив названия фьюз бита стоит галочка, то фьюз бит не
Когда выставили необходимые фьюз биты, то в пункте меню Program нажимаем Fuse Bit(s). Вот
теперь все. Можно еще раз прочитать содержимое FLASH и удостовериться, что все за программировалось.
Теперь немножко по доработке программатора AVR910. Когда я начал им пользоваться и активно шить
Этот программатор достаточно медленно читает и прошивает контроллеры. Вроде, а куда спешить? Но бывает
приходится по десять раз стирать и заново прошивать контроллер во время настройки устройства, вот тогда и
Автор там переделал прошивку самого программатора и теперь с этой прошивкой он работает намного
шустрее. Перешивал при помощи того же STK200/300. Вот файл прошивки и драйвера для Windows. После
перепрошивки так же устанавливаем драйвер, но только уже из архива, ссылка на который выше. В
Новая прошивка эмулирует теперь программатор STK 500. Вот такое превращение).
Далее работаем так же как и описывалось выше, но с заметным приростом скорости работы программатора.
Вот и все, что хотел рассказать. Конечно, все в одну статью не всунешь, так что если возникнут вопросы,
микроконтроллеры AVR!
ATMEL AVR
, LPT
, пять проводков
, STK200/300
, AVR910
, Pony Prog
, CodeVision AVR