Site Loader

Содержание

Примеры установок фьюзов (FUSE) для микроконтроллеров AVR ATmega — Информация по МК, FAQ — Микроконтроллеры — Каталог статей

Продолжение статьи, начало по скринам ATtiny .

Во всех картинках фьюзы как по даташиту:
— снятая галочка– fuse bit = 0, фьюз запрограммирован / активный;
— установленная галочка– fuse bit = 1, фьюз НЕ запрограммирован / НЕ активный.

Для UniProf — ставить как на картинках
Для PonyProg, CVAVR, AVR Studio – ставить инверсно, т.е. наоборот.

 

Фьюзы ATmega8 заводские настройки внутренний RC генератор на 1.0МГц

 

Фьюзы ATmega8 внутренний RC генератор на 2.0МГц

 

Фьюзы ATmega8 внутренний RC генератор на 4.0МГц

 

Фьюзы ATmega8 внутренний RC генератор на 8.0МГц

 

Фьюзы ATmega8 внешний генератор на 1.0-16.0МГц

 

Фьюзы ATmega48/88/168 заводские настройки внутренний RC генератор на 1.0МГц

 

Фьюзы ATmega48/88/168 внутренний RC генератор на 8.0МГц



 

Фьюзы ATmega48/88/168 внутренний RC генератор на 128кГц

 

Фьюзы ATmega48/88/168 внешний генератор на 0.4_25.0МГц

Удачных вам проектов и поменьше залоченных микроконтроллеров!

 


МИКРОКОНТРОЛЛЕРЫ AVR: FUSE-БИТЫ

   В данном обзоре рассмотрим, что же такое fuse-биты и для чего они нужны, так как это вызывает много непонимания (да и разработчики прошиващего софта вертят их как хотят). В результате этого контроллеры AVR кучами складываются в коробки до «лучших времен». Для примера рассмотрим fuse-биты на примере МК ATMega8. Для других типов контроллеров AVR назначение уточняются в даташите на конкретный МК (не ленитесь читать документацию). Итак, поехали! Все фьюз-биты МК разделены на 2 байта – старший (Fuse High Byte) и младший (Fuse Low Byte). Разбор конечно же начнем со старшего байта.

старший байт

 RSTDISBL – определение режима работы пина RESET. Данный пин может работать в 2-х режимах как вывод внешнего сброса или как порт ввода-вывода. 
 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 = 1 – пороговое напряжение равно 2,7В.
 BODLEVEL = 0 – Пороговое напряжение равно 4В.
 BODEN = 1 – схема мониторинга неактивна.
 BODEN = 0 – схема мониторинга напряжения питания активна.
 SUT1…0 – биты, определяющие время запуска микроконтроллера (см. режимы работы тактового генератора). После подачи на МК питания, выхода его из режима энергосбережения или после сброса, МК начинает работать не сразу, а по истечении определенного времени. Как раз это время и задают данные биты. Если время старта не важно, то ставим максимум

SUT1…0 = 11. Все операции, выполняемые контроллерам, производятся по импульсам, приходящим от тактового генератора. Тактовый генератор может быть встроенным в МК, либо быть внешним.

   Внутренний генератор может работать в нескольких режимах:

— с внутренней задающей RC-цепочкой;
— с внешней задающей RC-цепочкой;
— с внешним задающим кварцевым или керамическим резонатором.
   При работе контроллера от внешнего тактового генератора на его вход XTAL1 подаются прямоугольные импульсы от какого-либо внешнего генератора:
Все эти режимы работы задаются битами CKSEL3…0.

Внутренний генератор с внутренней задающей RC-цепочкой

Внутренний генератор с внутренней задающей RC-цепочкой

   Все МК типа ATMega8 поставляются с завода со значением битов CKSEL3…0=0001, т.е. настроены на работу с тактовой частотой 1 МГц от внутреннего генератора с внутренней задающей RC-цепочкой. Время старта в данном режиме работы определяется по таблице:

Время старта

   Внутренний генератор с внешней задающей RC-цепочкой

Внутренний генератор с внешней задающей RC-цепочкой

   Согласно даташиту емкость конденсатора должна быть не менее 22 пФ. При условии, что CKOPT=0 между выводом XTAL1 и GND подключается внутренний конденсатор емкостью 36 пФ и внешний конденсатор можно исключить. Частота задающей RC-цепочки определяется соотношением f=1/(3RC). В соответствии с выбором RC-цепочки биты CKSEL3…0 устанавливаются в соответствии с таблицей:

Частота задающей RC-цепочки

   Время старта в данном режиме определяется по таблице:

Время старта в данном режиме

   Внутренний генератор с внешним резонатором

Внутренний генератор с внешним резонатором

   Частота тактового генератора будет определяться частотой кварца. При выбранной частоте кварца биты CKSEL3…1 выбираем из таблицы:

При выбранной частоте кварца биты CKSEL3…1 выбираем из таблицы

   Комбинация CKSEL3…1 = 101 должна использоваться только с керамическим резонатором (см. примечание под таблицей). Время старта выбирается из таблицы:

Время старта выбирается из таблицы

   При работе тактового генератора с внешним резонатором значение бита CKOPT определяет режим работы усилителя тактового генератора для раскачки резонатора. При CKOPT = 0 амплитуда колебаний максимальна, что дает устойчивость к помехам и возможность работать на всем диапазоне частот. При CKOPT = 1 амплитуда колебаний меньше (генератор работает в экономном режиме) и возможны сбои при работе контроллера из-за различных помех. Так что если нет жестких требований к энергосбережению устройства, то

CKOPT = 0. Кроме работы с высокочастотными резонаторами, контроллер способен работать также на частотах так называемых часовых кварцев (32768 Гц). Для этого значение CKSEL3…0 = 1001. При CKOPT = 0 между XTAL1 и GND, и XTAL2 и GND подключаются внутренние конденсаторы, а внешние конденсаторы в данном случае можно исключить. Время старта определяется из таблицы:

контроллер способен работать также на частотах часовых кварцев

   Внешний тактовый генератор

Внешний тактовый генератор микроконтроллера - схема

   Для выбора данного режима устанавливаем CKSEL3…0 = 0000. Установка CKOPT = 0 позволяет подключить между XTAL1 и GND, и XTAL2 и GND внутренние конденсаторы 36 пФ (зачем?). Время старта опять же определяется из таблицы:

время старта, fuse-биты

   Кроме младшего и старшего fuse-байтов в окне прошивальщика можно увидеть Lock Bit Byte – так называемый байт защиты. С помощью изменения значения битов данного байта можно запрещать и разрешать доступ к памяти программ (flash-памяти), EEPROM и области бутлоадера. Можно сказать, что биты этого байта предназначены для защиты того, что есть в контроллере. В основном это надо разработчику, чтобы защитить свой интеллектуальный труд от кражи и обычному пользователю эти биты особо неинтеесны.

   Немного о прошивающем софте

   Немало косяков с залочкой контроллеров возникает из-за прошивающего софта. В каких-то программах галка в чекбоксе означает 0, а в каких-то 1. Перечислять значения галки в каждой программе бесполезно, так как этих программ навалом. Поэтому дам совет, как определить who is who. Берем МК и подключаем его к последовательному программатору, заходим в режим программирования fuse-битов и считываем все байты. Смотрим значение бита SPIEN. Т.к. последовательное программирование разрешено, то SPIEN = 0. А теперь смотрим что стоит в чекбоксе напротив данного бита. Если стоит галка, то в данной программе это означает 0, если чекбокс пуст, то галка в данной программе означает 1. При прошивке всегда шейте первым делом прошивку, а fuse-биты в самую последнюю очередь, т.к. fuse-биты могут быть настроены не от работы тактового генератора с внутренней RC-цепочкой или вообще в данной схеме пин RESET используется как обычный порт. Перед прошивкой fuse-битов всегда делайте их считывание, т.к. при выставлении только нужных битов остальные зашьются как есть на экране. Автор статьи: skateman.

Фьюзы (Fuses) Микроконтролеров ATMega (Atmel) — Avislab


16.07.2012

Фьюзы (Fuses) — это несколько специальных байт, которые можно прошить только программатором, и отвечают они за разные настройки микроконтроллера. У разных микроконтроллеров фьюзы могут отличаться. Поэтому более подробную информацию смотрите в документации. Поскольку это делается в последнюю очередь, я приведу здесь краткое описание фьюзов и перечислю наиболее часто встречающиеся ошибки при работе с фюзами.

Хочу заметить, что установленным считается бит, который сброшен в 0. Для начинающих это часто вносит путаницу, при работе с разными программами для прошивки. Так как не всегда ясно установленная напротив фьюза птичка это 1 или 0 (в смысле, установлен). Разработчики ПО имели ввиду, если стоит птичка, значит, бит считается установленным (т.е. =0).

Далее приведенная сборная информация для разных микроконтроллеров. Я не претендую на оригинальность, эту информацию я скачал с интернета, прошу прощения у авторов.

Семейство ATtiny Семейство ATmega
2313 25/ 45/ 85 13 26 261/ 461/ 861 8 16 48/ 88/ 168 128 169 329 8515 8535
RESERVED M103С + S8515С S8535С
OCDEN + + + +
JTAGEN + + + +
SELFPRGEN + + + + +
DWEN

Примеры установок фьюзов (FUSE) для микроконтроллеров AVR ATtiny — Информация по МК, FAQ — Микроконтроллеры — Каталог статей

Частенько при проектировании или сборке очередной схемы на микроконтроллерах у многих радиолюбителей возникают трудности с фьюзами, многие боясь испортить (заблокировать) микроконтроллер спрашивают советов на форумах, ищут похожие проекты или же пытаются разобраться с помощью калькулятора фьюзов. Честно сказать, даже в калькуляторе не так просто разобраться… Чтобы всем было проще, решил в этой статье привести примеры установок фьюзов, т.е. скриншоты. начнем с ATtiny ну, поехали!

Во всех картинках фьюзы как по даташиту:
— снятая галочка– fuse bit = 0, фьюз запрограммирован / активный;
— установленная галочка– fuse bit = 1, фьюз НЕ запрограммирован / НЕ активный.

Для UniProf — ставить как на картинках
Для PonyProg, CVAVR, AVR Studio – ставить инверсно, т.е. наоборот.

 

Фьюзы ATtiny13 заводские настройки внутренний RC генератор на 1.2МГц (не путать с 9.6МГц — деление на 8)

 

Фьюзы ATtiny13 внутренний RC генератор на 4.8МГц

 

Фьюзы ATtiny13 внутренний RC генератор на 9.6МГц

 

