Мир книг по микроэлектронике
Книги авторства Белова Александра
На главнуюРеквизиты автора Сайт МирМК FUSE калькулятор Сайт "Симферополь вчера и сегодня"


А. В. Белов

Самоучитель разработчика устройств на микроконтроллерах AVR

Содержание

От редактора
Глава 1. Микроконтроллер - это очень просто.

1.1. Микропроцессор

Что же такое микропроцессор
Виды памяти
Различия между микропроцессорами и микроконтроллерами

1.2. Считаем по-другому

Десятичная система исчисления
Восьмиричная система исчисления
Шестнадцатиричная система исчисления
Двоичная система исчисления
Способы обозначения чисел в разных системах исчисления
Арифметическая операция сложения
Арифметическая операция умножения

1.3. Электронные цифры

Представление чисел на ПК
Двухуровневый сигнал

1.4. Логические элементы

Знакомство с логическими элементами
Простые логические элементы
Таблица истинности
Составные логические элементы

1.5. Простейший триггер

Что такое триггер
Устройство и работа RS-триггера
Борьба с дребезгом контактов

1.6. Хранение информации

Устройство и работа D-триггера
Параллельный регистр
Параллельный регистр с расширенными возможностями
Устройство и работа JK-триггера

1.7. Счетчики

Работа делителя частоты
Счетчики прямого счета
Счетчики с обратным отсчетом
Делители с переменным коэфициентом деления
Таймеры

1.8. Дешифраторы

Устройство и прицип действия дешифратора
Селектор памяти ячеек ОЗУ
Каскадирование дешифраторов

1.9. Мультиплексоры


Глава 2. Основы микропроцессорной техники

2.1. Типовая схема микропроцессорной системы

Структурная схема типичной микропроцессорной системы
Виды памяти
Порты ввода—вывода
Процессор и цифровые шины
Шина данных
Шина адреса
Шина управления
Принцип действия микропроцессорной системы

2.2. Алгоритм работы микропроцессорной системы

Возможности процессора
Программа
Процесс выполнения команды
Рабочие регистры
Команды микропроцессора
Команды условного и безусловного перехода
Команда организации цикла
Команды перехода к подпрограмме

2.3. Механизм прерываний

2.4. Прямой доступ к памяти

2.5. Микроконтроллеры


Глава 3. Микроконтроллеры семейства AVR

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

Особенности новой серии микроконтроллеров
Состав серии AVR
Особенности серии AVR
Внутренняя память
Способы программирования Flash- и EEPROM-памяти
Порты ввода—вывода
Периферийные устройства
Другие устройства

3.2. Регистры общего назначения (РОН)

3.3. Регистры ввода—вывода

3.4. Память

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

3.4.2. Память программ

3.4.3. Память данных

Оперативная память микроконтроллеров AVR
Область памяти, совмещенная с набором регистров общего назначения (РОН)
Область памяти, совмещенная с регистрами ввода—вывода (РВВ)
Область внутреннего ОЗУ
Область внешнего ОЗУ

3.4.4. Энергонезависимая память данных (EEPROM)

3.5. Счетчик команд и стековая память

3.6. Подсистема ввода—вывода

3.7. Система прерываний

Назначение системы прерываний
Управление системой прерываний
Алгоритм работы системы прерываний

3.8. Таймеры-счетчики

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

3.8.2. Режимы работы таймеров

Режим Normal
Режим «Захват» (Capture)
Режим «Сброс при совпадении» (CTC)
Режим «Быстродействующий ШИМ» (Fast PWM)
Режим «ШИМ с точной фазой» (Phase Correct PWM)
Асинхронный режим
Предделители таймеров/счетчиков

3.9. Другие встроенные периферийные устройства

Аналоговый компаратор
Аналого-цифровой преобразователь
Последовательный канал (UART/USART)
Последовательный периферийный интерфейс (SPI)
Последовательный двухпроводный интерфейс (TWI)

3.10. Конфигурационные ячейки

3.11. Ячейки защиты и идентификации


Глава 4. Написание программ для микроконтроллеров AVR

4.1. Общие положения

4.2. Простейшая программа

Постановка задачи
Принципиальная электрическая схема
Алгоритм
Программа на Ассемблере
Директивы
Операторы
Описание программы (листинг 4.1)
Программа на языке СИ
Работа программы, написанной на языке СИ
Описание программы (листинг 4.2)

4.3. Переключающийся светодиод

Постановка задачи
Принципиальная схема
Алгоритм
Программа на Ассемблере
Описание программы (листинг 4.3)
Программа на языке СИ
Описание программы (листинг 4.4)

4.4. Боремся с дребезгом контактов

Постановка задачи
Схема
Алгоритм
Программа на Ассемблере
Описание программы (листинг 4.5)
Программа на языке СИ

4.5. Мигающий светодиод

Постановка задачи
Схема
Алгоритм программы
Программа на Ассемблере
Описание программы (листинг 4.7)
Программа на языке СИ

4.6. Бегущие огни

Постановка задачи
Схема
Алгоритм
Выполнение алгоритма сдвига
Программа на Ассемблере
Описание программы (листинг 4.9)
Программа на языке СИ

4.7. Использование таймера

Постановка задачи
Схема
Алгоритм
Программа на Ассемблере
Описание программы (листинг 4.11)
Программа на языке СИ

4.8. Использование прерываний по таймеру

Постановка задачи
Схема
Алгоритм
Программа на Ассемблере
Описание программы (листинг 4.13)
Программа на языке СИ .
Описание программы (листинг 4.14)

4.9. Формирование звука

Постановка задачи
Схема
Алгоритм
Программа на Ассемблере .
Описание программы (листинг 4.15)
Программа на языке СИ .
Описание программы (листинг 4.16)

4.10. Музыкальная шкатулка

Постановка задачи
Схема
Алгоритм
Кодируем мелодии
Алгоритм работы музыкальной шкатулки
Программа на Ассемблере
Описание программы (листинг 4.17)
Процедура вычисления адреса
Текст программы «шаг за шагом»
Особенности программы
Подрограмма формирования задержки
Программа на языке СИ
Описание программы (листинг 4.18)

4.11. Кодовый замок

Постановка задачи
Алгоритм
Схема
Программа на Ассемблере .
Описание программы (листинг 4.19)
Процедура записи ключевой комбинации в EEPROM
Процедура проверки кода
Процедура открывания замка
Программа на языке СИ
Описание программы (листинг 4.20)

4.12. Кодовый замок с музыкальным звонком

Постановка задачи
Алгоритм
Схема
Программа на Ассемблере
Программа на языке СИ


Глава 5. Отладка и трансляция программ

5.1. Программная среда AVR Studio

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

Отладка программы
Программный отладчик
Аппаратный отладчик
Полнофункциональные программные имитаторы
электронных устройств
Внутренний отладчик микроконтроллеров AVR
Программная среда «AVR Studio»

5.1.2. Описание интерфейса

Главная панель программы «AVR Studio»

5.1.3. Создание проекта

5.1.4. Трансляция программы

Форматы файлов
Формат HEX-файла
Процедура трансляции

5.1.5. Отладка программы

Ошибки алгоритма и его реализации
Этапы процесса отладки
Применение точек останова .
Просмотр и изменение содержимого введенных переменных

5.1.6. Исправление ошибок

5.1.7. Создание проектов на языке СИ

5.2. Система программирования Code Vision AVR

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

5.2.2. Интерфейс системы Code Vision AVR

Окно номер 1
Окно номер 2
Окно номер 3 .
Создание проекта без использования мастера
Отладка программы

5.3. Программаторы

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

5.3.2. Схема программатора

Универсальные и специализированные программаторы
Способ подключения программатора к компьютеру
Внутрисхемное программирование .
Питание программатора

5.3.3. Программа управления программатором

Знакомство с программой PonyProg
Алгоритм действий
Программирование микросхем
Режимы работы программатора


Глава 6. Микроконтроллер ATiny2313/V фирмы ATMEL

6.1. Основные характеристики и возможности

Основные характеристики .
Блок-схема микроконтроллера
Особенности микросхемы ATtiny2313
Описание выводов

6.2. AVR — центральное ядро процессора

