- •Источники тактовой частоты
- •Управляющие регистры таймера
- •Прерывания таймера
- •3. Цифро-аналоговые преобразователи. Структурная схема цап. Параллельная схема суммирования токов. Последовательная схема суммирования токов.
- •Классификация ацп
- •5. Структурная схема встроенного аналого-цифрового преобразователя, его основные параметры. Настройка ацп, управляющие регистры. Прерывания по завершению цикла преобразования.
Оглавление
1, Таймеры-счётчики. Источники тактовой частоты. Регистры, определяющие работу таймера. Предделитель таймера. Основные режимы работы таймера: стандартный счётный режим (Normal), режим сброса при совпадении. Источники прерываний таймера. 1
2. Управляющие регистры таймера 2
3. Прерывания таймера 4
2. Широтно-импульсная модуляция. Понятие широтно-импульсной модуляции. Различные режимы широтно-импульсной модуляции. Режим быстрый ШИМ (Fast PWM). ШИМ без фазового сдвига (Phase Correct PWM). 4
3. Цифро-аналоговые преобразователи. Структурная схема ЦАП. Параллельная схема суммирования токов. Последовательная схема суммирования токов. 10
4. Аналого-цифровые преобразователи. АЦП параллельного преобразования (параллельные АЦП). АЦП последовательного приближения. Интегрирующие АЦП. Сигма-дельта АЦП. Схемы и принцип работы, основные преимущества и недостатки. 12
5. Структурная схема встроенного аналого-цифрового преобразователя, его основные параметры. Настройка АЦП, управляющие регистры. Прерывания по завершению цикла преобразования. 26
6, Передача данных с использованием асинхронного последовательного интерфейса UART. Общая структура асинхронного приёмопередатчика. Протокол передачи данных RS-232. Настройка и программирование интерфейса UART. Скорость передачи данных. 32
1, Таймеры-счётчики. Источники тактовой частоты. Регистры, определяющие работу таймера. Предделитель таймера. Основные режимы работы таймера: стандартный счётный режим (Normal), режим сброса при совпадении. Источники прерываний таймера.
Источники тактовой частоты
Для работы любого микроконтроллера его необходимо обеспечить стабильным источником тактовых импульсов. Для микроконтроллеров фирмы Atmel возможно несколько вариантов.
Воспользоваться внутренним генератором на RC-цепочке;
В качестве источника тактовых импульсов может выступать внешний кварцевый резонатор (или керамический). Максимальная поддерживаемая частота – 16 МГц (помним, что энергопотребление микроконтроллера возрастает с увеличением рабочей частоты, причём значительно). Для подключения внешнего кварцевого резонатора используются специальные выводы – XTAL1 и XTAL2, также для подключения необходимо использовать дополнительные конденсаторы емкостью в 15 – 30 пФ, в зависимости от частоты. Пример подключения кварцевого резонатора приведен на рис. 2.
Рисунок 2 Схемы тактирования микроконтроллера
Вариант, нетребовательный к точности задаваемой системной частоты – воспользоваться вместо резонатора обычной RC-цепочкой, при этом для её подключения используются те же самые выводы, что и в предыдущем случае.
Емкость конденсатора RC-цепочки должна быть не ниже 22пФ. Также, с помощью фьюз-бита CKOPT мы можем подключить между выводом XTAL1 и землёй внутренний конденсатор емкостью 36 пФ, что позволяет избавиться от внешнего конденсатора.
Последний вариант – использование внешнего генератора: подключаем выход генератора к выводу XTAL1. Подобный способ тактирования микроконтроллера обеспечивает максимальную точность, единственный недостаток – подобные генераторы имеют достаточно высокую стоимость.
С помощью такого кварца можно с высокой точностью отсчитывать секундные интервалы. Для подключения часового кварца используются отдельные выводы TOSC1 и TOSC2, причём использование дополнительных внешних конденсаторов не требуется (рис. 3).
Рисунок 3 Альтернативные схемы тактирования микроконтроллера
Управляющие регистры таймера
Основными управляющими регистрами являются регистры TCCRxn (Timer/Counter Control Register, для микроконтроллера AtTiny2313 предусмотрено три управляющих регистра – TCCR0A, TCCR0B и TCCR0C, которые определяют режим работы таймера и значение коэффициента предделителя.
Значение предделителя можно изменить в регистре TCCR1B, за него отвечают три бита: CS12:CS11:CS10 (Clock Select), которые как раз и определяют коэффициент деления тактовых импульсов микроконтроллера.
Рисунок 4 регистр TCCR1B
Здесь возможны следующие варианты (табл. 1).
Таблица 1 Биты, определяющие значение предделителя таймера
CS02 |
CS01 |
CS01 |
Описание |
0 |
0 |
0 |
Нет источника импульсов (Таймер остановлен) |
0 |
0 |
1 |
clkIO/1 (No prescaling) |
0 |
1 |
0 |
clkIO/8 (From prescaler) |
0 |
1 |
1 |
clkIO/64 (From prescaler) |
1 |
0 |
0 |
clkIO/256 (From prescaler) |
1 |
0 |
1 |
clkIO/1024 (From prescaler) |
1 |
1 |
0 |
External clock source on T1. Clock on falling edge. |
1 |
1 |
1 |
External clock source on T1. Clock on rising edge. |
Режим работы таймера T1 определяется состоянием четырех битов WGM10…WGM13, которые находятся в двух разных управляющих регистрах TCCR1A и TCCR1B (что в целом не очень удобно).
Рисунок 5 регистры TCCR1A и TCCR1B
Зависимость режима работы таймера от состояния этих разрядов показана в табл. 2.
Таблица 2 Режимы работы таймера
№ |
WGM1 [3:0] |
Режим работы таймера |
TOP |
Обновление бита OCR1x |
Установка прерыв. TOV1 |
0 |
0000 |
Normal |
0xFFFF |
Immediate |
MAX |
1 |
0001 |
PWM, Phase Correct, 8-bit |
0x00FF |
TOP |
BOTTOM |
2 |
0010 |
PWM, Phase Correct, 9-bit |
0x01FF |
TOP |
BOTTOM |
3 |
0011 |
PWM, Phase Correct, 10-bit |
0x03FF |
TOP |
BOTTOM |
4 |
0100 |
CTC (Clear Timer on Compare) |
OCR0A |
Immediate |
MAX |
5 |
0101 |
Fast PWM, 8-bit |
0x00FF |
TOP |
TOP |
6 |
0110 |
Fast PWM, 9-bit |
0x01FF |
TOP |
TOP |
7 |
0111 |
Fast PWM, 10-bit |
0x03FF |
TOP |
TOP |
8 |
1000 |
PWM, Phase and Frequency Correct |
ICR0 |
BOTTOM |
BOTTOM |
9 |
1001 |
PWM, Phase and Frequency Correct |
OCR0A |
BOTTOM |
BOTTOM |
10 |
1010 |
PWM, Phase Correct |
ICR0 |
TOP |
BOTTOM |
11 |
1011 |
PWM, Phase Correct |
OCR0A |
TOP |
BOTTOM |
12 |
1100 |
CTC (Clear Timer on Compare) |
ICR0 |
Immediate |
MAX |
13 |
1101 |
Reserved |
- |
- |
- |
14 |
1110 |
Fast PWM |
ICR0 |
TOP |
TOP |
15 |
1111 |
Fast PWM |
OCR0A |
TOP |
TOP |
Режим Normal. Это наиболее простой режим работы таймеров, он же единственный режим в младших моделях семейства. В этом режиме счетный регистр функционирует как обычный суммирующий счетчик. По каждому импульсу тактового сигнала осуществляется инкремент счетного регистра. При переходе через значение $FF возникает переполнение, и счет продолжается со значения $00. В том же такте сигнала, в котором обнуляется регистр TCNTn, устанавливается в «1» флаг переполнения счетного регистра TOVn (Timer Overflow).