Фьюзы ATtiny2313 заводские настройки внутренний RC генератор на 1.0МГц

 

Фьюзы ATtiny2313 внутренний RC генератор на 4.0МГц

 

Фьюзы ATtiny2313 внутренний RC генератор на 8.0МГц

 

Фьюзы ATtiny2313 внешний генератор на 3.0-8.0МГц

 

Фьюзы ATtiny2313 внешний генератор на 8.0-20.0МГц

Продолжение для AVR ATmega в следующей статье…

 


Фьюз (Fuse) биты микроконтроллеров — Radiodetector — радиотехнический портал

  • Staticvoid
  • 21 Ноя 2019
  • пока нет комментариев

Фьюз (Fuses) биты микроконтроллера предназначены для настройки МК на определенную работу . Включая или выключая те или иные биты, мы может тем самым менять настройки МК. Если вы только начинаете осваивать микроконтроллеры то их пока лучше не трогать, неправильная настройка может заблокировать МК.

Но знать их необходимо, базовыми знаниями тут не обойтись.

Фьюз биты расположены в особой области памяти, изменить их можно только используя программатор в процессе прошивки. При помощи фьюз битов можно настроить  следующие опции и режимы работы:

  • произвести выбор задающего генератора,
  • какой будет использоваться внутренний или внешний
  • выключить возможность прошивки или чтения данных микронтроллера
  • включить/выключить таймеры
  • задать частоту генератора (деление частоты генератора)
  • защитить память EEPROOM от стирания
  • и другие настройки.

У каждого микроконтроллера свои fuse-биты, как они называется и за что отвечают можно посмотреть в даташитах на микроконтроллер. Там все подробно расписано, перед тем как прошивать камень нужно знать какие биты выставлять нужно ознакомиться с документацией.
Настройка или установка этих битов осуществляется при помощи программатора.

Тут есть одна тонкость: Бит считается установленным если его значение равно нулю.

Этот момент нужно просто запомнить и привыкнуть, что если мы установили значение бита в ноль то значит мы его включили.Выставление битов при помощи программы AVRDUDE_PROG 3.3


Рассмотрим наиболее часто настраиваемые фьюз биты.

CKSEL

Чаще всего настраивается фьюзы CKSEL0, CKSEL, CKSEL2, CKSEL3 они настраивают частоту с которой работает тактовый генератор и его тип. Выставляя то или ной бит можно сделать 16 разных комбинаций. Но опять же нужно посмотреть в datasheet. С этими битами нужно быть осторожнее можно к примеру можно выставит биты таким образом что МК будет работать от внешнего генератора который подключается на ножки XTAL1 и XTAL2. И в случае его отсутствия, микроконтроллер станет «заблокирован»

По умолчанию большинство микроконтроллеров AVR настроены на работу от внутреннего источника тактов

SUT

Фьюзы SUT0 и SUT1 необходимя для настройки режимов старта тактовых генераторов. Довольно мудреные биты, если не правильно выставить эти биты то могут быть тормоза с запуском тактового генератора либо сбросы МК в момент полачи патания.

CKOPT

Наиболее часто используемый бит, он необходим для определения работы встроенного генератора для работы с кварцевым резонатором, он выставляет амплитуды сигнала на кварце.

OCDEN

Этот бит необходим для разрешения или запрета чтения данных из памяти микроконтроллера.

SELFPRGEN

При помощи этого бита мы можеи запретить или наоборот разрешить запись данных в память.

BODLEVEL

Этот фьюз бит устанавливает момент уровень напряжения питания при котором происходит рестарт микроконтроллера.

BODEN

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

BOOTRST

Отправная точка начала исполнения программы. Установка адреса с которого начинает работать исполняемая программ. Если это фьюз бит выставить то программа стартует с адреса области загрузчика

RSTDISBL

С этим битом нужно быть осторожным. Если не так выставить то можно вырубить вывод RESET, в результате чего больше не сможете программировать по ISP. Это бит преобразует вывод RESET в порт ввода-вывода. Не понятно зачем придумали этот бит, наверно на случай если не хватает выводов. Но как по мне то его лучше вообще не трогать.

BOOTSZ

Состоит из BOOTSZ1 и BOOTSZ0 выставляют размер области памяти записываемых программ

EESAVE

Этот бит предназначен для защиты памяти EEPROM от стирания. Если выставить этот бит то при очистке МК память EEPROM  останется не тронутой.

SPIEN

Это бит разрешает МК работать по интерфейсу SPI. У всех МК этот бит по умолчанию выставлен.

В приведенной ниже таблице fuse-биты микрокнтроллеров семейства ATtiny и ATmega. Знаком плюс указано наличие данного бита у МК.

Фьиз биты микроконтроллеров
Фьюз бит Семейство
ATtiny
Семейство
ATmega
2313 25/
45/
85
13 26 261/
461/
861
8 16 48/
88/
168
128 169 329 8515 8535
RESERVED M103С + S8515С S8535С
OCDEN + + + +
JTAGEN + + + +
SELFPRGEN + + + + +
DWEN + + + + + +
EESAVE + + + + + + + + + + + + +
SPIEN + + + + + + + + + + + + +
WDTON + + + + + + + + + + +
BODLEVEL2 + + + + +
BODLEVEL1 + + + + + + +
BODLEVEL0 + + + BODLEVEL + BODLEVEL BODLEVEL + BODLEVEL + + BODLEVEL BODLEVEL
BODEN + + + + + +
RSTDISBL + + + + + + + +
CKDIV8 + + + + + + +
CKOUT + + + + + +
SUT1 + + + + + + + + + + + + +
SUT0 + + + + + + + + + + + + +
CKOPT + + + + + +
CKSEL3 + + + + + + + + + + + +
CKSEL2 + + + + + + + + + + + +
CKSEL1 + + + + + + + + + + + + +
CKSEL0 + + + + + + + + + + + + +
PLLCK +
BOOTRST + + + + + + + +
BOOTSZ1 + + + + + + + +
BOOTSZ0 + + + + + + + +

