У пакет WinAVR входить вбудована оболонка програмування AVRDUDE (AVR Downloader / UploaDEr, на сленгу гумористів «дудка») Оболонка має спартанський інтерфейс, але з її допомогою успішно і, головне, швидко програмуються різні типи MK Розробником AVRDUDE є Brian Dean, який у 2003 р випустив перший реліз З тих пір навколо проекту утворилося ядро ​​розумних програмістів, які постійно займаються модифікацією версій

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

Головне при програмуванні через AVRDUDE – це правильно встановити біти конфігурації У Табл 65 приведена розкладка найбільш поширених режимів тактирования ATmega48/48A/48PA Чила відібрані з таблиць даташіта З метою зменшення числа варіантів зроблені обмеження, зокрема, введено єдиний час затримки запуску тактового генератора «Time-out» 65 мс, заборонена pa6oTaWatchDog, debugWIRE і BootLoader, дозволений зовнішній скидання RESET Подібним чином заповнюються стовпці в таблиці і для інших типів MK

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

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

High Fuse

Ext

Fuse

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

Low Fuse

Без

BOD

BOD + 18 В

BOD

+27B

BOD +43 В

За замовчуванням

0x62

0xDF

0xFF

Зовнішні імпульси

0..20

0xE0

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

0128

0xE3

0x62

8

0xE2

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

0032768

0xE5

0xDF

0xDE

0xDD

0xDC

0xFF

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

04..09

0xF9

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

09..3

0xFB

3..8

0xFD

8..16

0xFF

04..20

0xF7

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

Щоб «не заблукати в трьох соснах», на Рис 617 показаний зовнішній вигляд популярної оболонки PonyProg [6-12], в якій шістнадцяткові числа «фьюз» представлені в наочній графічній формі Друга, третя і четверта рядки сверхуотносятся, відповідно, кбайт Ext Fuse, High Fuse, Low Fuse

Рис 617 Конфігураційні байти 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 ..» Відкоригувати текст, використовуючи дані з Табл 66

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

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

3 При бажанні можна поставити захист від перегляду кодів Для цього треба змінити рядок 281 «makefile» за зразком: «AVRDUDEWRITEFLASH =-U lock: w: 0x00: rm> Якщо захист поставлена, то кажуть «МК залочений» На Рис 617 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 – (Серія «Програмовані системи»)