Xtal1 xtal2 что такое

Как тактировать AVR

Введение

Прежде чем разбирать, какие бывают источники тактирования, чем они отличаются, их плюсы и минусы и тд, нам нужно определиться, что вообще означает словосочетание тактовая частота. Да и вообще, что означает термин «частота»?

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

Какие можно привести примеры подобных колебаний? Это могут быть часы с кукушкой, маятник, качели

Xtal1 xtal2 что такое. %D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20%D0%BA%D0%BE%D0%BB%D0%B5%D0%B1%D0%B0%D0%BD%D0%B8%D0%B9%20%D0%B2%20%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20%D0%BA%D0%BE%D0%BB%D0%B5%D0%B1%D0%B0%D0%BD%D0%B8%D0%B9%20%D0%B2%20%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5. картинка Xtal1 xtal2 что такое. картинка %D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20%D0%BA%D0%BE%D0%BB%D0%B5%D0%B1%D0%B0%D0%BD%D0%B8%D0%B9%20%D0%B2%20%D0%BF%D1%80%D0%B8%D1%80%D0%BE%D0%B4%D0%B5

и даже круги на воде от камушка, который мы кинули в воду:

Xtal1 xtal2 что такое. %D0%BA%D1%80%D1%83%D0%B3%D0%B8%20%D0%BD%D0%B0%20%D0%B2%D0%BE%D0%B4%D0%B5. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%BA%D1%80%D1%83%D0%B3%D0%B8%20%D0%BD%D0%B0%20%D0%B2%D0%BE%D0%B4%D0%B5. картинка Xtal1 xtal2 что такое. картинка %D0%BA%D1%80%D1%83%D0%B3%D0%B8%20%D0%BD%D0%B0%20%D0%B2%D0%BE%D0%B4%D0%B5

Более подробно про частоту и период можно прочитать в статье Электрические сигналы и их виды.

Так, теперь ближе к делу. Что же такое тактовая частота?

Любая операция МК или его мегакрутого брата-микропроцессора состоит из отдельных элементарных действий, то есть тактов.

Получается, тактовая частота — это сколько тактов в секунду может выполнить наш МК или процессор. Отсюда напрашивается вывод, чем больше тактовая частота, тем больше количество операций за секунду может сделать МК или микропроцессор.

В МК AVR тактовая частота в основном измеряется в МегаГерцах. Как помните, приставка «Мега» означает один миллион. Если у нашего МК тактовая частота 8 МегаГерц, то это означает, что он может выполнять 8 000 000 тактов в секунду, или, грубо говоря, около 8 000 000 различных операций в секунду ;-). Пусть вас не пугает это число, потому что ваши настольные компьютеры, телефоны и планшеты уже работают на частоте в несколько ГигаГерц. Гига — это уже миллиард! Например, если частота процессора вашего компа 2 ГГц, это означает, что он может произвести 2 миллиарда операций в секунду). Мало? Как оказалось на практике, уже стает мало)).

Вернемся к нашим баранам), а именно, к тактовой частоте. Допустим, мы имеем МК Tiny 2313, сконфигурированный на работу 8 МегаГерц и который может выполнять при этом 8 миллионов тактов в секунду. Каждая операция процессора состоит из тактов. А когда процессор выполняет нашу программу, записанную во Flash память, он тоже производит определенные операции которые указаны в программе. Граничная частота МК Tiny 2313, как говорит нам Datasheet, довольно высокая и составляет аж целых 20 МГц! Это довольно много по меркам МК

Xtal1 xtal2 что такое. %D1%82%D0%B8%D0%BD%D0%B8%20%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D1%82%D0%B8%D0%BD%D0%B8%20%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8. картинка Xtal1 xtal2 что такое. картинка %D1%82%D0%B8%D0%BD%D0%B8%20%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8

Правда, это только с применением внешнего кварцевого резонатора.

Кварцевый резонатор, называемый часто просто кварц, может выглядеть по-разному:

