Пристрій ATmega fusebit doctor призначене для відновлення заводської конфігурації Fuse-бітів мікроконтролерів Atmel AVR сімейства ATmega у випадках неправильного запису таких. Найпоширенішими помилками або проблемами є неправильне конфігурування джерела тактової частоти (fuse-біт CKSEL), відключення послідовного інтерфейсу програмування SPI (fuse-біт SPIEN) або відключення виведення Reset для можливості використовувати його як лінію введення / виведення (fuse-біт RSTDISBL). Дане просте й дешеве пристрій покликаний за лічені секунди відновити конфігурацію (оживити мікроконтролер).
У першому випадку (неправильний вибір джерела тактової частоти) проблему можна вирішити, але в другому і третьому випадках оживити мікроконтролер за допомогою програматора з послідовним інтерфейсом неможливо. Багато хто не наважується збирати паралельний програматор, тому-що вигідніше купити новий мікроконтролер.
Пристрій використовує метод паралельного високовольтного програмування (HVPP), і в базі даних міститиметься сигнатури багатьох мікроконтролерів сімейства ATmega. Користувачеві необхідно лише встановити мікроконтролер з неправильною конфігурацією fuse-бітів в сокет і натиснути кнопку Start.
Основою є мікроконтролер ATmega8, який налаштований на роботу від внутрішнього RC осцилятора 8 МГц. Це слід враховувати при програмуванні мікроконтролера при установці fuse-бітів, а також необхідно встановити біт EESAVE.
Світлодіоди - індикатори статусу призначені для інформування користувача про хід процесу відновлення. З цією ж метою може використовуватися персональний комп'ютер з термінальною програмою і COM портом (RS232). На платі передбачений роз'єм для підключення лінії Tx мікроконтролера до інтерфейсу RS232 комп'ютера, при цьому необхідно використовувати перетворювач логічних рівнів інтерфейсу, наприклад на мікросхемі MAX232. Термінальна програма налаштовується на швидкість передачі даних 38400 бод, без перевірки парності, 8 біт даних, 1 стоп-біт. В термінальній програмі відображається вся інформація про хід процесу відновлення конфігурації.
Приклад вмісту вікна термінальної програми в ході роботи пристрою
Світіння світлодіодів означає:
- включений зелений світлодіод - конфігурація Fuse-бітів відновлена. Якщо встановлені Lock-біти, то перевіряється тільки відповідність поточної конфігурації бітів заводських налаштувань, і якщо вона збігається, то включається зелений світлодіод;
- включений червоний світлодіод - помилка при зчитуванні сигнатури мікроконтролера: неможливо прочитати, відсутня мікроконтролер в сокеті або сигнатура не збігається з наявними в базі даних пристрою;
- блимає зелений світлодіод - сигнатура вірна, конфігурація Fuse-бітів не вірно. Lock-біти встановлені, потрібна операція стирання Flash-пам'яті;
- блимає червоний світлодіод - сигнатура вірна, lock-біти не встановлені, але з деяких причин Fuse-біти не можуть бути записані.
На схемі зображено перемичка (джампер) Erase - з його допомогою користувач дозволяє або забороняє стирання Flash і EEPROM пам'яті відновлюваного мікроконтролера. Якщо джампер замкнутий - операція стирання дозволена, якщо розімкнути то операція стирання пам'яті заборонена.
Для харчування необхідний стабілізований джерело живлення 12 В, що дуже важливо для режиму високовольтного паралельного програмування. Для харчування керуючого мікроконтролера встановлений регулятор напруги 5.0 В 7805. Номінали резисторів R7 - R23 можуть лежати в діапазоні 470 Ом - 1 кОм.
Пристрій діє таким чином. Користувач встановлює відновлюваний мікроконтролер в слот і натискає кнопку Start, відбувається ініціалізація режиму високовольтного паралельного програмування. Якщо контролер не відповідає високим станом лінії RDY / BSY, наше пристрій використовує інший шлях для ініціалізації, навіть якщо висновки XTAL переключені на зовнішній резонатор. Після цього проводиться стирання Flash і EEPROM пам'яті контролера, якщо дана операція дозволена (див. Вище джампер Erase). Потім зчитується сигнатура і перевіряється підтримка встановленого мікроконтролера, перевіряються Lock-біти і якщо вони не встановлені (не блокують доступ) відбувається відновлення конфігурації fuse-бітів до заводської відповідно моделі мікроконтролера. Після цього виконується перевірка встановлених fuse-бітів і включається відповідні світлодіод. Також посилається інформація по послідовному інтерфейсу в термінальну програму на комп'ютері.
Якщо загорівся зелений світлодіод, Ви можете бути на 100% впевнені, що конфігурація fuse-бітів відновлена коректно.
Як видно, є три роз'єми (сокета) для багатьох мікроконтролерів AVR, які сумісні за висновками з: ATmega8, ATmega16, ATtiny2313. Також є коннектор з усіма необхідними сигналами для можливості підключення користувальницьких адаптерів для інших типів мікроконтролерів. Для цього користувачеві потрібно лише правильно підключити сигнали до потрібних висновків мікроконтролера. Як? Для цього потрібно вивчити технічний опис на потрібний мікроконтролер: розділ «Програмування пам'яті» (memory programming), підрозділ «Паралельне програмування» (parallel programming). Пам'ять керуючого мікроконтролера програмою зайнята в повному обсязі, тому в подальшому можливе поповнення списку підтримуваних пристроїв.
Підтримувані на даний момент пристрої сімейства ATmega (версія 2.01, 76 пристроїв):
2 КБ:
Attiny2313, Attiny26, Attiny261, Attiny28
4 КБ:
Atmega48, Atmega48P, Attiny461, Attiny43U, Attiny4313, Attiny48
8 КБ:
Atmega8515, Atmega8535, Atmega8, Atmega88, Atmega88P, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny861, Attiny88
16 КБ:
Atmega16, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164, Atmega164P, Atmega165, Atmega168, Atmega168P, Atmega169, AT90pwm216, AT90pwm316, AT90usb162
32 КБ:
Atmega32, Atmega32U4, Atmega32M1, Atmega324, Atmega324P, Atmega325, Atmega3250, Atmega325P, Atmega3250P, Atmega328, Atmega328P, Atmega329, Atmega3290, AT90can32
64 КБ:
Atmega64, Atmega64M1, Atmega649, Atmega6490, Atmega640, Atmega644, Atmega644P, Atmega645, Atmega6450, AT90usb646, AT90usb647, AT90can64
128 КБ:
Atmega103, Atmega128, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256 КБ:
Atmega2560, Atmega2561
Оновлення апаратної частини: додано два адаптера:
* Адаптер # 1 - розширення для режиму HVPP, підтримка 20-вивідного мікроконтролера ATtiny26, 40-вивідного мікроконтролера ATmega8515 і сумісних з ними мікроконтролерів;
* Адаптер для HVSP для 8-вивідних і 14-вивідних мікроконтролерів.
Оновлення програмного забезпечення (версія 2.03):
* Додана підтримка мікроконтролерів, режим HVPP: AT90S8515, AT90S8535, AT90S1200, AT90S4433, AT90S4414, AT90S4434, AT90S2333;
* Добло підтримка мікроконтролерів, режим HVSP: ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny25, ATtiny45, ATtiny85, ATtiny22, AT90S2323, AT90S2343, ATtiny24, ATtiny44, ATtiny84.
* В архіві містяться зображення сумісності роз'ємів, індекс «B» означає використання адаптера # 1, індекс «С» - використання адаптера HVSP.
1. При підключенні пристрою до комп'ютера для спостереження за ходом процесу, в термінальній програмі не будуть відображатися назви деяких мікроконтролерів в зв'язку з реалізацією режиму HVSP і браком Flah-пам'яті програм мікроконтролера ATmega8.
2. Деякі текстові константи використовуються при роботі через інтерфейс RS232 зберігаються в EEPROM пам'яті мікроконтролера. Тому, якщо Ви не будете використовувати інтерфейс RS232 для підключення пристрою до комп'ютера, необхідно записати файл EEP.BIN в EEPROM-пам'ять мікроконтролера за допомогою вибору програм (зауважте, це файл формату BIN, що не HEX).
Тут архів з усіма попередніми версіями «Доктора». Крім того архів містить додаткові матеріали, такі як пінаути для різних корпусів AVR, плати-адаптери, макети друкованих плат і інше.
Архів для статті "Відновлення конфігурації Fuse-бітів мікроконтролерів сімейства AVR - mega (HVPP)" HOT
Пропоноване автоматичний зарядний пристрій (ЗУ) призначене для зарядки батареї акумуляторів номінальною напругою 12 В і ємністю 1. 10 А-ч, але при невеликій доробці його можна застосувати для зарядки акумуляторних батарей з іншими напругою і ємністю.