Микроконтроллеры AVR для начинающих — 2

Собираем программатор

Итак, после первой части статьи микроконтроллер у нас есть, теперь нам нужен программатор. Программатор советую собирать так называемый STK-200, состоит он всего лишь из одной микросхемы, данный программатор будет лучше чем PonyProg. У пони прога есть единственный плюс (а может быть и минус), он не дает запрограммировать некоторые фьюзы, которые иногда ещё называют опасными (например RSTDSBL, DWEN, SPIEN). Если случайно запрограммировать такой опасный фьюз, то вы отключите возможность пользоваться ISP программатором, МК заблокируется, для восстановления МК нужен будет параллельный программатор (высоковольтный).

Пользоваться программаторами типа «5 проводков» не рекомендую, есть облегченный вариант программатора STK-200, который так-же построен на нескольких проводках, собирать его я так же не рекомендую, по той причине, что таким программатором очень легко спалить LPT порт, для сравнения — COM порт спалить в разы труднее. Да и потом, программируя «5ти проводками» можно случайно замкнуть эти провода между собой, спалить МК или опять же порт. Использование буферного повторителя в микросхеме улучшает крутизну фронтов сигнала, а так же бережет LPT порт, от случайных КЗ и перенапряжений.

Ниже представлена схема программатора STK200

Как видите, схема очень простая, построена всего лишь на 1 микросхеме, отечественный аналог этой микросхемы КР1533АП5. В схеме присутствуют 3 светодиода: питание, чтение, запись. Длина соединяющих проводов должна быть как можно короче.

На фото, на плате программатора присутствует кварц и конденсаторы. Кварц нужно ставить на 4 мГц, конденсаторы на 5-15 пФ, два штырька рядом со светодиодами на плате, используются для подачи питания, 5 вольт. Если вы будете собирать переходник, то питание подается с платы переходника, т.к. там стоит «кренка» на 5 вольт, она защитит микроконтроллер и схему от переполюсовки или превышения напряжения.

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

К программатору дополнительно нужно будет изготовить плату, на которой будут размещаться панельки под разные МК, в принципе, можно просто запаивать проводки к нужными выводам МК, как вам удобнее.

Для того, чтобы проверить работает ли наш программатор, подключаем его в порт LPT, кликаем правой кнопкой мыши на значке «Мой компьютер», в появившемся списке выбираем «диспетчере устройств», откроется окошко, кликаем обновить конфигурацию оборудования и на программаторе моргнут светодиоды чтения/записи. Кстати, питание берется от внешнего источника, а не с LPT порта, будьте внимательны.

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

Выбор программы и прошивка микроконтроллера

Популярными программами для записи программы в МК являются PonyProg и CodeVision AVR. Я пользуюсь Code Vision AVR (далее CVAVR), но рассмотрим мы обе программы. В принципе, можете пользоваться любыми другими программами, лишь запомните одно очень важное замечание, в разных программах фьюзы могут выставляться по разному, т.е. зеркально.

В первую очередь подключаем программатор в нужный нам порт, лишь сначала ставим микроконтроллер в панельку. Питание подавайте после того, как программатор будет подключен к порту. Для того, чтобы запрограммировать микроконтроллер нам нужны файлы прошивки, файл с расширением .hex, в некоторых проектах используется ещё файл EEPROM .eep. (электрически изменяемая память данных, в нем хранятся различного рода константы).

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

Прошивка микроконтроллера с помощью PonyProg

1) Скачиваем и запускаем программу PonyProg, появится окошко (возможно проиграется звук), нажимаем ОК.

2) Далее в списке микроконтроллеров нужно выбрать наш МК, кликаем меню «Устройство», далее выбираем AVRmicro -> ATmega8.

3) Далее, нам нужно выбрать файлы прошивки, для этого кликаем Файл -> Открыть файл программы (FLASH)… Откроется окошко, где нам нужно выбрать наш файл прошивки с расширением .hex.

4) В окошке не забываем в списке выбрать нужное нам расширение файла, иначе файл прошивки не обнаружится.

После того как откроем файл, окошко будет заполнено непонятными цифрами и буквами. Это шестнадцатеричное представление прошивки.

