Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Работа с основными периферийными модулями микроконтроллеров Atmega на примерах и заданиях

Покупка
Основная коллекция
Артикул: 760718.01.99
Доступ онлайн
от 224 ₽
В корзину
В учебном пособии изложены сведения по работе с периферийными модулями микроконтроллеров Atmega, c таймерами/счетчиками, описана работа модуля таймеров/счетчиков микроконтроллера Atmega32 компании Atmel, достаточно подробно, на примерах, разобрана работа с таймеров Т0 и Т2, оптическим энкодером, управлением эл. двигателем с помощью ШИМ-сигнала. Предназначено для студентов, обучающихся по направлению 13.03.02 «Электроэнергетика и электротехника».
7
57
114
Варламов, Д. О. Работа с основными периферийными модулями микроконтроллеров Atmega на примерах и заданиях : учебное пособие / Д.О. Варламов, С.М. Зуев, А.А. Тимошенко. — Москва : ИНФРА-М, 2021. — 186 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-109712-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1816758 (дата обращения: 17.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
ВЫСШЕЕ ОБРАЗОВАНИЕ — БАКАЛАВРИАТ

Д.О. ВАРЛАМОВ
С.М. ЗУЕВ
А.А. ТИМОШЕНКО

РАБОТА С ОСНОВНЫМИ 

ПЕРИФЕРИЙНЫМИ МОДУЛЯМИ 
МИКРОКОНТРОЛЛЕРОВ ATMEGA 

НА ПРИМЕРАХ И ЗАДАНИЯХ

Учебное пособие

Рекомендовано к изданию на заседании кафедры 

«Электрооборудование и промышленная электроника» 

(протокол № 1 от 10.01.2021)

Москва

ИНФРА-М

2021

УДК004.312(075.8)
ББК 32.85я73

В18

Варламов Д.О.

В18
Работа 
с 
основными 
периферийными 
модулями 

микроконтроллеров Atmega на примерах и заданиях : учебное 
пособие / Д.О. Варламов, С.М. Зуев, А.А. Тимошенко. — Москва : 
ИНФРА-М, 2021. — 185 с. — (Высшее образование: Бакалавриат).

ISBN 978-5-16-109712-0 (online)

В 
учебном 
пособии 
изложены 
сведения 
по 
работе 

с 
периферийными
модулями 
микроконтроллеров 
Atmega, 

c таймерами/счетчиками, описана работа модуля таймеров/счетчиков 
микроконтроллера Atmega32 компании Atmel, достаточно подробно, на 
примерах, разобрана работа с таймеров Т0 и Т2, оптическим 
энкодером, управлением эл. двигателем с помощью ШИМ-сигнала.

Предназначено для студентов, обучающихся по направлению

подготовки 13.03.02 «Электроэнергетика и электротехника».

УДК 004.312(075.8)

ББК 32.85я73

ISBN 978-5-16-109712-0 (online)
© Варламов Д.О., Зуев С.М., 
Тимошенко А.А., 2021

ФЗ 

№ 436-ФЗ 

Издание не подлежит маркировке 
в соответствии с п. 1 ч. 4 ст. 11 

 

Оглавление

Глава 1. АЦП

1. Общие сведения................................................................................................... 7

2. Функционирование модуля АЦП ...................................................................... 7

3. Работа с результатом преобразования АЦП................................................... 18

4. Повышение точности преобразования АЦП.................................................. 19

5. Датчики температуры серии LMx35 ............................................................... 21

6. Cнятие показаний датчика температуры LM335 с помощью встроенного 
АЦП микроконтроллера ....................................................................................... 24

7. Определение номера нажатой кнопки с помощью АЦП микоконтроллера27

8. Схема задания скорости вращения электродвигателя постоянного тока с 
помощью поворотного переключателя............................................................... 30

9. Способ измерения напряжения с помощью АЦП микроконтроллера, 
превышающего его опорное напряжение........................................................... 34

10. Измерение тока с помощью АЦП микроконтроллера в дифференциальном 
режиме.................................................................................................................... 39

11. Микросхема L293 – специализированный драйвер управления 
электродвигателями постоянного тока ............................................................... 43

12. Схема управления электродвигателем постоянного тока по положению 
потенциометра....................................................................................................... 45

13. Схема управления серводвигателем с реализацией обратной связи по 
напряжению через АЦП микроконтроллера ...................................................... 49

Приложение к главе 1 ........................................................................................... 53

Глава 2. Таймеры

1. Общие сведения................................................................................................. 57

2. Назначение выводом таймеров/счетчиков ..................................................... 58

3. Прерывания от таймеров/счетчиков................................................................ 59

4. Предделители таймеров/счетчиков ................................................................. 61

5. Восьмибитные таймеры/счетчики................................................................... 65

6. Управление тактовым сигналом...................................................................... 69

7. Режимы работы таймеров/счетчиков.............................................................. 70

8. Формирование выходных сигналов 8-битных таймеров Т0 и Т2 в режиме 
работы Normal ....................................................................................................... 80

9. Формирование выходных сигналов 8-битных таймеров Т0 и Т2 в режиме 
работы СТС............................................................................................................ 84

10. Формирование выходных сигналов таймеров/счетчиков Т0 и Т2 в 
режимах работы Fast PWM и Phase Correct PWM............................................. 88

11. Использование прерываний по совпадению и переполнению 
таймера/счетчика Т0 ............................................................................................. 93

12. Часы реального времени на таймере/счетчике Т2....................................... 96

13. Измерение скорости вращения вала электродвигателя по оптическому 
энкодеру с использованием двух 8-битных таймеров/счетчиков.................... 99

14. Измерение скорости вращения вала электродвигателя по оптическому 
энкодеру с использованием одного 8-битного таймера/счетчика и внешнего 
прерывания........................................................................................................... 104

Приложение к главе 2 ......................................................................................... 110

Глава 3. Периферийный интерфейс SPI

1. Общие сведения ……………………………………………………………116

2. Функционирование модуля SPI……………………………………………117

3. Режимы передачи данных ………………………………………………….123

4. Использование вывода SS ………………………………………………….125

5. Соединение двух микроконтроллеров по интерфейсу SPI………………127

6. Микросхема цифрового потенциометра серии MCP41XXX с интерфейсом 
SPI……………………………………………………………………………….132

7. Управление микросхемой MCP41010 цифрового потенциометра помощью
микроконтроллера……………………………………………………………136

8. Микросхема аналогово-цифрового преобразователя MCP3201 с 
интерфейсом SPI………………..…………………………………………..….140

9. Управление микросхемой аналогово-цифрового преобразователя MCP3201 
с помощью микроконтроллера ………………………………………………..143

10. Способы работы с несколькими ведомыми по интерфейсу SPI………148

11. Управление c помощью микроконтроллера микросхемой MCP3201 и 
MCP41010 по одной шине SPI (независимое подключение)……………….150

12. Микросхема сдвигового регистра 74HC595……………………………154

13. Управление микросхемой сдвигового регистра 74HC595 с помощью 
микроконтроллера……………………………………………………………156

14. Управление двумя сдвиговыми регистрами 74НС595 с помощью 
микроконтроллера (каскадное подключение)………………………………161

15. Микросхема датчика температуры TC72                                   с 
интерфейсом SPI………………………………………………………………167

16. Снятие показаний цифрового датчика температуры TC72 по SPI с 
помощью микроконтроллера…………………………………………………172

Заключение……………………………………………………………………181

Список литературы……………………………………………………………182

 

Введение

В данном учебном пособии представлено описание функционирования 

таких модулей микроконтроллера Atmega32 компании Atmel, как встроенный 

аналого-цифровой преобразователь (АЦП), таймер/счетчик и модуль SPI.

В первой главе изложены сведения по работе с АЦП микроконтроллера, 

на 
примерах
разобрана 
одновременная 
работа 
с 
несколькими 

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

особенности измерения тока в дифференциальном режиме, а также 

организация обратной связи через АЦП при управлении серводвигателем.

Во второй главе описана работа модулей 8-битных таймеров/счетчиков     

Т0 и Т2 микроконтроллера, показана работа с оптическим энкодером, 

управление электродвигателем с помощью ШИМ-сигнала и построение часов 

реального времени.

В 
третьей 
главе
предоставлены
сведения 
по 
протоколу

последовательного периферийного интерфейса (SPI) и описана работа с

модулем SPI микроконтроллера. Достаточно подробно разобрана работа со 

сдвиговыми регистрами, предоставлены примеры работы с датчиками и 

микросхемами, подключаемыми к микроконтроллеру по SPI. 

 

 

 

 

 

 

 

 

 

ГЛАВА 1. АЦП

1. Общие сведения

Модуль 10-битного АЦП последовательного приближения входит в со
став практически всех моделей микроконтроллеров Atmel семейства Atmega

[1-3]. 

На 
входе 
модуля 
АЦП 
имеется 
8-канальный 
аналоговый 

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

несимметричными 
входами. 
В 
моделях 
ATmega640x/1280x/2560x

используется 
16-канальный 
аналоговый 
мультиплексор. 
В 
Atmega8, 

выпускаемых в корпусе DIP, доступно только 6 каналов из восьми [4]. 

В большинстве моделей входы АЦП могут объединяться попарно для 

формирования различного числа каналов с дифференциальным входом. При 

этом в некоторых каналах имеется возможность 10и 200-кратного 

предварительного усиления входного сигнала. При коэффициентах усиления 

1х и 10х действительная разрешающая способность АЦП по этим каналам 

составляет 8 бит, а при коэффициенте усиления 200х - 7 бит [5].

В качестве источника опорного напряжения для АЦП может использо
ваться как напряжение питания микроконтроллера, так и внутренний либо 

внешний источник опорного напряжения [6].

Модуль АЦП может работать в двух режимах:

•   режим одиночного преобразования, когда запуск каждого преобразования 

инициируется пользователем;

•  режим непрерывного преобразования, когда запуск преобразований 

выполняется непрерывно через определенные интервалы времени.

2. Функционирование модуля АЦП

Обобщенная структурная схема модуля АЦП приведена на Рис.1. В 

моделях ATmega8x и ATmega48x/88x/l68x элементы, выделенные на рисунке 

серым 
цветом, 
и 
связанные 
с 
ними 
сигналы 
отсутствуют, 
а 

неинвертируюший 
вход 
компаратора 
выборки-хранения 
подключен 

непосредственно к выходу мультиплексора (показано пунктиром).

К встроенному АЦП относятся 4 регистра:

•
ADC – регистр данных АЦП (двойной регистр. Состоит из ADCH и 

ADCL).

•
ADCSRA - регистр управления и состояния АЦП. 

•
ADMUX – регистр управления мультиплексором.

•
SFIOR – регистр специальных функций [6].

Формат регистра ADCSRA приведен на Рис.2, а краткое описание 

функций его битов приведено в Таблице 1.

Рис.1 Структурная схема модуля АЦП.

Для разрешения работы АЦП необходимо записать лог.1 в бит ADEN

регистра ADCSRA, а для выключения — соответственно лог.0. Если АЦП 

будет выключен во время цикла преобразования, то преобразование завер
шено не будет (в регистре данных АЦП останется результат предыдущего 

преобразования).

Рис.2 Формат регистра ADCSRA.

Таблица 1. Биты регистра ADCSRA.

Бит
Название
Описание

7
ADEN
Разрешение АЦП (1- включено
0 - выключено)

6
ADSC
Запуск преобразования 
(1 - начать преобразование)

5
ADATE/ADFR Выбор режима работы АЦП

4
ADIF
Флаг прерывания АЦП

3
ADIE
Разрешение прерывания АЦП

2...0 ADPS2:ADPS0 Выбор частоты преобразования

Режим работы АЦП определяется состоянием бита ADATE регистра 

ADCSRA. Если он установлен в 1, АЦП работает в режиме непрерывного 

преобразования. 
В 
этом 
режиме 
запуск 
каждого 
последующего 

преобразования АЦП осуществляется автоматически после окончания теку
щего. Если же этот бит сброшен в 0, АЦП работает в режиме одиночного 

преобразования и запуск каждого преобразования осуществляется по ко
манде пользователя.

В режимах одиночного и непрерывного преобразований цикл преобра
зования начинается по первому нарастающему фронту тактового сигнала 

после установки бита ADSC. 

В моделях ATmega8x и ATmega128x режим работы АЦП определяется 

состоянием пятого бита ADFR (в остальных моделях - ADATE). Если он 

установлен в 1, АЦП работает в режиме непрерывного преобразования. В 

этом режиме запуск каждого следующего преобразования осуществляется 

автоматически после окончания текущего. Если же бит ADFR сброшен в 0, 

АЦП работает в режиме одиночного преобразования и запуск каждого 

преобразования осуществляется по команде пользователя [7].

Во всех других моделях, кроме ATmega8x и ATmega128x, запуск АЦП 

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

некоторых 
периферийных 
устройств, 
имеющихся 
в 
составе 

микроконтроллера
[7]. Для выбора режима работы в этих моделях 

используется бит ADATE регистра ADCSRA и биты ADTS2:0 регистра 

SFIOR
(см. 
Рис.3, 
Табл.2).

Рис.3 Формат регистра SFIOR.

Таблица.2 Биты регистра SFIOR.

ADTS2 ADTS1 ADTS0 Источник стартового сигнала
0
0
0
Режим непрерывного преобразования

0
0
1
Прерывание от аналогового компаратора

0
1
0
Внешнее прерывание INT0

0
1
1
Прерывание по событию «Совпадение А» 
таймера/счетчика Т0

1
0
0
Прерывание по переполнению 
таймера/счетчика Т0

1
0
1
Прерывание по событию «Совпадение В» 
таймера/счетчика Т1

1
1
0
Прерывание по переполнению 
таймера/счетчика Т1

1
1
1
Прерывание по событию «Захват» 
таймера/счетчика Т1

Запуск каждого преобразования в режиме одиночного преобразования, 

а также запуск первого преобразования в режиме непрерывного пре
образования осуществляется установкой в 1 бита ADSC регистра ADCSRA. 

Запуск преобразования по прерыванию осуществляется при установке в 1 

флага выбранного прерывания. Бит ADSC регистра ADCSRA при этом 

аппаратно устанавливается в 1. Запуск преобразования в этих режимах также 

может быть осуществлен установкой бита ADSC регистра ADCSRA в 1.

В режимах одиночного и непрерывного преобразований цикл преобра
зования начинается по первому нарастающему фронту тактового сигнала 

после установки бита ADSC. Если используется запуск по прерыванию, то 

цикл преобразования начинается по первому нарастающему фронту так
тового сигнала после установки флага выбранного прерывания. Причем в 

момент установки этого флага осуществляется сброс предделителя модуля 

АЦП. Тем самым обеспечивается фиксированная задержка между генерацией 

запроса на прерывание и началом цикла преобразования. Обратите внимание, 

что преобразование запускается при установке соответствующего флага, т. е, 

даже если само прерывание запрещено.

Рис.4 Временная диаграмма работы АЦП в режиме одиночного 

преобразования.

Длительность цикла одиночного преобразования (Рис.4) составляет 13 

тактов при использовании несимметричного входа и 13 либо 14 тактов при 

использовании дифференциального входа (разные значения связаны с 

работой схемы синхронизации); выборка и запоминание входного сигнала 

осуществляется в течение первых 1.5 и 2.5 тактов соответственно. Через 13 

(14) тактов преобразование завершается, бит ADSC аппаратно сбрасывается в 

0 (в режиме одиночного преобразования), и результат преобразования 

сохраняется в регистре данных АЦП (ADCH и ADCL). Одновременно 

устанавливается флаг прерывания ADIF регистра ADCSR и генерируется 

запрос на прерывание. Как и флаги остальных прерываний, флаг ADIF

сбрасывается аппаратно при запуске подпрограммы обработки прерывания 

от АЦП или программно, записью в него лог 1. Разрешение прерывания 

осуществляется установкой в 1 бита АDIЕ регистра ADCSRA
при 

установленном флаге I регистра SREG (устанавливается с помощью команды 

sei()).

Рис.5. Временная диаграмма работы АЦП в режиме непрерывного 

преобразования.

Если АЦП работает в режиме непрерывного преобразования (Рис.5), то 

новый цикл начнется сразу же после записи результата. В режиме 

одиночного преобразования новое преобразование может быть запущено 

сразу же после сброса бита ADSC (до сохранения результата текущего 

преобразования). Однако реально цикл преобразования начнется не ранее 

чем через один такт после окончания текущего преобразования.

При первом запуске после включения АЦП для выполнения преобра
зования потребуется 25 тактов, т. е. на 12 тактов больше, чем обычно. В те
чение этих 12 тактов выполняется «холостое» преобразование, во время 

которого производится инициализация АЦП (Рис.6).

Отдельно следует сказать об использовании режима запуска по преры
ванию совместно с дифференциальными каналами. В этом случае АЦП 

Доступ онлайн
от 224 ₽
В корзину