Введение
Краткая характеристика архитектуры
АЛУ — арифметико-логическое устройство
Регистр статуса
Файл регистров общего назначения
X-регистр, Y-регистр и Z-регистр
Указатель стека
Память ATtiny2313
Системная перепрограммируемая Flash-память программ
Память данных SRAM
Память данных EEPROM
Процесс чтения/записи EEPROM
Регистр адреса EEPROM — EEAR
Регистр данных EEPROM — EEDR
Регистр управления EEPROM — EECR
Атомарное программирование байта
Раздельное программирование байта
Стирание
Запись
Предотвращение ошибок при работе с EEPROM .
Регистры ввода—вывода .
Регистры ввода—вывода общего назначения

6.3. Тактовый генератор

Система синхронизации и варианты ее конфигурирования
Источники тактового сигнала .
Источник сигнала по умолчанию
Кварцевый резонатор
Встроенный перестраиваемый RC-генератор .
Регистр калибровки генератора — OSCCAL .
Внешний тактовый сигнал .
Внутренний генератор на 128 кГц
Регистр предварительного делителя частоты — CLKPR .
Управления питанием и режимы сна
Регистр управления микроконтроллером — MCUCR
Режим Idle .
Режим Power-down
Режим Standby
Советы по уменьшению потребляемой мощности

6.4. Система управления и сброса

Начальный сброс микроконтроллера AVR
Источники сигнала сброса
Сброс при включении питания
Внешний сброс .
Сброс при снижении напряжения питания
Сброс от сторожевого таймера
Регистр статуса системы сброса — MCUSR

6.5. Сторожевой (охранный) таймер

Особенности
Блок-схема
Режимы работы
Регистр управления сторожевым таймером — WDTCSR (WDTCR)

6.6. Прерывания

6.7. Порты ввода—вывода

Введение
Использование портов для цифрового ввода—вывода
Конфигурация выводов
Переключение значения разряда порта
Переключение между выводом и вводом
Чтение значения на выводе порта
Разрешение цифрового ввода и режимы
низкого потребления (режимы сна) .
Дополнительные функции линий порта ввода-вывода .
Регистр управления микроконтроллером — MCUCR
Альтернативные функции порта A
Альтернативные функции порта B
Детальное описание альтернативных функций каждого из выводов
Альтернативные функции порта D
Подробное описание альтернативных функций .
Описание управляющих регистров портов ввода—вывода

6.8. Внешние прерывания

Назначение и режимы работы
Регистр управления микроконтроллером — MCUCR
Главный регистр маски прерываний — GIMSK
Регистр флагов внешних прерываний — EIFR
Регистр маски прерываний по изменению на любом
из контактов — PCMSK

6.9. Восьмиразрядный таймер/счетчик с поддержкой режима ШИМ

Назначение и особенности
Упрощенная блок-схема
Регистры .
Используемые обозначения
Источники тактового сигнала таймера/счетчика
Модуль счета
Модуль совпадения
Принудительное изменение состояния выхода совпадения
Блокировка режима совпадения в момент записи регистра TCNT0
Использование модуля совпадения
Модуль вывода сигнала совпадения
Режим вывода сигнала совпадения и генерация сигналов
Режимы работы
Режим «Normal»
Режим сброса при совпадении (CTC)
Режим Fast PWM (быстрый ШИМ)
ШИМ, корректный по фазе (Phase Correct PWM)
Регистр A управления таймера/счетчика 0 — TCCR0A
Регистр B управления таймера/счетчика 0 — TCCR0B
Счетный регистр таймера/счетчика 0 — TCNT0
Регистр совпадения (канал A) — OCR0A
Регистр совпадения (канал B) — OCR0B
Регистр маски таймера/счетчика 0 — TIMSK
Регистр флагов таймера/счетчика 0 — TIFR
Предварительные делители таймера/счетчика 0 и таймера/счетчика 1
Внутренний источник тактового сигнала
Сброс предварительного делителя
Внешний источник тактового сигнала
Главный регистр управления Таймерами — GTCCR

6.10. 16-разрядный таймер/счетчик (таймер/счетчик 1)