Xtal1 xtal2 что такое. kvarc. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-kvarc. картинка Xtal1 xtal2 что такое. картинка kvarc

На схемах он обозначается так:

Xtal1 xtal2 что такое. %D0%BA%D0%B2%D0%B0%D1%80%D1%86. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%BA%D0%B2%D0%B0%D1%80%D1%86. картинка Xtal1 xtal2 что такое. картинка %D0%BA%D0%B2%D0%B0%D1%80%D1%86

На кварце часто указана частота, на которой он работает. Ниже на фото мы видим кварц, который работает на частоте 8 МегаГерц (8.000MHz)

Xtal1 xtal2 что такое. %D0%9A%D0%B2%D0%B0%D1%80%D1%86%20%D1%84%D0%BE%D1%82%D0%BE. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%9A%D0%B2%D0%B0%D1%80%D1%86%20%D1%84%D0%BE%D1%82%D0%BE. картинка Xtal1 xtal2 что такое. картинка %D0%9A%D0%B2%D0%B0%D1%80%D1%86%20%D1%84%D0%BE%D1%82%D0%BE

В большинстве случаев стараются указывать частоту на корпусе кварца. Если у вас есть какое-либо ненужное цифровое устройство, вы вполне можете выпаять кварц на нужную частоту прямо оттуда. Но в большинстве случаев в этом нет необходимости, так как новый кварцевый резонатор в радиомагазине стоит порядка 20-30 рублей.

Есть один нюанс, любезно предоставленный нам производителями микроконтроллера. Если нам нужно, чтобы программа выполнялась медленнее в восемь раз, мы можем этого добиться даже не переписывая программу и не выставляя задержки по новой, то есть в 8 раз длиннее. Нам достаточно уменьшить частоту МК в восемь раз и программа будет для нас выполняться медленнее в восемь раз. Забегая вперед, скажу, что сделать это мы можем очень легко, выставив всего одну галочку при программировании фьюз-битов, в бите CKDIV 8. Также легко мы можем отменить все наши изменения.

Xtal1 xtal2 что такое. ckdiv8. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-ckdiv8. картинка Xtal1 xtal2 что такое. картинка ckdiv8

Этот способ мы использовали при прошивке МК в прошлой статье.

Существуют 4 варианта, которые применяются для тактирования МК:

— тактирование от внутреннего RC-генератора

— тактирование от внешнего кварца

— тактирование от внешнего генератора

— тактирование от RC-цепочки

Тактирование от внутреннего RC-генератора

На тактирование от внутреннего RC генератора МК настроен сразу с завода и не требует внешних деталей. Это означает, что с помощью МК, питания +5 Вольт и одного светодиода с резистором, мы уже можем заставить наш МК работать и выполнять программу без всяких сложных настроек и дополнительных деталей, задав скорость программно, путем выставления задержки «Delay». Имейте ввиду, что встроенный RC-генератор может работать только на четырех частотах: 1, 2, 4 или 8 МегаГерц, поэтому если вам требуется какая-нибудь эксклюзивная частота, типа 1 638 000 Герц, то такой способ не прокатит.

Тактирование от внешнего кварца

Тактирование от внешнего кварца чуточку сложнее. Как же нам подключить внешний кварц? Для начала нам надо найти цоколевку МК, которую мы собираемся тактировать от внешнего кварца. Пусть в нашем примере это будет Тiny 2313. Чтобы подключить внешний кварц, достаточно найти ножки микросхемы с названием «XTAL1» и «XTAL2».

Xtal1 xtal2 что такое. %D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D1%8B%20%D0%B4%D0%BB%D1%8F%20%D1%82%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%BC%D0%BA. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D1%8B%20%D0%B4%D0%BB%D1%8F%20%D1%82%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%BC%D0%BA. картинка Xtal1 xtal2 что такое. картинка %D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D1%8B%20%D0%B4%D0%BB%D1%8F%20%D1%82%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%BC%D0%BA

