xtal1 xtal2 что такое

Фьюз (Fuse) биты микроконтроллеров

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

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

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

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

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

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое
Фьюз биты микрокотроллеров AVR

CKSEL

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

С этими битами нужно быть осторожнее можно к примеру можно выставит биты таким образом что МК будет работать от внешнего генератора который подключается на ножки XTAL1 и XTAL2. И в случае его отсутствия, микроконтроллер станет «заблокирован»

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

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

CKOPT

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

OCDEN

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

SELFPRGEN

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

BODLEVEL

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

BODEN

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

BOOTRST

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

RSTDISBL

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

BOOTSZ

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

EESAVE

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

SPIEN

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

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

Таблица фьюз битов микроконтроллеров AVR

Фьюз битСемейство
ATtiny
Семейство
ATmega
231325/
45/
85
1326261/
461/
861
81648/
88/
168
12816932985158535
RESERVEDM103С+S8515СS8535С
OCDEN++++
JTAGEN++++
SELFPRGEN+++++
DWEN++++++
EESAVE+++++++++++++
SPIEN+++++++++++++
WDTON+++++++++++
BODLEVEL2+++++
BODLEVEL1+++++++
BODLEVEL0+++BODLEVEL+BODLEVELBODLEVEL+BODLEVEL++BODLEVELBODLEVEL
BODEN++++++
RSTDISBL++++++++
CKDIV8+++++++
CKOUT++++++
SUT1+++++++++++++
SUT0+++++++++++++
CKOPT++++++
CKSEL3++++++++++++
CKSEL2++++++++++++
CKSEL1+++++++++++++
CKSEL0+++++++++++++
PLLCK+
BOOTRST++++++++
BOOTSZ1++++++++
BOOTSZ0++++++++

Калькулятор фьюз битов микроконтроллеров

Калькулятор фьюзов AVR помогает быстро установить нужные биты, скачать офлайн версию программы можно по ссылке ниже.

Источник

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

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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-памяти, выделенной под бутлоадер.
Вот и добрались до младшего байта.

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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-цепочкой

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

xtal1 xtal2 что такое. Смотреть фото xtal1 xtal2 что такое. Смотреть картинку xtal1 xtal2 что такое. Картинка про xtal1 xtal2 что такое. Фото xtal1 xtal2 что такое

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

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

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

Originally posted 2019-08-28 22:41:49. Republished by Blog Post Promoter

Источник

Чебоксары

Кроме ячеек защиты памяти микросхемы имеют, так называемые, конфигурационные ячейки. Дело в том, что все контроллеры AVR имеют множество режимов работы. Некоторые из режимов невозможно переключить программным путем, используя внутренние регистры управления. Например, в некоторых моделях микроконтроллеров синхронизация может осуществляться как от внутреннего генератора с внешним резонатором, так и от автономного внутреннего генератора, не требующего внешних цепей. В таких микросхемах два освободившихся контакта, используемые обычно для подключения внешнего кварцевого (керамического) резонатора можно использовать как дополнительные линии порта ввода/вывода. Кроме того, почти все микросхемы AVR не требуют обязательного наличия внешнего сигнала сброса. Поэтому и этот, третий контакт так же можно переключить в режим, когда он будет выполнять роль дополнительной линии порта ввода/вывода. Естественно, что выбор этих режимов должен производиться еще до подключения микросхемы к схеме налаживаемого устройства. Для переключения режимов фирма Atmel ввела в свои микроконтроллеры новый настроечный элемент: программируемые переключатели режимов.

Эти переключатели выполнены в виде специальных ячеек, которые, в совокупности с ячейками защиты, являются еще одним видом перепрограммируемой энергонезависимой памяти. Все конфигурационные ячейки объединяются в байты. Различные микросхемы AVR имеют от одного до трех байтов конфигурационных ячеек. Каждый конфигурационный переключатель предназначен для того, что бы изменять какой либо один параметр или режим работы микроконтроллера. В документации каждый такой переключатель имеет свое определенное имя. Некоторые биты конфигурационных ячеек объединены в группы. Например, группа из четырех битов CKSEL 3…0 позволяет выбирать режимы синхронизации. Разные модели микроконтроллеров имеют различные наборы конфигурационных ячеек. По терминологии фирмы Atmel конфигурационные ячейки называются Fuse Bits. Поэтому для удобства и краткости эти ячейки часто называют «Фусами», или Fuse-ячейками.

