Коли ви вперше стикаєтеся з мікроконтролером, то, читаючи його опис (datasheet), переглядаючи форуми, через велику кількість інформації вам важко визначити головне і другорядне в роботі з мікро

Власне, формальний процес цієї роботи простий: ви пишете програму, компілюєте її у формат, придатний для програми завантаження цього в мікросхему (зазвичай hex-файл) підключаєте програматор і записуєте створену вами програму в мікросхему Саме на цьому етапі ви використовуєте слово конфігурації (для AVR ви частіше зустрінете термін фьюз) для запису в МК

Кожен біт цього слова конфігурації (або слів конфігурації) визначає набір властивостей мікроконтролера після його програмування: чи буде використовуватися сторожовий таймер, чи буде закрита програма від зчитування, який тактовий генератор буде використаний і тд

Чи не приділивши достатньо уваги цьому слову конфігурації, ви можете отримати контролер, програма для якого написана правильно, але на макетної платі не працює Найпростіший приклад цього у виборі тактового генератора і тактової частоти Від цієї частоти залежать всі тимчасові деталі роботи мікроконтролера Якщо в середовищі розробки ви задали тимчасові затримки, але не задали тактову частоту, або на макетної платі використовували іншу частоту тактового генератора, то часи не відповідатимуть очікуваним Найпростіша програма – миготливий світлодіод – працюватиме неправильно Тобто, блимати світлодіод буде, але не з тими інтервалами, які ви планували У такій простій програмі помилка буде видна «на око» Але, якщо ви використовували послідовну передачу даних, то виявити помилку буде набагато важче

Несвідомо використовуючи перехід мікроконтролера в режим очікування, ви знову можете отримати непрацюючу програму, хоча програма написана правильно і для її роботи досить відключити в слові конфігурації непотрібний вам режим

Тому, прочитавши документацію, обовязково кілька раз прочитайте розділи, що відносяться до конфігурації мікроконтролера В описі PIC16F887 є розділ, який називається «Біти конфігурації» Починається цей розділ так:

Біти конфігурації розташовані в памяті програм за адресою 2007h, вони можуть бути запрограмовані у 0 або залишені в 1. Зауважте, що адреса 2007h розташований за межами памяті користувача програм

Фактично, до конфігураційного регістру (область памяті 2000h – 3FFFh) можна звернутися тільки в режимі програмування мікроконтролера

Далі є таблиця, де описано призначення кожного з бітів слова конфігурації Потім йде розділ, присвячений роботі тактового генератора, де наведені всі дані з використання резонаторів, опис RC генератора і опис внутрішнього генератора

Це виявляється особливо важливо в тих випадках, коли ви користуєтеся чужий схемою готового пристрою, а програматор не підтримує автоматичну запис слова конфігурації, надаючи вам задати його Тому до того, як натиснути мишкою на кнопку інструментальної панелі Записати, Обовязково переконайтеся, що слово конфігурації (або фьюз) задані правильно

Особливо це відноситься до контролерів AVR, де можна закрити мікросхему від наступних змін, так, що навіть якщо програма записана невірно, то щоб стерти мікросхему або змінити програму, вам доведеться проробити додаткову роботу з повернення можливості це зробити

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012