Доктор фьюзов для AVR — РАДИОСХЕМЫ

Всем привет! Наверное у каждого, кто занимается или занимался прошивкой микроконтроллеров были случаи, когда вы неправильно зашивали фьюз-биты и тем самым приводили микроконтроллер в «залоченное» состояние. В этой статье я расскажу о том, как сделать AVR doctor. AVR doctor – это устройство, которое позволяет вернуть к жизни микроконтроллер с неправильно прошитыми фьюзами. Идея собрать его появилась у меня после того, как испортил 3 микроконтроллера ATtiny2313. Выбросить их было жалко, поэтому и решил их «вылечить».

Схема доктора фузов

Вот принципиальная схема данного устройства:

Итак, приступим к сборке.

1) Печатная плата

Так как дорожки на плате не очень узкие, можно изготовить плату по технологии ЛУТ. Я так и сделал, но принтер у меня печатает не очень хорошо, поэтому получилось не совсем удачно. На фото процесс изготовления платы.

Сборка устройства

Для сборки нам понадобится:

1. Резисторы: 

10к-1шт.
4,7к-2шт.
1к-19шт.
330 Ом – 1шт.

2. Конденсаторы:

100 мкФ 16в. – 1шт.
10 мкФ 16в. – 1шт.
10 нФ — 1шт.

3. Транзисторы:

BC547 – 1шт.
BC557 – 2шт.

4. Светодиоды – 2 шт. (красный и зеленый)

5. Панели под микроконтроллеры

40 выводов – 1шт.
28 выводов – 2шт.
20 выводов – 1шт.

6. Кнопка 4-х контактная – 1 шт.

7. Терминальный блок на 2 контакта – 1шт.

8. Стабилизатор напряжения 7805 в корпусе ТО-220  – 1 шт.

Вот собственно и все детали. Можно приступать к сборке АВР доктора.

Первым делом, нужно залудить контактные площадки на плате. Я обычно покрываю слоем припоя всю плату, так надежнее. Следует внимательно осмотреть плату на обрыв дорожек и другие дефекты. После того, как залудили плату, её нужно обмыть от флюса. Для этого можно воспользоваться водой с мылом или моющим средством. Если флюс не отмывается или вы использовали канифоль, следует промыть плату ацетоном или спиртом. Если нет не того, не другого, можете промыть плату перекисью водорода или на крайний случай растворителем. (при использовании растворителя, плата в дальнейшем будет иметь не очень приятный запах).

Когда все элементы впаяны, нужно еще раз промыть плату. После того как она высохнет, возьмите увеличительное стекло и внимательно осмотрите плату. Я иногда нахожу на плате сопли и непропаянные места. Если вы устраните все найденные дефекты до первого включения платы, вы можете избежать неприятностей. Вот так выглядит готовая плата:

Доктор фьюзов для МК AVR самодельный

Прошивка микроконтроллера

Следующим этапом будет прошивка микроконтроллера. Для этого вам нужно иметь:

  1. Микроконтроллер ATmega 8
  2. Программатор для AVR микроконтроллеров.

Чтобы прошить микроконтроллер нужно иметь программатор и компьютер с соответствующим программатору ПО. Я использую AVR Studio 4. Прошивку оставлю в архиве вместе с печатной платой и принципиальной схемой. 

Фьюз-биты нужно установить следующим образом:

Lock Bits = 0x 3F; High Fuse = 0x D1; Low Fuse = 0x E1; Ext. Fuse = 0x 00

Если микроконтроллер успешно прошит, можно приступать к разблокировке микроконтроллеров. Для этого вставьте прошитую атмегу в панельку возле светодиодов. А «залоченный» мк вставьте в соответствующую ему пустую панельку. Далее нужно подключить питание к плате через терминальный блок, который вы припаяли. Напряжение следует подавать 6-12 вольт, иначе плата не запуститься. Когда питание подключили загорится красный светодиод (если конечно вы все правильно собрали).

Если светодиод горит, то нажимайте на кнопку. Должен загореться зеленый светодиод, а красный погаснет. Если все так и произошло, то поздравляю – плата собрана правильно и вы разблокировали микроконтроллер. 

Теперь несколько слов о джампере, который стоит на плате. Если вы поставите на него перемычку, то при разблокировке МК также очиститься его память, то есть удалиться прошивка. Если же перемычки не будет — прошивка сохраниться.

Если при нажатии на кнопку не произошли действия описанные выше, то что-то пошло не так как нужно. Причина может быть в том, что вы ошиблись при сборке платы или прошивке атмеги. Также причина может быть в том, что микроконтроллер, который вы хотите восстановить, неисправен. Дополнительная информация — на форуме. Всем удачи!

Как установить предохранители AVR — PocketMagic

