|
RSTDISBL=1 – пин настроен на работу как вывод внешнего сброса. RSTDISBL=0 – пин работает как порт ввода-вывода. Данный режим работы отключит возможность последовательного программирования и поможет только параллельный программатор. WDTON – включение и отключение сторожевого таймера (Watch Dog Timer), который выполняет защиту от зависания программы, выполняемой МК. В основном применяется в ответственных программах, где зависание нежелательно. WDTON=1 – сторожевой таймер отключен (можно включить программно через бит WDT регистра WDTCR). WDTON=0 – сторожевой таймер включен (программно отключить не получится). SPIEN – разрешение последовательного программирования. SPIEN=0 – последовательное программирование разрешено. SPIEN = 1 – последовательное программирование запрещено. Если отключить режим последовательного программирования, то сможет помочь только параллельный программатор. Во многих программах для прошивки данный бит изменить нельзя (чекбокс недоступен). CKOPT – бит опций тактового генератора. Его разберем позже, когда доберемся до младшего байта. EESAVE - бит защиты данных, хранящихся в EEPROM памяти при стирании микросхемы. Если данный бит не установлен, т.е. EESAVE = 1, то при стирании микросхемы затрутся данные, хранящиеся в EEPROM. BOOTSZ1…0 – биты определяющие объем flash-памяти, отводимой под бутлоадер. Бутлоадер – это набор команд, даже точнее – это программа, которая болтается в конце flash-памяти МК, способная принимать данные от внешних устройств при наступлении какого-либо события и заносить их во flash-память. Бутлоадер применяется в основном для прошивки МК без использования спецпрограмматора. BOOTRST – бит, определяющий с какого места начнется загрузка контроллера после сброса. BOOTRST = 1 – загрузка начнется с нулевого адреса BOOTRST = 0 – загрузка начнется с адреса начала области flash-памяти, выделенной под бутлоадер. Вот и добрались до младшего байта.
BODLEVEL и BODEN – биты, управляющие схемой мониторинга напряжения питания контроллера (Vcc). Если напряжение опуститься ниже установленного битом BODLEVEL, то МК сброситься и будет держаться в режиме сброса, пока напряжение не превысит установленный порог. BODLEVEL = 0 – Пороговое напряжение равно 4В. BODEN = 1 – схема мониторинга неактивна. BODEN = 0 – схема мониторинга напряжения питания активна. SUT1…0 – биты, определяющие время запуска микроконтроллера (см. режимы работы тактового генератора). После подачи на МК питания, выхода его из режима энергосбережения или после сброса, МК начинает работать не сразу, а по истечении определенного времени. Как раз это время и задают данные биты. Если время старта не важно, то ставим максимум SUT1…0 = 11. Все операции, выполняемые контроллерам, производятся по импульсам, приходящим от тактового генератора. Тактовый генератор может быть встроенным в МК, либо быть внешним. Внутренний генератор может работать в нескольких режимах: - с внешней задающей RC-цепочкой; - с внешним задающим кварцевым или керамическим резонатором. При работе контроллера от внешнего тактового генератора на его вход XTAL1 подаются прямоугольные импульсы от какого-либо внешнего генератора: Все эти режимы работы задаются битами CKSEL3…0. Внутренний генератор с внутренней задающей RC-цепочкой
Внутренний генератор с внешней задающей RC-цепочкой ![]() Согласно даташиту емкость конденсатора должна быть не менее 22 пФ. При условии, что CKOPT=0 между выводом XTAL1 и GND подключается внутренний конденсатор емкостью 36 пФ и внешний конденсатор можно исключить. Частота задающей RC-цепочки определяется соотношением f=1/(3RC). В соответствии с выбором RC-цепочки биты CKSEL3…0 устанавливаются в соответствии с таблицей:
Внутренний генератор с внешним резонатором
Внешний тактовый генератор
Немного о прошивающем софте Немало косяков с залочкой контроллеров возникает из-за прошивающего софта. В каких-то программах галка в чекбоксе означает 0, а в каких-то 1. Перечислять значения галки в каждой программе бесполезно, так как этих программ навалом. Поэтому дам совет, как определить who is who. Берем МК и подключаем его к последовательному программатору, заходим в режим программирования fuse-битов и считываем все байты. Смотрим значение бита SPIEN. Т.к. последовательное программирование разрешено, то SPIEN = 0. А теперь смотрим что стоит в чекбоксе напротив данного бита. Если стоит галка, то в данной программе это означает 0, если чекбокс пуст, то галка в данной программе означает 1. При прошивке всегда шейте первым делом прошивку, а fuse-биты в самую последнюю очередь, т.к. fuse-биты могут быть настроены не от работы тактового генератора с внутренней RC-цепочкой или вообще в данной схеме пин RESET используется как обычный порт. Перед прошивкой fuse-битов всегда делайте их считывание, т.к. при выставлении только нужных битов остальные зашьются как есть на экране. Автор статьи: skateman. Вопросы по статье МИКРОКОНТРОЛЛЕРЫ AVR: FUSE-БИТЫ вы можете задать на ФОРУМЕ |
| ВОЗДЕЙСТВИЕ ЭМП |
| ЗАРЯДНО-РАЗРЯДНОЕ УСТРОЙСТВО |
| ЭЛЕКТРОННОЕ ЗАЖИГАНИЕ ДЛЯ АВТО |
| МИКРОКОНТРОЛЛЕРЫ AVR: ОРГАНИЗАЦИЯ ПАМЯТИ |
| РЕМОНТ ЛАМПОВОГО МИКРОФОННОГО УСИЛИТЕЛЯ |
| ДОМАШНИЙ КИНОТЕАТР БЕЗ ПРОВОДОВ |
| РЕМОНТ ФЕНА EUROLUX |
| МУЛЬТИКОПТЕРЫ |
| ВЛИЯНИЕ ЭЛЕКТРОМАГНИТНОГО ИЗЛУЧЕНИЯ |
| РЕМОНТ МУЗЫКАЛЬНОГО ЦЕНТРА LG |
| КАК ЗАРЯЖАТЬ АККУМУЛЯТОРЫ |
| ЧИСТКА КЛАВИАТУРЫ |
| СВЕТОМУЗЫКА НА МИКРОКОНТРОЛЛЕРЕ |
| ЭКОЛОГИЯ И КОМПЬЮТЕРЫ |
| ФОТОРЕЗИСТ |
| КОМНАТНЫЙ ТЕРМОМЕТР |
| СХЕМА FM ПРИЁМНИКА |
| МИКРОКОНТРОЛЛЕРЫ AVR: FUSE-БИТЫ |
| ЦИФРОВОЙ СПИДОМЕТР |
| УСИЛИТЕЛИ НА ЛАМПАХ |
| LAN КОММУТАТОР |
| ЛАМПОВЫЙ УСИЛИТЕЛЬ СВОИМИ РУКАМИ |