Потом подсоединить кварц вот по такой схеме:

Xtal1 xtal2 что такое. %D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0. картинка Xtal1 xtal2 что такое. картинка %D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0

Потом при прошивке надо правильно выставить фьюзы. О них мы с вами поговорим в следующих статьях.

Xtal1 xtal2 что такое. %D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0%20%D0%BD%D0%B0%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%201. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0%20%D0%BD%D0%B0%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%201. картинка Xtal1 xtal2 что такое. картинка %D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0%20%D0%BD%D0%B0%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%201

Xtal1 xtal2 что такое. %D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0%20%D0%BD%D0%B0%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%202. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0%20%D0%BD%D0%B0%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%202. картинка Xtal1 xtal2 что такое. картинка %D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20%D0%BA%D0%B2%D0%B0%D1%80%D1%86%D0%B0%20%D0%BD%D0%B0%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%202

Как видно на схеме подключения кварца к МК, номинал нужных нам конденсаторов должен составлять 15-22 пикофарада. Расшифровать номинал таких конденсаторов, можно с помощью этого рисунка:

Xtal1 xtal2 что такое. %D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%20%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%80%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%BA%D0%BE%D0%BD%D0%B4%D0%B5%D0%BD%D1%81%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%B2. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%20%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%80%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%BA%D0%BE%D0%BD%D0%B4%D0%B5%D0%BD%D1%81%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%B2. картинка Xtal1 xtal2 что такое. картинка %D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%20%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%80%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%BA%D0%BE%D0%BD%D0%B4%D0%B5%D0%BD%D1%81%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%B2

Тактирование от внешнего генератора

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

Xtal1 xtal2 что такое. %D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D1%82%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D1%82%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0. картинка Xtal1 xtal2 что такое. картинка %D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D1%82%20%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0

Тактирование от RC-цепи

Тактирование от RC-цепочки осуществляется вот по такой схеме:

Xtal1 xtal2 что такое. RC%20%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B0%20%D0%B2%20%D0%BC%D0%BA. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-RC%20%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B0%20%D0%B2%20%D0%BC%D0%BA. картинка Xtal1 xtal2 что такое. картинка RC%20%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B0%20%D0%B2%20%D0%BC%D0%BA

Здесь мы берем конденсатор емкостью не менее 22 пФ, а резистор от 10 Ом и до 100 КилоОм. По простой формуле можно с легкостью рассчитать частоту, на которой будет тактироваться наш МК:

Xtal1 xtal2 что такое. clock avr rc. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-clock avr rc. картинка Xtal1 xtal2 что такое. картинка clock avr rc

R — сопротивление резистора, Ом.

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

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

Итак, как мы помним из предыдущей статьи, некоторые ножки имеют двойное назначение, и помимо того, что могут использоваться как порты ввода-вывода, также используются для обеспечения расширения функций МК. Действительно, если МК сконфигурирован для работы от внутреннего RC-генератора, вам достаточно подать на него питание +5 Вольт и землю, и микроконтроллер включится и начнет выполнять программу. Но если вы выпаяли микроконтроллер из какого-либо устройства и он должен был в нем тактироваться от кварца, или по ошибке выставляя биты конфигурации, вы выставили тактирование от кварца, МК перестанет у вас быть виден в программе оболочке, и не сможет выполнять программу, даже если вы подадите на него +5 Вольт и землю.

Что же делать в таком случае? В первую очередь не паниковать) и собрать схему с тактированием от кварца, и тогда мы сделаем видимым наш МК, который вдруг может быть переставать у вас определяться оболочкой программатора и работать в схеме, если вы ошибочно переведете МК в режим тактирования от кварца, путем выставления определенных фьюзов. Об этом мы как-нибудь еще поговорим 😉

Источник

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

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

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

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

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

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

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

Xtal1 xtal2 что такое. Fuse. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-Fuse. картинка Xtal1 xtal2 что такое. картинка Fuse
Фьюз биты микрокотроллеров 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 можно считать одной из самых сильных сторон архитектуры. Каждая линия допускает независимое управление, имеет симметричные нагрузочные характеристики и номинальные втекающий и вытекающий токи до 20…25 мА (максимальный до 40 мА) с просадкой напряжения не более 0.7 В.

Xtal1 xtal2 что такое. book12 1. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-book12 1. картинка Xtal1 xtal2 что такое. картинка book12 1
Рис.11 Расположение выводов ATmega8

Большинство выводов AVR-микроконтроллеров имеют также альтернативные назначения. Это аналоговые линии компаратора и АЦП, цифровые модулей SPI, TWI, USART и т.д. Описание выводов микроконтроллера ATmega8 находится в табл.6, а схема их расположения на рис.11.

Xtal1 xtal2 что такое. book12 2. Xtal1 xtal2 что такое фото. Xtal1 xtal2 что такое-book12 2. картинка Xtal1 xtal2 что такое. картинка book12 2
Рис.12 Внутрення схема линии порта ввода-вывода

Упрощенная внутренняя схема линии порта ввода-вывода приведена на рис.12. Каждым портом микроконтроллера управляют 3 РВВ. Это DDRx, PORTx и PINx (x – название порта: A,B,C и т.д.). Регистры портов A,B,C,D всех моделей находятся в первой половине адресного пространства ввода-вывода и поэтому допускают прямые операции над отдельными их битами. В цифровых портах AVR реализована истинная функциональность “чтение-модификация-запись”.

Регистр DDRx отвечает за направление передачи данных. Запись лог.1 в разряды DDRx настраивает линии на вывод, а запись лог.0, соответственно, на ввод. Например:

Регистр PORTx имеет двойное предназначение. Если линии порта настроены на вывод, то содержимое PORTx определяет логическое состояние выводов порта. Для линий настроенных на ввод значение PORTx определяет состояние внутреннего подтягивающего (pull-up) резистора к шине питания. В этом случае при уровне лог.1 в разрядах PORTx резистор подключен, а при уровне лог.0 – отключен и линии переведены в высокоимпедансное состояние (z-состояние):

Регистр PINx предназначен для считывания уровней сигнала с выводов микроконтроллера. Естественно, что необходимость в этом существует только для линий настроенных на ввод (для линий настроенных на вывод содержимое PINx повторяет состояние выходного регистра PORTx). Разряды PINx не оказывают ни какого влияния на состояние выводов, а сам регистр доступен только для чтения. Логический уровень входной линии фиксируется в триггере-защелке в каждом цикле тактовой частоты. Таким образом, реальное значение сигнала при считывании может иметь отставание порядка 0.5…1.5 машинных циклов. Пример использования:

У микроконтроллеров AVR имеется возможность управлять pull-up резисторами сразу на всех его выводах. За это свойство отвечает бит PUD из РВВ SFIOR либо MCUCR. При установке разряда PUD запрещается подключение всех резисторов. При PUD=0 (значение после сброса) состояние внутренних резисторов определяется состоянием регистра PORTx.

Различные возможности конфигурации линий портов ввода-вывода AVR приведены в табл.7. На время спящего режима (после выполнения команды sleep) входной буфер порта отключается.

При использовании выводов микроконтроллера по их альтернативному назначению, может понадобится вручную сконфигурировать линии. Так, например, в случае применения компаратора, АЦП, внешних прерываний соответствующие линии должны быть переведены в z-состояние, а для ШИМ-выводов таймеров счетчиков и выходных сигналов других модулей линии должны быть настроены на вывод.

Табл.6. Описание выводов модели ATmega8(L):

Номер вывода в корпусе DIP-28

Номер вывода в корпусах
TQFP-32 и MLF-32

Источник

Чебоксары

Кроме ячеек защиты памяти микросхемы имеют, так называемые, конфигурационные ячейки. Дело в том, что все контроллеры 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 не будет опубликован. Обязательные поля помечены *