5) Теперь точно также нужно выбрать файл прошивки EEPROM с расширением .eep, если конечно он нужен и прилагается.

Если вы ещё не подключили программатор и не подали на него питание, сделайте это. Не забудьте вставить МК в панельку, не перепутайте положение в панельке, обратите внимание на насечку или кружок на корпусе МК, оттуда и начинается отсчет ножек.

6) Кликаем Установки -> Настройка оборудования. Все настройки выставляем как на рисунке ниже, далее нажимаем кнопку «Проверка» – должно выйти окошко «Тест ОК»

Если этого не произошло и вышла окошко с надписью «Тест ОШИБКА»

Кликаем правой кнопкой мыши на значке «Мой компьютер» и выбираем «Диспетчер устройств» или можно зайти в Панель управления -> Система -> Оборудование -> Диспетчер устройств.

Появится такое окошко, в списке находим Порты (COM и LPT ), кликаем правой кнопкой мыши на нем и нажимаем «Обновить конфигурацию оборудования»

Затем закрываем окно, и возвращаемся к PonyProg, повторяем пункт 6, нажимаем «Проверка», должно выйти окошко с надписью «Тест ОК».

7) Нажимаем «ОК», далее переходим в меню Установки -> Калибровка, нажимаем Yes.

Выйдет сообщение об успешно проведенной калибровке, нажимаем ОК

8) Сейчас нам нужно будет выставить фьюзы, если в вашей конструкции фьюзы не выставляются, переходите к следующему пункту. Кликаем Команды -> Security and Configuration Bits… откроется окошко для установки фьюзов

Ставим строго те галочки, которые нам нужно, для моего проекта нужно выставлять следующие фьюзы: BOOTSZ1, BOOTSZ0, BODEN, CKSEL3, CKSEL2. Затем нажимаем ОК. Фьюзы при программировании нужно выставлять лишь те, что указано, если запрограммируете ненужные вам фьюзы, МК может залочиться, разблокировать его потом будет очень сложно, нужен будет более сложный программатор чем наш, будьте внимательны! Записывать программу в МК можно без выставления фьюзов – заработает далее устройство или нет, это другой вопрос, если даже и заработает, может очень сильно тормозить, или будет работать частично, это ничем не грозит, МК лочится лишь после неправильно выставленных фьюзов. В некоторых проектах могут использоваться фьюзы, которых может не оказаться в PonyProg, например SPIEN, этот фьюз отключает возможность внутрисхемного программирования, поэтому во многих программах не показывается специально, чтобы вы случайно его не установили.

9) Теперь все готово, и можно прошить микроконтроллер, нажимаем Команды -> Записать все. Если вы ещё не передумали, то в окошке которое вышло, нажимаем «Yes», и начнется процесс записи и проверки.

После чего выйдет сообщение об успешном завершении операции

Все, теперь можно вынимать МК из программатора и проверить наше устройство, если вы все сделали все как я расписал, все будет работать, Если по какой то причине устройство не заработало, возможно допущены ошибки при сборке программатора, перепроверьте все и попробуйте ещё раз перепрошить МК.

10) Если спустя какое то время вам захочется сменить прошивку, или использовать МК для другого проекта, то снова вставляем его в программатор, подключаем тот к ПК, открываем программу, кликаем Команды -> Стереть, программа сотрет все данные с МК.

Стирать данные совсем не обязательно, при записи новой программы, старая программа сотрется автоматически, и лишь потом запишется новая.

Что касается программы PonyProg, в разных версиях свой список устройств, если в вашей версии программы вы не можете найти в списке МК скажем ATmega32, скачайте другую версию.

В следующей статье рассмотрим прошивку МК с помощью программы CodeVision AVR а так-же рассмотрим часто возникающие ошибки и проблемы связанные с МК, постараемся их решить

Печатные платы для программатора прилагаются

Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

Программатор STK200DD1
ИС буфера, драйвераCD74HC2441
C1
Конденсатор0.1 мкФ1
R1, R5-R9
Резистор33 Ом6
R2-R4
Резистор510 Ом3
VD1
Светодиодкрасный1
VD2
Светодиоджелтый1
VD3
Светодиодзеленый1
XS1
РазъемDBR-25F1
XS2
РазъемIDC-101
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.