В большинстве своих проектов, связанных с микроконтроллерами, я пытаюсь описать все подробно, но я просто понял, что не уделял достаточно внимания тому, чтобы показать, как настроить плавкие вставки AVR, чтобы AVR работал с различными внешними кристаллами, 8 МГц, 16 МГц, и т.д. Я в основном работаю с мегаконтроллерами (atmega8, atmega16, atmega128, atmega168, atmega328p), но информация в этой статье применима ко всем другим микроконтроллерам AVR.

Аппаратные средства

Для установки плавких вставок вы можете использовать тот же инструмент, что и для записи.шестнадцатеричный. В моем случае это мой надежный программатор USBAsp USB, который отлично работает!

Программные средства

Здесь все немного сложнее. С одной стороны, вам нужно программное обеспечение, которое работает с USBAsp, но с другой стороны, вам необходимо правильно вычислить значения fusebit, которые будут запрограммированы в вашем AVR.
Для первого использую Winavr. Если работа с инструментом командной строки кажется вам сложной, рассмотрите возможность использования альтернатив, таких как Extreme burner.
Для вычисления плавких вставок существует довольно много онлайн-страниц, которые помогут вам достичь цели в несколько простых шагов: здесь или здесь.Подойдет любой из этих двух. Зайдя на одну из этих страниц, вы должны выбрать AVR, для которого нужно запрограммировать плавкие вставки, после чего появятся несколько таблиц с явно сложными настройками:
fusecalc_engbedded fusecalc_frankzao
Чтобы помочь вам начать работу, вот несколько деталей, которые вы должны знать:
Выбор часов
Управляет тактовой частотой чипа. В раскрывающемся меню отображается большой список параметров, но внимательно прочитав их, вы быстро увидите, что все они упоминают источник тактовой частоты и запуск часов.Неправильные настройки часов могут сделать ваш AVR непригодным для использования. Если это произойдет, обратитесь к врачу Fusebit ниже, чтобы узнать, как сбросить предохранители и «оживить» ваш AVR.
Источник тактовой частоты содержит следующее: внешняя тактовая частота
, внутренняя тактовая частота 8 МГц, внутренняя тактовая частота 4 МГц, внутренняя тактовая частота 128 кГц, внешний кристалл (0,4-0,9 МГц), внешний кристалл (0,9–3,0 МГц), внешний кристалл (3,0 МГц). — 8,0 МГц) или внешний кристалл (8,0 МГц +)
Тактовая частота при запуске может быть одной из следующих:
14CK + 0 мс, 14CK + 4 мс, 14CK + 65 мс.
Внешние часы означает, что прямоугольный сигнал вводится на вывод CLOCK-IN с помощью микросхемы, генерирующей часы. Это редкость, и обычно она вам не понадобится.
Internal Clock настраивает AVR на использование внутреннего генератора, который не очень точен, но подходит для большинства проектов, не требующих точной синхронизации. Вы должны знать, что эти часы зависят от температуры и напряжения источника питания. Вы можете выбрать частоту 8 МГц, 4 МГц или 128 кГц. Тактовая частота 128 кГц предназначена для приложений с очень низким энергопотреблением, где низкая скорость помогает экономить электроэнергию.Используя внутренние часы, вам не нужно подключать кристалл, поэтому мы можем использовать выводы XTAL1 и XTAL2 для различных других целей.
Внешний кристалл используется, когда вам нужна особая тактовая частота, например, 8 МГц или 12 МГц, или высокоточные часы, которые не будут меняться в зависимости от температуры или колебаний напряжения источника питания. В этом случае необходимо подключить внешний кварцевый резонатор или генератор.
Время запуска — это короткая задержка, используемая для приостановки часов на заданное время при самом первом включении питания.На всякий случай выберите самую длинную настройку 14CK + 65 мс, если вы точно не знаете, что ваши настройки должны быть другими.
Выход тактового сигнала (доступен только для некоторых AVR) генерирует прямоугольный сигнал той же частоты, что и входной тактовый сигнал (внутренний, внешний, кварцевый и т. Д.) На заданном контакте (D2, B0 и т. Д.). Это полезно, если вы отлаживаете тактовую частоту или хотите использовать часы для управления другим чипом.
Clock Divide (доступно только для некоторых AVR), заставляет чип делить тактовую частоту на 8.Так что, если источник тактовой частоты установлен на внутреннюю частоту 8 МГц и у вас установлен предохранитель, то вы действительно будете работать на частоте 1 МГц. По умолчанию это включено.
Отключение сброса , превращает вывод сброса в обычный вывод вместо специального вывода (как он установлен по умолчанию). Если этот предохранитель включен (Reset Disabled), вы больше не сможете программировать чип с помощью ISP. Будьте осторожны с этой опцией и никогда не включайте ее, если вам действительно не нужна одна дополнительная булавка. Если вы установили предохранитель по ошибке и больше не можете получить доступ к AVR, обратитесь к врачу Fusebit, чтобы узнать, как сбросить предохранители и «оживить» ваш AVR.
Обнаружение пониженного напряжения Предохранители устанавливают пороговое значение напряжения для цепи защиты от пониженного напряжения. «Понижение напряжения» происходит, когда напряжение падает, и радиочасы могут перестать работать: напряжение питания слишком низкое для надежной работы на заранее заданном уровне. Пример: ATtiny2313 может работать так же быстро на частоте 20 МГц, но только при напряжении питания от 4,5 до 5,5 В. Если напряжение упадет ниже 4,5 В, AVR может вести себя нестабильно, стирая или перезаписывая ОЗУ и EEPROM, он также может запускать случайный фрагмент флеш-программы, все в одном действии с непредсказуемыми результатами, ничего, что вы бы хотели, чтобы ваше оборудование делать.Чтобы держать его под контролем, установите пониженное напряжение на 4,3 В. Если напряжение упадет ниже этого порога, микросхема выключится, пока напряжение не вернется. Затем он сбросится и начнется заново. Если микросхема предназначена для работы при 5 В, установите пониженное напряжение на 4,3 В. Если микросхема может работать до 3,3 В, вы можете установить снижение напряжения на 1,8 В. Если чип является «совместимым с низким напряжением», например attiny2313V (который может работать до 1,8 В, если он работает на частоте 4 МГц или меньше), то вы можете установить снижение напряжения на 1,8 В. Вы можете прочитать больше в даташите.
По умолчанию этот параметр отключен. Если ваш AVR использует загрузчик или EEPROM, вы должны установить BOD для безопасности!
Программирование SPI (предохранитель SPIEN) , если этот предохранитель не активирован, часть должна быть запрограммирована с использованием высокого напряжения, и интерфейс SPI не будет использоваться (поэтому USBASP для вас не будет). Будьте осторожны при отключении этого предохранителя, так как без программатора высокого напряжения ваш AVR может выйти из строя. Также обратитесь к врачу Fusebit ниже, чтобы узнать, как сбросить предохранители и «оживить» ваш avr.

