пятница, 8 февраля 2013 г.

конфигурация таймер atmega8

Так, с теоретической частью более - менее понятно, можно приступать к практике. Bascom AVR и для этой задачи имеет встроеные средства. И что интересно, вся конфигурация осуществляется при помощи одной команды:

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

Я вот на что хочу обратить внимание: не все таймеры способны работать в асинхронном режиме. Но не это самое печальное. К сожалению, не все микроконтроллеры имеют таймеры, поддерживающие асинхронный режим. Например, у Attiny2313 такой возможности нет.

Заметки на полях:

Таким образом, динамическую индикацию мы запустим на частоте 4 MHz от внутреннего генератора, а отсчет времени будет выполнен на внешнем часовом кварце.

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

Теперь немного несложных расчетов: при предделителе 128 и частоте кварцевого резонатора 32768 Hz таймер будет увеличивать значение счетного регистра каждые 128 / 32768 = 3,90625 мс. Следовательно, переполняться таймер будет каждые 3,90625 * 256 = 1000 мс = 1 с.

По сути своей, это обычный 8-ми битный таймер / счетчик. Но обратите внимание, у этого таймера имеется свой собственный тактовый генератор, с выводами TOSC1 и TOSC2. Вот как раз к этим выводам и подключается низкочастотный кварцевый резонатор.

(структурная схема таймера / счетчика Т2 из даташита)

Разумеется, на микроконтроллере реализовать подобное не составит особого труда. И для начала немного разберемся с принципом работы таймера T2 микроконтроллера Atmega8:

Почему этот кварц называется часовым, я думаю, никому объяснять не надо. Но первое что бросается в глаза - довольно "странное" значение частоты. Впрочем, этому есть вполне логичное объяснение: 32768 это два в пятнадцатой степени, и используя какой-нибудь копеечный 15-ти разрядный двоичный счетчик типа К176ИЕ5 (CD4033), можно запросто получить генератор секундных импульсов.

Знакомимся, часовой кварц:

На индикации мы заострять внимание не будем (она подробно расcмотрена ), назначение кнопок понятно, они будут изменять соответствующие значения, а вот на кварцевом резонаторе ZQ1 мы остановимся подробнее.

(нажмите на схему, чтобы увеличить)

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

В радиолюбительских конструкциях довольно часто возникает потребность в отсчете времени. И в принципе, задача эта легко решается при помощи специальных микросхем RTC (Real Time Clock - Часы Реального Времени). Например, распроcтраненная микросхема DS1307 способна и время отсчитать, и календарь содержит, с учетом високосных годов, да и резервное питание поддерживает. И все бы хорошо, да только стоимость подобных микросхем порой граничит со стоимостью самого микроконтроллера. Да и дополнительный корпус на плате оптимизма не прибавляет.

Опубликовано: 27.05.2012

Автор: Михаил (edm2007)

Асинхронный режим работы таймера. Простейшие часы на микроконтроллере AVR.

Электронных Дел Мастер

Комментариев нет:

Отправить комментарий