
- •Микропроцессорные системы. Список экзаменационных вопросов. Оглавление
- •1. Комбинационная логика, основные элементы (и, или, не), их схемы на кмоп транзисторах.
- •5. Регистры на основе d-триггеров. Параллельные регистры, последовательные (сдвиговые) регистры. Временная диаграмма работы сдвигового регистра.
- •6. Общая структура микроконтроллерного устройства, алу, программный счётчик.
- •7. Виды памяти микроконтроллеров (на примере семейства avr). Стек и его инициализация.
- •8. Прерывания, вектор прерываний.
- •9. Основы языка Assembler для микроконтроллеров семейства avr. Синтаксис, классификация команд.
- •Внешний кварцевый резонатор
- •Внешний генератор
- •12. Широтно-импульсная модуляция. Понятие широтно-импульсной модуляции. Различные режимы широтно-импульсной модуляции. Режим быстрый шим (Fast pwm). Шим без фазового сдвига (Phase Correct pwm).
- •13. Цифро-аналоговые преобразователи. Структурная схема цап. Параллельная схема суммирования токов. Последовательная схема суммирования токов.
- •15. Структурная схема встроенного аналого-цифрового преобразователя, его основные параметры. Настройка ацп, управляющие регистры. Прерывания по завершению цикла преобразования.
- •4 Режима работы spi:
- •18. Интерфейс i2c. Протокол передачи данных, режимы работы. Основные преимущества и недостатки интерфейса.
Внешний кварцевый резонатор
максимальная поддерживаемая частота – 16 МГц. Помним, что энергопотребление микроконтроллера значительно возрастает с увеличением рабочей частоты
для подключения используются специальные выводы – XTAL1 и XTAL2
также для подключения используются дополнительные конденсаторы емкостью в 15 – 30 пФ, в зависимости от частоты
Пример подключения кварцевого резонатора приведен на рисунке 1.
Рисунок 1 – Схемы тактирования микроконтроллера
Внешний генератор на RC-цепочке (вместо резонатора)
вариант, нетребовательный к точности задаваемой системной частоты
для подключения используются те же самые выводы, что и в предыдущем случае
тактовая частота, которую даёт такая RC-цепочка, приблизительно описывается следующим выражением:
f = 1/3RC
емкость конденсатора RC-цепочки должна быть не ниже 22пФ
также, с помощью фьюз-бита CKOPT (Бит CKOPT задает размах тактового сигнала. Т.е. амплитуду колебаний на выходе с кварца) мы можем подключить между выводом XTAL1 и землёй внутренний конденсатор емкостью 36 пФ, что позволяет избавиться от внешнего конденсатора
Внешний генератор
подключаем выход генератора к выводу 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