Еще одна группа ячеек – это ячейки идентификации. Любой микроконтроллер имеет три ячейки идентификации. Эти ячейки доступны только для чтения и содержат информацию о производителе и модели микроконтроллера.

FUSE переключатели CKSEL – в основном определяют режимы работы тактового генератора. Тактовый генератор вырабатывает импульсы для синхронизации работы всех узлов микроконтроллера. Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера и указывается Atmel в его характеристиках, хотя практически любой AVR-микроконтроллер с заявленной рабочей частотой, например, в 10 МГц при комнатной температуре легко может быть «разогнан» до 12 МГц и выше.

Если вам не важна точность выдержки тактовой частоты, если для вашего устройства не критично, если тактовая частота будет «плавать» в небольших пределах, то выбирайте режим в котором в качестве частотозадающей цепи используется внутренняя или внешняя RC цепочка. Это дешевле кварца. Особенно, если использовать внутреннюю RC цепь. Внешняя цепочка используется если в режимах работы отсутствует нужная вам тактовая частота.

FUSE переключатель EESAVE предназначен для облегчения процесса отладки программ. Он влияет на процесс стирания памяти. По умолчанию бит запрограммирован.(равен 0). И поэтому когда от программатора на микроконтроллер поступает команда «Стереть кристалл», стираются сразу и FLASH память (память программ) и EEPROM (энергонезависимая память данных). Это удобно в процессе производства неких партий одинаковых устройств на микроконтроллере. Можно сразу стереть всю память и прошить и программу и данные.

В этом случае программа загрузчика обычно делается таким образом, что она сама проверяет необходимость перезаписи основной программы. Например, запросив у внешнего источника наличие новой версии. Если перезапись не требуется, загрузчик передает управление основной программе. Именно так устроен микроконтроллерный комплект проекта Ардуино. Этот интересный проект как раз использует режим самопрограммирования. Предназначен он для начинающих констукторов. Авторы проекта даже утверждают, что используя Ардуино любой желающий, даже очень далекий от микроконтроллерной техники, не знакомый с паяльником и измерительными приборами может создать и использовать свое собственное микроконтроллерное устройство. Для этого он просто покупает один из вариантов модуля Ардуино, подключает его непосредственно к любому компьютеру. При этом не нужно никаких программаторов. Модуль подключается либо через последовательный (COM) порт, либо USB. Небольшая бесплатная программа, которую легко скачать с сайта проекта попожет создать простую программу и прошить ее в микроконтроллер. А помогает в этом программа-загрузчик заранее прошитая в модуль Ардуино при его производстве. Она принимает разработанную вами программу из компьютера по последовательному порту или через USB и записывает в область основной программы.

Порт тестирования (TAP — Test Access Port) представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO. Иногда еще TRST.

Функциональное назначение этих линий:

TDI (test data input — вход тестовых данных) — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
TDO (test data output — выход тестовых данных) — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
TCK (test clock — тестовое тактирование) — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц[источник?];
TMS (test mode select — выбор режима тестирования) — обеспечивает переход схемы в(из) режим(а) тестирования и переключение между разными режимами тестирования.
В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путем подачи определённой последовательности сигналов на вход TMS.

Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение

Если FUSE-переключатель разрешения работы системы debug WIRE ( DWEN ) запрограммирован (т. е. равен нулю), а биты блокировки микросхемы LB1 и LB2 не запрограммированы, включается система отладки debugWIRE.

Вывод RESET в этом режиме представляет собой двунаправленную открытую шину ввода—вывода (с открытым стоком) с подключенным внутренним резистором нагрузки. Эта шина становится шлюзом для обмена информации между отлаживаемой микросхемой и схемой сопряжения с компьютером (эмулятором). Посредством этого интерфейса работа микросхемы берется под контроль отладочной следы, например AVR Studio®. Среда автоматически запускает программу на выполнение, в момент остановки программы получает значение всех его регистров. Система поддерживает автоматическую простановку точек останова.

