
- •1) Комбинационная логика, основные элементы (и, или, не), их схемы на кмоп транзисторах.
- •Временная диаграмма работы сдвигового регистра.
- •6) Общая структура микроконтроллерного устройства, алу, программный счётчик.
- •Общая структура микроконтроллерного устройства (из интернета)
- •Программный счётчик.
- •7. Виды памяти микроконтроллеров (на примере семейства avr). Стек и его инициализация.
- •8. Прерывания, вектор прерываний.
- •9) Основы языка Assembler для микроконтроллеров семейства avr. Синтаксис, классификация команд.
- •Команды логических операций.
- •Команды операций с битами.
- •Команды пересылки данных.
- •Команды передачи управления.
- •Команды управления системой.
- •10. Регистры ввода-вывода. Схема устройства вывода микроконтроллера, управляющие регистры, режимы работы.
- •Источники тактовой частоты
- •Управляющие регистры таймера
- •Прерывания таймера
- •3. Цифро-аналоговые преобразователи. Структурная схема цап. Параллельная схема суммирования токов. Последовательная схема суммирования токов.
- •Классификация ацп
- •5. Структурная схема встроенного аналого-цифрового преобразователя, его основные параметры. Настройка ацп, управляющие регистры. Прерывания по завершению цикла преобразования.
- •17. Передача данных с использованием асинхронного последо-вательного интерфейса spi. Схема организации spi интерфейса, сдвиговые регистры. Пакетная передача данных.
- •18) Интерфейс i2c. Протокол передачи данных, режимы работы. Основные преимущества и недостатки интерфейса.
Источники тактовой частоты
Для работы любого микроконтроллера его необходимо обеспечить стабильным источником тактовых импульсов. Для микроконтроллеров фирмы Atmel возможно несколько вариантов.
Воспользоваться внутренним генератором на RC-цепочке;
В качестве источника тактовых импульсов может выступать внешний кварцевый резонатор (или керамический). Максимальная поддерживаемая частота – 16 МГц (помним, что энергопотребление микроконтроллера возрастает с увеличением рабочей частоты, причём значительно). Для подключения внешнего кварцевого резонатора используются специальные выводы – XTAL1 и XTAL2, также для подключения необходимо использовать дополнительные конденсаторы емкостью в 15 – 30 пФ, в зависимости от частоты. Пример подключения кварцевого резонатора приведен на рис. 2.
Рисунок 2Схемы тактирования микроконтроллера
Вариант, нетребовательный к точности задаваемой системной частоты – воспользоваться вместо резонатора обычной RC-цепочкой, при этом для её подключения используются те же самые выводы, что и в предыдущем случае.
Емкость конденсатора RC-цепочки должна быть не ниже 22пФ. Также, с помощью фьюз-бита CKOPT мы можем подключить между выводом XTAL1 и землёй внутренний конденсатор емкостью 36 пФ, что позволяет избавиться от внешнего конденсатора.
Последний вариант – использование внешнего генератора: подключаем выход генератора к выводу XTAL1. Подобный способ тактирования микроконтроллера обеспечивает максимальную точность, единственный недостаток – подобные генераторы имеют достаточно высокую стоимость.
С помощью такого кварца можно с высокой точностью отсчитывать секундные интервалы. Для подключения часового кварца используются отдельные выводы TOSC1 и TOSC2, причём использование дополнительных внешних конденсаторов не требуется (рис. 3).
Рисунок 3Альтернативные схемы тактирования микроконтроллера
Управляющие регистры таймера
Основными управляющими регистрами являются регистры TCCRxn (Timer/CounterControlRegister, для микроконтроллера AtTiny2313 предусмотрено три управляющих регистра – TCCR0A, TCCR0B и TCCR0C, которые определяют режим работы таймера и значение коэффициента предделителя.
Значение предделителя можно изменить в регистре TCCR1B, за него отвечают три бита: CS12:CS11:CS10 (ClockSelect), которые как раз и определяют коэффициент деления тактовых импульсов микроконтроллера.
Рисунок 4регистр TCCR1B
Здесь возможны следующие варианты (табл. 1).
Таблица 1 Биты, определяющие значение предделителя таймера
CS02 |
CS01 |
CS01 |
Описание |
0 |
0 |
0 |
Нет источника импульсов (Таймер остановлен) |
0 |
0 |
1 |
clkIO/1 (Noprescaling) |
0 |
1 |
0 |
clkIO/8 (Fromprescaler) |
0 |
1 |
1 |
clkIO/64 (Fromprescaler) |
1 |
0 |
0 |
clkIO/256 (Fromprescaler) |
1 |
0 |
1 |
clkIO/1024 (Fromprescaler) |
1 |
1 |
0 |
External clock source on T1. Clockonfallingedge. |
1 |
1 |
1 |
External clock source on T1. Clockonrisingedge. |
Режим работы таймера 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, PhaseCorrect, 8-bit |
0x00FF |
TOP |
BOTTOM |
2 |
0010 |
PWM, PhaseCorrect, 9-bit |
0x01FF |
TOP |
BOTTOM |
3 |
0011 |
PWM, PhaseCorrect, 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, PhaseCorrect |
ICR0 |
TOP |
BOTTOM |
11 |
1011 |
PWM, PhaseCorrect |
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).