- •1. Микроконтроллер aTtiny2313/V фирмы Atmel
- •1.1 Структура, основные характеристики и возможности
- •1.2 Особенности микросхемы aTtiny2313
- •2. Центральное ядро процессора
- •2.1 Кратка характеристика архитектуры
- •2.4 Системная перепрограммируемая Flash-память программ
- •2.5 Память данных sram
- •3. Порты ввода-вывода
- •3.1 Использование портов для цифрового ввода-вывода
- •4. Внешние прерывания
- •4.1 Назначение и режимы работы
- •5.4 Используемые обозначения
- •5.5 Модуль счёта
- •5.6 Модуль совпадения
- •5.7 Принудительное изменение состояния выхода совпадения
- •5.8 Блокировка режима совпадения в момент записи регистра tcnt0
- •5.9 Использование модуля прерывания
- •5.10 Модуль вывода сигнала совпадения
- •5.11 Режимы работы
- •5.12 Режим «Normal»
- •5.13 Режим сброса при совпадении (стс)
- •5.14 Режим FastPwm (быстрый шим)
- •5.15 Шим, корректный по фазе (PhaseCorrectPwm)
- •6. Описание системы команды
- •6.1 Система команд. Общие сведения о системе команд
- •6.2 Система команд
- •6.3 Команды регистровых операций
- •6.4 Команды с обращением по адресу sram
- •6.5 Команды с обращением к регистрам ввода-вывода
- •6.6 Команда с обращением к FlashRom
- •6.7 Команды операций с битами
- •6.8 Команды управления ходом программы
5.4 Используемые обозначения
При описании счётчиков используются специальные обозначения для всех его важных состояний. Эти обозначения приведены в табл. 1.
Обозначения для основных состояний 8-разрядного счётчика
Таблица 1
BOTTOM |
Счётчик достигает значения BOTTOM (начало), когда его содержимое равно 0x00 |
MAX |
Счётчик достигает значения MAX (максимум), когда его содержимое равно 0xFF (десятичное 255) |
TOP |
Счётчик достигает значения TOP(вершина), когда его содержимое достигает самого высокого значению в данном режиме работы. В зависимости от режима значение TOP может быть равно либо 0xFF (MAX), либо значению, записанному в регистре OCR0A (режим сброса по совпадению) |
5.5 Модуль счёта
Основой восьмиразрядного таймера/счётчика является программируемый реверсивный счётный модуль. На рис. 10 показана блок-схема счётного модуля и его управляющие сигналы.
Рис. 10 - Блок-схема счётного модуля
Рассмотрим внутренние сигналы:
♦ count – увеличивает или уменьшает содержимое TCNT0 на 1;
♦ direction – выбор между уменьшением и увеличением;
♦ clear – очистка TCNT0 (установка всех битов в ноль);
♦ clkT0 – тактовая частота таймера/счётчика;
♦ top – возникает при достижении TCNT0 максимального значения;
♦ bottom – возникает при достижении TCNT0 минимального значения (нуля).
В зависимости от режима работы таймера, каждый импульс тактового сигнала (clkT0) очищает, увеличивает или уменьшает значение счётчика. Сигнал clkT0может быть получен как от внешнего, так и от внутреннего источника тактового сигнала. Это определяется битами выбора тактового сигнала (CS02:0). Когда не выбран ни один источник тактового сигнала (CS02:0 = 0), таймер останавливается.
Центральный процессор может обращаться к значению регистра TCNT0 независимо от того, присутствует ли сигнал clkT0 или нет. Команда записи, поступающая от центрального процессора, имеет приоритет над всеми другими операциями (очистки счётчика или операциями счёта).
Режимы работы таймера определяются установкой битов WGM01 и WGM00 регистра TCCR0Aи битом WGM02 регистра TCCR0B. Есть тесная связь между выбранным режимом работы счётчика и частотой сигнала на выходе OC0A.
Флаг переполнения таймера/счётчика (TOV0) устанавливается в соответствии с режимом работы, выбранным при помощи битов WGM01:0. Флаг TOV0 может использоваться для генерации прерываний центрального процессора.
5.6 Модуль совпадения
Основа модуля – восьмиразрядный компаратор, который непрерывно сравнивает содержимое регистра TCNT0 с содержимым каждого из двух регистров совпадения (OCR0Aили OCR0B). Каждый раз, когда содержимое TCNT0 оказывается равным содержимому OCR0Aили OCR0B, компаратор вырабатывает сигнал совпадения. Этот сигнал устанавливает соответствующий флаг совпадения (OCF0Aили OCF0B) в следующем тактовом цикле.
Если соответствующее прерывание разрешено, установка флага совпадения вызывает прерывание. Флаг совпадения автоматически сбрасывается при запуске процедуры обработки прерывания. Флаг также может быть очищен программно путём записи в него логической единицы.
В режиме генератора частот сигнал совпадения используется для генерации выводного сигнала совпадения используется для генерации выводного сигнала в соответствии с выбранным режимом работы, который определяется битами WGM02:0, а также битами выбора режима сравнения (COM0x 1:0). Сигналы max и bottom используются генератором частот в некоторых случаях для получения критических значений в отдельных режимах работы. На рис. 11 показана блок-схема модуля совпадения. На рисунке буква x – это условное обозначение. Для разных модулей совпадения x равно либо A либо B.
Рис. 11 - Блок-схема модуля совпадения
Регистры OCR0xимеют двойную буферизацию в любом режиме широтно-импульсной модуляции (ШИМ). В режиме Normal и режиме СТС (Сброс при совпадении) двойная буферизация отключается. Двойная буферизация синхронизирует момент обновления регистра OCR0xс моментом достижения таймером верхнего или нижнего пределов. Синхронизация предотвращает возникновение ассиметричных ШИМ-импульсов, то есть импульсов, длина которых равна нечётному количеству тактов. Таким образом обеспечивается высокое качество сигналов ШИМ.
Доступ к регистру OCR0xможет показаться слишком сложным. На самом деле это не так. Если двойная буферизация разрешена, центральный процессор обращается к регистрам OCR0xчерез буфер. Если буферизация отключена, центральный процессор обращается к регистрам OCR0xнепосредственно.