Режим debugWIRE поддерживает программные точки останова, которые формируются при помощи специальной команды Break, входящей в систему команд AVR. При создании точки останова в среде программирования AVR Studio® в программный код, предназначенной для отладки программы автоматически в нужном месте вписывается команда BREAK. Затем измененная программа, содержащая в нужных местах команды BREAK, помещается в программную память микроконтроллера (перепрошивается). При этом команда, заменяемая на BREAK, сохраняется в памяти компьютера.Контроллер начинает выполнять программу и приостанавливается в том месте, где стоит BREAK. По команде BREAK микроконтроллер останавливается и посылает в AVR Studio® сигнал подтверждения останова.Получив эту команду AVR Studio® считывает значение всех регистров и отображает из в привычном нам виде.

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

Особенностью данной технологии является то, что память программ должна перепрограммироваться каждый раз, когда изменяется размещение точек останова. Среда AVR Studio делает это автоматически посредством debugWIRE-интерфейса. Использование программных точек останова уменьшает возможное количество циклов записи/стирания для программной памяти микроконтроллера. Поэтому при отладке программ подобным способом нужно постоянно следить, чтобы отладчик не израсходовал все ресурсы вашей микросхемы.

Вывод микросхемы, обеспечивающий режим debugWIRE (dW), физически объединен с входом внешнего сброса ( RESET ). Поэтому при использовании режима debugWIRE невозможна если вам необходим внешний сброс.

Система debugWIRE позволяет программе в процессе отладки точно выполнять все функции ввода—вывода и соблюдать все временные соотношения. То есть скорость выполнения программы в режиме отладки не отличается от скорости в реальном режиме работы. Но в тот момент, когда центральный процессор остановлен, необходимо соблюдать осторожность при обращении через отладчик (AVR Studio) к различным регистрам ввода—вывода, чтобы не нарушить работу системы. Подробное описание всех правил работы с регистрами в режиме debugWIRE можно найти в специальной документации по этому режиму. Ее можно найти на сайте фирмы Atmel.

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

Среди любителей микроконтроллерной техники бытует мнение, что при неправильном программировании можно микросхему «убить». То есть повредить безвозвратно. Такое убеждение связано с программированием некоторых конфигурационных (Fuse) переключателей. А точнее с программированием переключателей CKSEL, определяющих режимы работы тактового генератора.

Заводская установка выбрана таким образом, что новая микросхема работает в режиме внутренней синхронизации. Если вы используете последовательное программирование, то вам достаточно лишь подать питание на микросхему и подключить ее к программатору по последовательному каналу. Однако помните: при отсутствии синхросигнала программирование микросхемы в последовательном режиме невозможно! Если в процессе программирования конфигурационных ячеек вы, случайно либо намеренно измените состояние ячеек CKSEL3. 0, вы переведете микросхему в один из режимов, требующих либо наличия внешнего кварцевого (пьезо) резонатора, либо внешней RC-цепочки, либо внешнего тактового генератора. При этом, если требуемые внешние цепи отсутствуют, тактовые колебания сорвутся и дальнейшее программирование микросхемы и изменение состояния конфигурационных ячеек станет невозможным. Но не волнуйтесь! Микросхема не вышла из строя. Если микросхема перестала отзываться на команды программатора, вам придется вспомнить, какое значение вы записали в переключатели CKSEL3. 0 в последнем сеансе изменения конфигурационных ячеек. Обычно бывает так: Вы забыли вообще установить их значение и нажали кнопку » Write». В этом случае все «птички» отсутствовали и во все четыре ячейки CKSEL3. 0 были записаны единицы. Это соответствует внешнему кварцевому резонатору. Подключите к выводам XTAL0 и XTAL1 кварцевый резонатор и согласующие конденсаторы в соответствии с технической документацией. После этого управляемость микросхемой восстановится. Если вы записали в ячейки CKSEL3. 0 другие значения, то вам придется подключить либо внешнюю RC-цепочку, либо внешний генератор. В зависимости от того, в какой режим вы случайно перевели вашу микросхему.

Источник

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

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