Основные особенности
Условные обозначения
Регистры .
Терминология
Совместимость
Доступ к 16-разрядным регистрам
Источники тактового сигнала таймера/счетчика
Модуль счета
Модуль захвата
Источники сигнала запуска в режиме захвата
Схема подавления помех
Использование модуля захвата
Модуль совпадения .
Принудительное изменение сигнала на выходе совпадения
Блокировка режима совпадения в момент записи регистра TCNT1
Использование модуля совпадения
Модуль вывода сигнала совпадения
Режимы работы 16-разрядного таймера/счетчика
Режим Normal
Режим сброса при совпадении (CTC)
Режим Fast PWM .
Режим phase correct PWM
Режим phase and frequency correct PWM .
Регистр A управления таймером/счетчиком — TCCR1A
Регистр B управления таймером/счетчиком — TCCR1B
Регистр C управления таймером/счетчиком– TCCR1C
Счетный регистр таймера/счетчика 1 — TCNT1H и TCNT1L
Регистр совпадения A — OCR1AH и OCR1AL
Регистр совпадения B — OCR1BH и OCR1BL
Регистр захвата — ICR1H и ICR1L
Регистр маски прерываний таймера/счетчика — TIMSK
Регистр флагов таймера/счетчика 1 — TIFR

6.11. USART

Особенности
Краткий обзор
Совместимость режимов AVR USART и AVR UART
Тактовый генератор
Внутренняя генерация тактового сигнала — генератор
скорости передачи информации
Режим удвоенной скорости (U2X) .
Внешний тактовый сигнал
Синхронизация процесса передачи данных
Форматы кадра
Расчет значения бита четности
Инициализация USART
Передача данных — передатчик USART
Посылка кадра данных длиной от 5 до 8 бит
Посылка кадра данных длиной 9 бит .
Флаги и прерывания передатчика
Генератор сигнала четности
Отключение передатчика
Прием данных — приемник USART
Прием кадра данных длиной от 5 до 8 битов
Прием кадра данных длиной 9 бит
Флаг готовности приемника и вызов прерывания
Флаги ошибки приемника
Схема контроля четности
Выключение приемника .
Освобождение буфера приемника
Асинхронный прием данных
Восстановление тактового сигнала в асинхронном режиме .
Восстановление данных в асинхронном режиме
Допустимые отклонения в асинхронном режиме .
Режим мультипроцессорного обмена
Регистр ввода—вывода USART — UDR
Регистр «A» статуса и управления USART — UCSRA .
Регистр «B» статуса и управления USART — UCSRB .
Регистр C статуса и управления USART — UCSRC
Регистры скорости обмена информации USART — UBRRL и UBRRH

6.12. Универсальный последовательный интерфейс — USI

Назначение и особенности
Краткое описание
Описание принципа работы в трехпроводном режиме
Пример операции SPI для ведущего устройства
Пример операции SPI для ведомого устройства
Принцип действия в двухпроводном режиме .
Схема обнаружения стартового условия .
Альтернативное использование USI .
Полудуплексная асинхронная передача данных .
Регистр данных USI — USIDR .
Регистр состояния USI — USISR
Регистр управления USI — USICR

6.13. Аналоговый компаратор

Назначение и особенности
Регистр статуса и управления аналогового компаратора — ACSR .
Регистр отключения цифрового ввода — DIDR

6.14. Встроенная система отладки программ debugWIRE

Основные особенности встроенной системы отладки .
Назначение .
Физический интерфейс .
Точки останова программы
Ограничения режима debugWIRE .
Специальный регистр ввода—вывода предназначенный для debugWIRE
Регистр данных debugWire — DWDR
Автоматическое перепрограммирование памяти программ
Стирание страницы .
Загрузка страницы (заполнение данными временного буфера) .
Запись страницы .
Адресация памяти программ
при автоматическом перепрограммировании .
Регистр статуса и управления загрузкой
программной памяти — SPMCSR
Запись в EEPROM и работа с регистром SPMCSR
Чтение состояния fuse-переключателей и битов блокировки программным путем
Предотвращение ошибок при программировании Flash-памяти
Время программирования Flash-памяти при использовании команды SPM

6.15. Программирование памяти

Биты защиты памяти данных и программ .
Fuse-переключатели .
Фиксирование значений fuse-переключателей
Байты идентификации .
Байт калибровки
Размер страницы


ПРИЛОЖЕНИЯ

Список литературы
Список ссылок в Интернет


 
На главную www.mirmk.ru