Программирование MK – первая программа

March 8, 2014 by admin Комментировать »

В пакет WinAVR входит встроенная оболочка программирования AVRDUDE (AVR Downloader/UploaDEr, на сленге юмористов «дудка»). Оболочка имеет спартанский интерфейс, но с её помощью успешно и, главное, быстро программируются разные типы MK. Разработчиком AVRDUDE является Brian Dean, который в 2003 г. выпустил первый релиз. С тех пор вокруг проекта образовалось ядро толковых программистов, которые постоянно занимаются модификацией версий.

Управляющие команды для AVRDUDE прописываются внутри «makefile» в отдельном абзаце в середине текста. Расшифровка команд содержится в документе C:\WinAVR-2010010\doc\avrdude\avrdude.pdf. Поддерживаются более 30 типов адаптеров, втом числе PonyProg [6-12]), USBasp [6-13], Arduino [6-14].

Главное при программировании через AVRDUDE — это правильно установить биты конфигурации. В Табл. 6.5 приведена раскладка наиболее распространённых режимов тактирования ATmega48/48A/48PA. Чила отобраны из таблиц даташита. С целью уменьшения числа вариантов сделаны ограничения, в частности, введено единое время задержки запуска тактового генератора «Time-out» 65 мс, запрещена pa6oTaWatchDog, debugWIRE и BootLoader, разрешён внешний сброс RESET. Подобным образом заполняются столбцы в таблице и для других типов MK.

Таблица 6.5. Режимы тактирования MKATVnega48/48A/48PA

Диапазон частот [МГц]

High Fuse

Ext

Fuse

Режим генерации

Low Fuse

Без

BOD

BOD + 1.8 В

BOD

+2.7B

BOD +4.3 В

По умолчанию

0x62

0xDF

0xFF

Внешние импульсы

0…20

0xE0

Внутренний ДС-генератор

0.128

0xE3

0x62

8

0xE2

Кварцевый НЧ-резонатор

0.032768

0xE5

0xDF

0xDE

0xDD

0xDC

0xFF

Керамический резонатор

0.4…0.9

0xF9

Кварцевый ВЧ-резонатор

0.9…3

0xFB

3…8

0xFD

8…16

0xFF

0.4…20

0xF7

Пример из строки 4 листинга на Рис. 6.7: Low Fuse = 0xE2, High Fuse = 0xDF, Ext Fuse = 0xFF, следовательно, MK настроен на работу от внутреннего тактового генератора с частотой 8 МГц (по даташитудопускается разброс 7.3…8.1 МГц), детектор BOD отключён.

Чтобы «не заблудиться в трёх соснах», на Рис. 6.17 показан внешний вид популярной оболочки PonyProg [6-12], в которой шестнадцатеричные числа «фьюзов» представлены в наглядной графической форме. Вторая, третья и четвёртая строки сверхуотносятся, соответственно, кбайтам Ext Fuse, High Fuse, Low Fuse.

Рис. 6.17. Конфигурационные байты Low = 0xE2, High = OxDF, Ext = 0xFF в программе PonyProg.

Чтобы запрограммировать MK через AVRDUDE, можно воспользоваться графическими оболочками [6-15], [6-16], [6-17] и on-line калькулятором «фьюзов» [6-18]. Другой вариант — подправить содержимое «makefile».

Порядок действий.

1.              Запустить на выполнение редактор PN2, открыть «makefile»: «File — Open…». Откорректировать текст, используя данные из Табл. 6.6.

Таблица 6.6. Коррекция текста «makefile» для программирования через AVRDUDE

2.               Запрограммировать MK, выбрав пункт меню «Tools — [WinAVR] Program». Через секунду память MK будет «прошита» и верифицирована, о чём свидетельствует надпись «Process Exit Code: 0».

3.               При желании можно поставить защиту от просмотра кодов. Для этого надо изменить строку 281 «makefile» по образцу: «AVRDUDEWRITEFLASH = -U lock:w:0x00:rm>. Если защита поставлена, то говорят «МК залочен». На Рис. 6.17 MK «разлочен», поскольку в квадратах верхней строки нет ни одной «галочки».

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

Считается, что снять защитусисправного МК программным способом нельзя, только путём полного стирания кристалла. Для сведения, существуют хакерские аппаратные средства «вскрытия» прошивки на основе инвазивных, полуинвазиых и неинвазивных технологий [6-19]. Имеется даже компактный прибор, который за 3…15 минут читает содержимое защищённой памяти некоторых AVR- и PIC-контроллеров, втом числе, ATtinyl5, ATmega8515, PIC16F628, PIC16F876A. К счастью, применяемая в SKit микросхема ATmega48A в их число не входит.

Реальная работа

После программирования MK надо кратковременно нажать и отпустить кнопку сброса SB2 SKit. Далее следует нажать кнопку SB1 и убедиться, что светодиод HL1 начал светиться. На глаз кажется, что отклик происходит мгновенно, но только программист знает о микроскопической задержке в несколько сотен наносекунд, которая была выявлена на этапе моделирования в программе VMLab.

Если светодиод на нажатие кнопки не реагирует и все детали SKit исправны, то возможной причиной неисправности может быть постоянно НИЗКИЙ уровень сигнала «RES», оставшийся после завершения работы оболочки программирования. Выйти из положения помогает расстыковка компьютерного кабеля.

Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты