Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Программатор AVR ISP

AVR ISP
Рис.1 AVR ISP

Программаторы, работающие под управлением PonyProg2000 и других любительских программ, очень просты. Однако большинство из них не может обеспечить такой функциональности, какой обладают фирменные средства разработки. Одним из самых популярных программаторов Atmel является AVR ISP (внешний вид на рис.1). С помощью AVR ISP можно запрограммировать любой микроконтроллер с ядром AVR через последовательный интерфейс SPI. Программатор подключается через COM-порт и работает под управлением AVR Studio.

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

Аналог фирменного программатора AVR ISP
Рис.2 Аналог фирменного программатора AVR ISP

На рис.2 приведена принципиальная схема авторского варианта AVR ISP. В отличие от своего прообраза он содержит только один микроконтроллер, обладая теми же функциями. В место ATmega8535 (AT90S8535) в базовом варианте применён микроконтроллер ATmega16. Он имеет вдвое большим объёмом памяти программ и данных, и сопоставим с ATmega8535 по назначению выводов и внутреннему устройству. Запись и обновление содержимого DD2 осуществляются через встроенную программу-загрузчик (boot-loader), которая использует для этих целей способность самопрограммирования микроконтроллеров AVR. Дополнительными программными средствами осуществляется так же согласование работы программы предназначенной для ATmega8535 с адресным пространством ATmega16 и использование прерывания TOV0 для отслеживания положения кнопки SB1 и управления линиями PD7, PC0…PC6. 

Программатор подключается к любому свободному COM порту в системе через разъём X1. Напряжение 9…15 В подаётся на разъём X2 от отдельного источника питания способного отдавать в нагрузку ток не меньший чем 100 мА. Разъем X3 служит для внутрисхемного программирования или при программировании на отдельной панели.
На выводе 7 X3 присутствуют прямоугольные импульсы частотой 1.8432 МГц. Их можно использовать, если программируемый микроконтроллер настроен на работу с кварцевым резонатором либо с внешним тактовый генератором. В этом случае импульсы подаются на вход XTAL1. Устройства, не имеющие собственного источника энергии, можно запитать непосредственно от программатора через вывод 2 X3 (внутрисхемное программирование устройств с напряжением питания меньшим, чем 5 может привести к поломке!). Активизация и запрещение тактовых импульсов на выводе 2 X3, а также присутствие напряжения 5 В на выводе 7 X3, регулируются кнопкой SB1.

В ходе работы светодиод HL3 свидетельствует о нормальном функционировании программатора. HL1 будет светиться во время программирования микроконтроллера, а HL2 будет сигнализировать о наличии напряжения и тактовых импульсов (выводы 2 и 7 X3 соответственно).

Перед началом работы в DD2 нужно занести программу, находящуюся в Файле BootISP.hex (исходный текст в файле BootISP.asm) с помощью любого удобного программатора. FUSE-биты при этом должны выглядеть следующим образом:
CKSEL0 = 0   SUT0   = 1   BOOTRST = 0   EESAVE = 1
CKSEL1 = 0   SUT1   = 0   BOOTSZ0 = 0   CKOPT = 1
CKSEL2 = 1   BODEN   = 0   BOOTSZ1 = 0   JTAGEN = 1
CKSEL3 = 1   BODLEVEL = 0   SPIEN  = 0   OCDEN = 1

Процесс программирования
Рис.3 Процесс программирования

После того как программатор собран и подключён к компьютеру - приступают к загрузке текущей версии управляющей программы. Нажав на кнопку SB1(!), подают питание на разъём X2. Должен загореться светодиод HL1, что свидетельствует о переводе в режим обновления программного обеспечения. После этого запускают AVR Studio и через меню Tools -> AVR Prog открывают окно обновления “прошивки” AVR ISP. Далее нужно указать путь к загрузочному файлу, который по умолчанию имеет размещение C:\Program files\Atmel\AVR Tools\STK500\STK500.ebn, и начать программирование, нажав на экранную кнопку Flash -> Program(окно на рис.3). В конце завершения операции необходимо кратковременно снять напряжение, после чего программатор будет готов к применению. Связь осуществляется через меню Tools -> Program AVR -> Auto Connect. Вид окна программы поддержки AVR ISP приведен на рис.4.

Вид окна программы поддержки AVR ISP
Рис.4 Вид окна программы поддержки AVR ISP

Интерфейс программы очень простой и не требует подробных пояснений. Здесь только необходимо обратить внимание на несколько важных деталей. В списке устройств на вкладке Program в окне Device, кроме микроконтроллеров с ядром AVR (ATmega, ATtiny, AT90x и др.), доступны также некоторые модели семейства MCS-51 (названия начинаются с AT89S). Программирование AT89S через SPI принципиально ни чем не отличается от подобной операции у AVR-микроконтроллеров, за исключением одного существенного различая. Сигнала RESET у MCS-51 (в отличие от AVR) имеет активный высокий уровень. Поэтому при программировании моделей AT89S резистор R2, предотвращающий запуск микроконтроллеров AVR, необходимо подключить к шине питания программатора.

Иногда случается так, что с первого раза не удается установить связь программатора с устройством. Если не считать ошибок монтажа и неправильной установки FUSE-битов, запрещающих работу SPI (SPIEN, DWEN и RSTDISBL), вероятнее всего проблема заключается в слишком высокой частоте тактовых импульсов на линии SCK. В этом случае необходимо уменьшить скорость последовательного интерфейса. Это можно сделать вручную через вкладку Board (окно ISP Freq). Модуль SPI ведомого микроконтроллера не может работать на частотах превышающих F­clk­/4.

Программатор был проверен в работе с AVR Studio версий 4.12…4.16 со многими типами микроконтроллеров. Никаких ошибок при этом не было выявлено.

Перейти к следующей части:

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD1 ИС RS-232 интерфейса
MAX232
1 Поиск в магазине ОтронВ блокнот
DD2 МК AVR 8-бит
ATmega16
1 Поиск в магазине ОтронВ блокнот
DA1 Линейный регулятор
LM7805
1 Поиск в магазине ОтронВ блокнот
VD1 Выпрямительный диод
1N4007
1 Поиск в магазине ОтронВ блокнот
R1, R2 Резистор
10 кОм
2 Поиск в магазине ОтронВ блокнот
R3 Резистор
4.7 кОм
1 Поиск в магазине ОтронВ блокнот
R4 Резистор
510 Ом
1 Поиск в магазине ОтронВ блокнот
R5 Резистор
6.8 кОм
1 Поиск в магазине ОтронВ блокнот
R6 Резистор
3.3 кОм
1 Поиск в магазине ОтронВ блокнот
R7-R9 Резистор
1 кОм
3 Поиск в магазине ОтронВ блокнот
C1, C5 Электролитический конденсатор470 мкФ 16 В2 Поиск в магазине ОтронВ блокнот
C2, C3, C6, C7 Электролитический конденсатор1 мкФ 16 В4 Поиск в магазине ОтронВ блокнот
C4, C8, C11 Конденсатор0.1 мкФ3 Поиск в магазине ОтронВ блокнот
C9, C10 Конденсатор30 пФ2 Поиск в магазине ОтронВ блокнот
ZQ1 Кварц3.6864 МГц1 Поиск в магазине ОтронВ блокнот
HL1 Светодиод
АЛ307ЕМ
1 Поиск в магазине ОтронВ блокнот
HL2 Светодиод
АЛ307ГМ
1 Поиск в магазине ОтронВ блокнот
HL3 Светодиод
АЛ307БМ
1 Поиск в магазине ОтронВ блокнот
X1 РазъемDB-91 RS-232 (COM)Поиск в магазине ОтронВ блокнот
X2 РазъемПитание1 9-15ВПоиск в магазине ОтронВ блокнот
X3 РазъемISP1 Для внутрисхемного программированияПоиск в магазине ОтронВ блокнот
Добавить все

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

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.9 Проголосовало: 1 чел.

Комментарии (5) | Я собрал (0) | Подписаться

+1
Павел #
Отличная статья, все собрал, все прекрасно работает. Спасибо автору!
Ответить
0
Pavel #
Огромное спасибо за изумительную статью, распечатал всю, прекрасные примеры с объяснениями для 1-го класса - это для меня.
Ответить
0
vermisco@gmail.com #
И что можно отлаживать код непосредственно в контроллере?
Ответить
0
Павел #
Нет, только записывать программу в микроконтроллер. Для отладки кода в микроконтроллере нужен JTAG программатор, причем не все микроконтроллеры имеют этот JTAG.
Ответить
0
Pavel777k #
В статье есть незначительные ошибки. На схеме не обозначен светодиод HL1 (подключен через резистор R8). Далее следует исправить так: В ходе работы светодиод HL3 свидетельствует о нормальном функционировании программатора. HL2 будет светиться во время программирования микроконтроллера, а HL1 будет сигнализировать о наличии напряжения и тактовых импульсов (выводы 2 и 7 X3 соответственно).
Если вместо MAX232 и ее обвязкой поставить CP2102 со своей обвязкой то получится программатор с USB интерфейсом (в операционной системе будет виртуальный COM порт). Преимущества - можно использовать в Windows 10, все новые компьютеры в основном не имеют COM порт
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Конструктор - темброблок на LM1036 Pickit 2 - USB-программатор PIC-микроконтроллеров
вверх