В результате тщательного выбора настроек FUSEBIT вы получите несколько чисел в HEX, представляющих НИЗКИЙ ПРЕДОХРАНИТЕЛЬ, ВЫСОКИЙ ПРЕДОХРАНИТЕЛЬ, а для некоторых АРН — РАСШИРЕННЫЙ ПРЕДОХРАНИТЕЛЬ.
Чтобы установить их с помощью AVRDUDE (WinAVR) или Extreme Burner, см. Примеры ниже:

Примеры

Настройки ATMega8 по умолчанию : внутренний генератор 1 МГц
avrdude Синтаксис:

avrdude -p atmega8 -c usbasp -U lfuse: w: 0xE1: m -U hfuse: w: 0xD9: m
 

Extreme burner
extreme_burner_default_fuses
Как видите, номера lfuse и hfuse совпадают (0xE1 и 0xD9).Чтобы сэкономить на длине статьи и повысить удобочитаемость, я покажу только настройки AVRdude, а вы можете легко вставить эти числа в Extreme Burner для тех же результатов.

ATMega8, внешний кристалл, 8 МГц

avrdude -p atmega8 -c usbasp -U lfuse: w: 0xDC: m -U hfuse: w: 0xD9: m
 

ATMega8, внешний кристалл, 16 МГц

avrdude -p atmega8 -c usbasp -U lfuse: w: 0xFF: m -U hfuse: w: 0xC9: m
 

ATMega128 по умолчанию

avrdude -p atmega128 -c usbasp -U lfuse: w: 0xE1: m -U hfuse: w: 0x99: m
 

Внешние кварцевые предохранители ATMega128 16 МГц

avrdude -p atmega128 -c usbasp -U lfuse: w: 0xFF: m -U hfuse: w: 0x89: m
 

Предохранители по умолчанию ATMega168, внутренний генератор на 1 МГц

avrdude -p atmega168 -c usbasp -U lfuse: w: 0x62: m -U hfuse: w: 0xDF: m -U efuse: w: 0x1: m -U lock: w: 0xFF: m
 

ATMega168, внешние кварцевые предохранители 16 МГц

avrdude -p atmega168 -c usbasp -U lfuse: w: 0xdf: m -U hfuse: w: 0xDF: m -U efuse: w: 0xF9: m -U lock: w: 0xFF: m
 

Стандартные предохранители ATMega328p, внутренний генератор 1 МГц

avrdude -p atmega328p -c usbasp -U lfuse: w: 0x62: m -U hfuse: w: 0xD9: m -U efuse: w: 0x7: m -U lock: w: 0xFF: m
 

ATMega328p, внешний кристалл, 3-8 МГц

avrdude -p atmega328p -c usbasp -U lfuse: w: 0xdc: m -U hfuse: w: 0xDF: m -U efuse: w: 0xFF: m -U lock: w: 0xFF: m
 

Настройки внешних кварцевых предохранителей ATMega328p 16 МГц

avrdude -p atmega328p -c usbasp -U lfuse: w: 0xdf: m -U hfuse: w: 0xDF: m -U efuse: w: 0xF9: m -U lock: w: 0xFF: m
 

Доктор Фусебит

Fusebit Doctor, разработанный manekinen, представляет собой устройство для ремонта неисправных AVR семейства ATmega и ATtiny путем записи правильных предохранительных битов по умолчанию.Наиболее частыми причинами выхода из строя AVR являются неправильные настройки источника синхронизации (предохранители CKSEL), отключенное программирование SPI (предохранитель SPIEN) или отключенный вывод сброса (предохранитель RSTDISBL). В этой схеме используется метод параллельного и последовательного программирования высокого напряжения: HVPP = параллельное программирование высокого напряжения и HVSP = последовательное программирование высокого напряжения. Устройство
Manekinen поставляется с базой данных поддерживаемых микросхем, хранящейся в основном микроконтроллере платы, которая используется для распознавания неисправных микросхем и восстановления их исходных настроек.Для этого нам нужно только вставить их в правильную розетку и нажать кнопку СТАРТ. Так легко. Поскольку все ресурсы проекта были любезно предоставлены автором, я построил свою собственную плату для ремонта некоторых из своих неисправных микросхем.
avr_fusebit_doctor_01 avr_fusebit_doctor_02 avr_fusebit_doctor_03 avr_fusebit_doctor_04 avr_fusebit_doctor_05

