Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС (Влада).docx
Скачиваний:
104
Добавлен:
05.05.2021
Размер:
4.89 Mб
Скачать
  1. Внешний кварцевый резонатор

  • максимальная поддерживаемая частота – 16 МГц. Помним, что энергопотребление микроконтроллера значительно возрастает с увеличением рабочей частоты

  • для подключения используются специальные выводы – XTAL1 и XTAL2

  • также для подключения используются дополнительные конденсаторы емкостью в 15 – 30 пФ, в зависимости от частоты

Пример подключения кварцевого резонатора приведен на рисунке 1.

Рисунок 1 – Схемы тактирования микроконтроллера

  1. Внешний генератор на RC-цепочке (вместо резонатора)

  • вариант, нетребовательный к точности задаваемой системной частоты

  • для подключения используются те же самые выводы, что и в предыдущем случае

  • тактовая частота, которую даёт такая RC-цепочка, приблизительно описывается следующим выражением:

f = 1/3RC

  • емкость конденсатора RC-цепочки должна быть не ниже 22пФ

  • также, с помощью фьюз-бита CKOPT (Бит CKOPT задает размах тактового сигнала. Т.е. амплитуду колебаний на выходе с кварца) мы можем подключить между выводом XTAL1 и землёй внутренний конденсатор емкостью 36 пФ, что позволяет избавиться от внешнего конденсатора

  1. Внешний генератор

  • подключаем выход генератора к выводу XTAL1

  • подобный способ тактирования микроконтроллера обеспечивает максимальную точность (+)

  • подобные генераторы имеют достаточно высокую стоимость (-)

  • Для подключения часового кварца используются отдельные выводы TOSC1 и TOSC2, причём использование дополнительных внешних конденсаторов не требуется (рис. 2).

Рисунок 2 – Альтернативные схемы тактирования микроконтроллера

Для некоторых приложений (например, часы) нам может понадобиться низкочастотный кварц на 32,768 кГц. 16-битный таймер может считать до 65536 тиков, а частота часового кварца составляет половину этого значения. С помощью такого кварца можно с высокой точностью отсчитывать секундные интервалы.

Регистры, определяющие работу таймера.

В Attiny104 таймер только один: 16-битный. Все примеры приводятся для этого таймера

Основные управляющие регистры

1) TCCRxn (Timer/Counter Control Register) – определяет: значение коэффициента предделителя; режим работы таймера.

Предделитель

Тактовые импульсы нашего микроконтроллера перед тем, как они попадут в счётный регистр таймера, можно пропустить через предделитель с фиксированными значениями: 8; 32; 64; 128; 256 и 1024.

За предделитель отвечают биты: CSn(Clock Select), которые как раз и определяют коэффициент деления тактовых импульсов микроконтроллера.

Режим работы таймера T1 – определяется состоянием битов WGMn

Основные режимы работы

Режим Normal

  • наиболее простой режим работы таймеров

  • единственный режим в младших моделях семейства

  • счетный регистр функционирует как обычный суммирующий счетчик (просто считает до 2n, а вернее от 0 до (2n -1)).

  • в том же такте сигнала, в котором обнуляется счетный регистр TCNTn, устанавливается в «1» флаг переполнения счетного регистра TOVn (Timer Overflow)

  • при равенстве счетного регистра и регистра сравнения устанавливается флаг прерывания OCFn и, если разряд OCIEn регистра 

TIMSK установлен в «1», генерируется соответствующее прерывание

  • наряду с установкой флага при равенстве счетного регистра и регистра сравнения может изменяться состояние вывода OC0x микроконтроллера. Это определяется разрядами COMn регистра TCCRxn

Режим CTC (сброс при совпадении). 

  • счетный регистр функционирует как обычный суммирующий счетчик

  • (НО) максимально возможное значение счетного регистра и разрешающая способность счетчика определяется регистром сравнения OCR (считает до значения, которое указано в регистре сравнения)

  • после достижения значения, записанного в регистре сравнения, счет продолжается с 0. В том же такте сигнала, в котором обнуляется счетный регистр, устанавливается флаг прерывания TOV1 регистра TIFR

  • при достижении счетчиком максимального значения устанавливается флаг OCF0x регистра TIFR.

2) TCNT1 – счетный регистр – в нём накапливаются тактовые импульсы.

Поскольку используем 16-битный таймер, его счётный регистр по сути делится на два регистра – младший (TCNT1L) и старший (TCNT1H).

ЗАПИСЬ сначала в СТАРШИЙ. ЧТЕНИЕ сначала из МЛАДШЕГО.

Запись в старший регистр (TCNTxH) ведется вначале в регистр TEMP. Это служебный регистр, и для пользователя он недоступен. Затем в регистр TCNTxL записывается младший байт. В этот момент в реальный TCNTxH заносится ранее записанное (автоматически) в регистр TEMP значение. Получается, что два байта, старший и младший, записываются одновременно. Также рекомендуется перед записью запретить прерывания:

CLI                                          // Запрещаем прерывания

OUT   TCNT1H, R16             //Старший байт записан в регистр TEMP

OUT   TCNT1L, R17              // Запись сразу в обе половинки

SEI                                          // Разрешаем прерывания

Источники прерываний таймера

Как только происходит переполнение счетного регистра или ещё какое-нибудь событие, сразу же происходит вызов прерывания.

За прерывания от таймеров отвечают регистры:

  • TIMSK (Timer/Counter Interrupt Mask) 

  • TIFR (Timer/Counter Interrupt Flag Register).

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

TIFR – это непосредственно флаговый регистр. Когда какое-то прерывание срабатывает, устанавливается соответствующий ему флаг.

Каждому из четырех прерываний регистра TIMSK соответствует свой собственный флаг регистра TIFR, так прерыванию TOIE1 соответствует флаг TOV1

Соседние файлы в предмете Микропроцессорные системы