avr_fusebit_doctor_06 avr_fusebit_doctor_07 avr_fusebit_doctor_08 avr_fusebit_doctor_09 avr_fusebit_doctor_10

У одного из моих atmega328p были неправильные настройки fusebit из-за некоторых сложностей при написании прошивки. Чтобы оживить его, я вставил его в розетку AVR Doctor и нажал кнопку START.Практически сразу же загорелся ЗЕЛЕНЫЙ светодиод, и «пациент» был вылечен. Так просто.

PCB, схемы и прошивка доступны здесь или здесь.

.Схема контактов микроконтроллера

ATMega8, конфигурация, особенности и техническое описание

Конфигурация контактов ATMEGA8

Контактный №

Имя контакта

Описание

Альтернативная функция

1

PC6 (СБРОС)

Pin6 PORTC

Вывод

по умолчанию используется как вывод сброса.Если запрограммирован предохранитель RSTDISBL, PC6 может использоваться как вывод ввода / вывода.

(Контроллер ВЫСОКОГО ВЫСОКОГО ВЫСОКОГО СБРОСА)

2

PD0 (RXD)

Pin0 из PORTD

RXD (входной контакт USART)

Интерфейс последовательной связи USART

[Может использоваться для программирования]

3

PD1 (TXD)

Pin1 PORTD

TXD (выходной контакт USART)

Интерфейс последовательной связи USART

[Может использоваться для программирования]

INT2 (вход внешнего прерывания 2)

4

PD2 (INT0)

Pin2 PORTD

Внешнее прерывание INT0

5

PD3 (INT1)

Pin3 PORTD

Внешнее прерывание INT1

6

PD4 (XCK / T0)

Pin4 PORTD

T0 (Вход внешнего счетчика Timer0)

XCK (ввод / вывод внешних часов USART)

7

VCC

8

GND

9

PB6 (XTAL1 / TOSC1)

Pin6 из PORTB

XTAL1 (вывод 1 генератора тактовой частоты или вход внешнего тактового сигнала)

TOSC1 (вывод 1 генератора таймера)

10

PB7 (XTAL2 / TOSC2)

Pin7 из PORTB

XTAL2 (вывод 2 генератора тактовой частоты)

TOSC2 (вывод 2 генератора таймера)

11

ПД5 (Т1)

Pin5 PORTD

T1 (Вход внешнего счетчика Timer1)

12

PD6 (AIN0)

Pin6 PORTD

AIN0 (Аналоговый компаратор, положительный I / P)

13

PD7 (AIN1)

Pin7 из PORTD

AIN1 (отрицательный I / P аналогового компаратора)

14

PB0 (ICP1)

Pin0 из PORTB

ICP1 (Вход захвата таймера / счетчика 1)

15

PB1 (OC1A)

Pin1 из PORTB

OC1A (Выход таймера / счетчика1, выход сравнения A)

16

PB2 (SS / OC1B)

Pin2 PORTB

SS (вход выбора ведомого SPI).Этот вывод низкий, когда контроллер действует как ведомый.

[Последовательный периферийный интерфейс (SPI) для программирования]

OC1B (Выход таймера / счетчика1, выход сравнения B)

17

PB3 (MOSI / OC2)

Pin3 PORTB

MOSI (главный выход, подчиненный вход).Когда контроллер действует как ведомый, данные принимаются на этот вывод. [Последовательный периферийный интерфейс (SPI) для программирования]

OC2 (Выход таймера / счетчика2, выход сравнения)

18

PB4 (MISO)

Pin4 PORTB

MISO (главный вход и выход подчиненного устройства).Когда контроллер действует как подчиненный, данные передаются этим контроллером мастеру через этот вывод.

[Последовательный периферийный интерфейс (SPI) для программирования]

19

PB5 (SCK)

Pin5 из PORTB

SCK (последовательные часы шины SPI).Это часы, совместно используемые этим контроллером и другой системой для точной передачи данных.

[Последовательный периферийный интерфейс (SPI) для программирования]

20

AVCC

Vcc для внутреннего преобразователя АЦП

21

AREF

Analog Reference Pin для АЦП

22

GND

ЗЕМЛЯ

23

PC0 (АЦП0)

Pin0 из PORTC

ADC0 (входной канал ADC 0)

24

PC1 (АЦП1)

Pin1 PORTC

ADC1 (входной канал АЦП 1)

25

ПК2 (АЦП2)

Pin2 PORTC

ADC2 (входной канал АЦП 2)

26

PC3 (ADC3)

Pin3 PORTC

ADC3 (входной канал ADC 3)

27

PC4 (ADC4 / SDA)

Pin4 PORTC

ADC4 (входной канал ADC 4)

SDA (линия ввода / вывода данных двухпроводной последовательной шины)

28

PC5 (ADC5 / SCL)

Pin5 PORTC

ADC5 (входной канал ADC 5)

SCL (Линия синхронизации двухпроводной последовательной шины)

Характеристики ATMEGA8

ATMEGA8 — Упрощенные функции

CPU

8-битный AVR

Количество контактов

28

Рабочее напряжение (В)

+2.7 В ДО +5,5 В (ATmega8L)

+4,5 В ДО +5,5 В (ATmega8) (+ 5,5 В является абсолютным максимумом)

Количество контактов ввода / вывода

23

Интерфейс связи

Главный / подчиненный последовательный интерфейс SPI (16,17,18,19 PINS) [Может использоваться для программирования этого контроллера]

Программируемый последовательный USART (2,3 PINS) [Может использоваться для программирования этого контроллера]

Двухпроводной последовательный интерфейс (27,28 контактов) [может использоваться для подключения периферийных устройств, таких как датчики и ЖК-дисплеи]

Интерфейс JTAG

Не доступен

Модуль АЦП

6 каналов, разрешение 10 бит АЦП

Модуль таймера

Два 8-битных счетчика, Один 16-битный счетчик [Всего три]

Аналоговые компараторы

1

Модуль ЦАП

Нет

ШИМ каналов

3

Внешний осциллятор

0-8 МГц для ATMEGA8L

0-16 МГц для ATMEGA8

Внутренний осциллятор

Калиброванный внутренний генератор, 0–8 МГц

Тип памяти программ

Вспышка

Программная память или флэш-память

8 Кбайт [10000 циклов записи / стирания]

Частота процессора (MIPS)

16 MIPS

RAM

1 Кбайт

EEPROM

512

Сторожевой таймер

Программируемый сторожевой таймер с отдельным встроенным генератором

Блокировка программы

Есть

Режимы энергосбережения

Шесть режимов [режим ожидания, шумоподавление АЦП, энергосбережение, отключение питания, режим ожидания и расширенный режим ожидания]

Рабочая температура

от -55 ° C до + 125 ° C (+125 — абсолютный максимум, -55 — абсолютный минимум)

Замены ATMEGA8

ATMEGA328P

Альтернативы ATMEGA8

ATMEGA16, ATMEGA32, ATMEGA8535

Где использовать микроконтроллер ATMEGA8

ATMEGA8 — это 28-контактный микроконтроллер AVR .Несмотря на то, что у нас есть много похожих микроконтроллеров, ATMEGA8 популярен, потому что это один из самых дешевых микроконтроллеров и предоставляет множество функций на меньших контактах. Благодаря программной памяти 8 Кбайт приложение ATMEGA8 очень универсально. С различными режимами ЭНЕРГОСБЕРЕЖЕНИЯ он может работать в МОБИЛЬНЫХ ВСТРОЕННЫХ СИСТЕМАХ. Благодаря компактным размерам его можно разместить на многих небольших досках. Благодаря сторожевому таймеру для сброса при ошибке его можно использовать в системах с минимальным вмешательством человека. Эти функции, объединенные в одном контроллере, делают ATMEGA8 популярным.

Как использовать микроконтроллер ATMEGA8

Использование ATMega8 аналогично использованию других микроконтроллеров ATMega, таких как ATMega32. Точно так же микроконтроллер необходимо запрограммировать и добавить соответствующие периферийные устройства для получения выходного сигнала. Без программирования контроллер — пустая фишка.

Для работы ATMEGA8 сначала необходимо записать соответствующий программный файл во флэш-память ATMEGA8 . После сброса этого программного кода контроллер выполняет этот код и дает соответствующий ответ.

Весь процесс использования ATMEGA8 выглядит следующим образом:

  1. Перечислите функции, которые должны выполняться ATMEGA8.
  2. Напишите функции на языке программирования в программах IDE. Вы можете бесплатно скачать программу IDE. Программа IDE для контроллеров AVR — ATMEL STUDIO. Ссылка на ATMELSTUDIO приведена ниже.

(обычно Atmel Studio 6.0 для Windows7 [http://atmel-studio.software.informer.com/6.0/],

Atmel Studio 7 для Windows10 [https: // www.microchip.com/avr-support/atmel-studio-7])

(помните, что для этих IDE программа должна быть написана на языке «C»)

  1. После написания нужных программ скомпилируйте для устранения ошибок с помощью IDE.
  2. Заставить среду IDE сгенерировать HEX-файл для написанной программы.
  3. Выберите устройство программирования (обычно программатор SPI, предназначенный для контроллеров AVR), которое устанавливает связь между ПК и ATMEGA8.
  4. Запустите программу записи файлов HEX, которая предоставляется для выбранного устройства программирования.
  5. Выберите соответствующий шестнадцатеричный файл программы в SPI или другом программном обеспечении.
  6. Запишите шестнадцатеричный файл записанной программы во флэш-память ATMEGA8, используя эту программу.
  7. Отключите программатор, подключите соответствующие периферийные устройства для контроллера и запустите систему.

Приложения

Есть сотни приложений для ATMEGA8.

  • Промышленные системы управления.
  • SMPS и системы регулирования мощности.
  • Измерение аналоговых сигналов и манипуляции с ними.
  • Встроенные системы, такие как кофеварка, торговый автомат.
  • Системы управления двигателями.
  • Дисплейные единицы.
  • Система периферийного интерфейса.

2D Модель

Все размеры указаны в миллиметрах.

ATmega8 Microcontroller Dimensions

.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *