- •Перечень сокращений
- •Предисловие
- •Введение
- •Часть 1. Архитектура и аппаратные средства микроконтроллера LPC214x
- •1.1 Общие сведения о микроконтроллерах LPC214x
- •1.2 Программистская модель процессорного ядра ARM7TDMI
- •1.2.1 Режимы работы ядра ARM7
- •1.2.2 Система регистров
- •1.2.3 Слово состояния программы
- •1.2.4 Организация памяти
- •1.3 Система команд
- •1.3.1 Команды арифметической и логической обработки
- •1.3.2 Команды умножения
- •1.3.3 Команды регистровой пересылки
- •1.3.4 Команды загрузки и сохранения регистров
- •1.3.5 Команды пакетного обмена с памятью
- •1.3.6 Команды передачи управления
- •1.3.7 Команды обращения к слову состояния программы
- •1.4 Методы адресации
- •1.4.1 Непосредственная адресация
- •1.4.2 Регистровая адресация
- •1.4.3 Косвенная адресация
- •1.4.4 Индексная адресация
- •1.5 Процедура начальной загрузки и режимы отображения памяти
- •1.6 Обработка исключительных ситуаций
- •1.7 Система тактирования
- •1.7.1 Выбор тактовой частоты микроконтроллера
- •1.7.2 Настройка тактирования периферийных устройств
- •1.8 Модуль ускорения памяти
- •1.9 Внешние выводы микроконтроллера
- •1.9.1 Служебные контакты
- •1.9.2 Программно-управляемые линии ввода-вывода
- •1.9.3 Альтернативные функции линий ввода вывода
- •1.10 Цифровые порты ввода-вывода
- •1.10.1 Управление портом через низкоскоростную шину
- •1.10.2 Управление портом через высокоскоростную шину
- •1.11 Система прерываний
- •1.11.1 Назначение системы прерываний
- •1.11.2 Процесс обработки прерываний IRQ
- •1.11.3 Процесс обработки быстрых прерываний FIQ
- •1.11.4 Регистры управления системой прерываний
- •1.11.5 Порядок настройки прерывания IRQ
- •1.11.6 Порядок настройки быстрого прерывания FIQ
- •1.11.7 Процедура обработки прерывания
- •1.11.8 Задержка обработки прерывания
- •1.12 Внешние прерывания
- •1.12.1 Регистры управления блоком внешних прерываний
- •1.12.2 Порядок настройки блока внешних прерываний
- •1.13 Таймеры-счетчики
- •1.13.1 Режим таймера и схема совпадения
- •1.13.2 Режим счетчика
- •1.13.3 Схема захвата
- •1.13.4 Управляющие регистры
- •1.13.5 Формирование интервалов времени через систему прерываний
- •1.13.6 Измерение периода и длительности импульса с помощью устройства захвата
- •1.13.7 Подсчет числа импульсов в единицу времени
- •1.14 Широтно-импульсный модулятор
- •1.14.1 Основы функционирования
- •1.14.2 Дополнительные возможности
- •1.14.3 Регистры управления ШИМ
- •1.14.4 Порядок настройки ШИМ
- •1.15 Аналого-цифровые преобразователи
- •1.15.1 Краткие сведения о встроенных АЦП
- •1.15.2 Общие рекомендации по использованию АЦП
- •1.15.3 Управляющие регистры
- •1.15.4 Порядок настройки АЦП
- •1.15.5 Программный запуск аналого-цифрового преобразователя
- •1.15.6 Запуск аналого-цифрового преобразователя по таймеру
- •1.15.7 Программный опрос готовности АЦП
- •1.15.8 Опрос готовности АЦП по прерыванию
- •1.15.9 Считывание и масштабирование результата АЦП
- •1.16 Цифро-аналоговый преобразователь
- •1.16.1 Регистр управления ЦАП
- •1.16.2 Рекомендации по применению ЦАП
- •1.17 Последовательный синхронный приемо-передатчик SPI
- •1.17.1 Назначение и основы функционирования интерфейса SPI
- •1.17.2 Управляющие регистры
- •1.17.3 Передача и прием данных в режиме ведущего
- •1.17.4 Передача и прием данных в режиме ведомого
- •1.18 Последовательный синхронный приемо-передатчик I2С
- •1.18.1 Назначение и основы функционирования интерфейса I2С
- •1.18.2 Управляющие регистры
- •1.18.3 Настройка модуля I2C
- •1.18.4 Типовые циклы обмена данными по шине I2C
- •1.19 Последовательный асинхронный приемопередатчик UART
- •1.19.1 Назначение и основы функционирования порта UART
- •1.19.2 Управляющие регистры
- •1.19.3 Настройка порта UART
- •1.19.4 Прием байта с опросом флага
- •1.19.5 Передача байта с опросом флага
- •1.19.6 Прием и передача данных с использованием прерываний
- •1.19.7 Прием и передача пакетов данных
- •1.19.8 Диагностика ошибок
- •1.19.9 Автоматическая настройка скорости
- •1.20 Часы реального времени
- •1.20.1 Основные возможности часов реального времени
- •1.20.2 Управляющие регистры
- •1.20.3 Рекомендации по применению
- •1.21 Управление питанием и идентификация источников сброса
- •1.21.1 Краткие сведения о мониторе питания
- •1.21.2 Управляющие регистры
- •Часть 2. Разработка и отладка программ с помощью современных инструментальных средств
- •2.1 Форматы представления чисел
- •2.1.1 Основные коды представления целых чисел
- •2.1.2 Форматы представление целых чисел, приятные в языке Си
- •2.1.3 Форматы чисел c плавающей точкой стандарта IEEE754
- •2.2 Основы программирования на языке Си
- •2.2.1 Структура программы
- •2.2.2 Числовые константы
- •2.2.3 Переменные и именованные константы
- •2.2.4 Оператор присваивания, выражения и операции
- •2.2.5 Условный оператор
- •2.2.6 Приведение и преобразование типов
- •2.2.7 Массивы
- •2.2.8 Строки символов
- •2.2.9 Структуры
- •2.2.10 Объединения
- •2.2.11 Указатели
- •2.2.12 Ветвление
- •2.2.13 Множественное ветвление
- •2.2.14 Цикл со счетчиком
- •2.2.15 Циклы с предусловием и постусловием
- •2.2.16 Функции
- •2.2.17 Некоторые директивы компилятора
- •2.2.18 Библиотека математических функций MATH.h
- •2.2.19 Функция создания форматированных строк SNPRINTF
- •2.2.20 Ассемблер в Си-программах
- •2.3 Интегрированная среда разработки Keil µVision 4
- •2.3.1 Создание проекта
- •2.3.2 Создание файла программы
- •2.3.3 Настройка проекта
- •2.3.4 Набор текста программы
- •2.3.5 Компиляция программы
- •2.3.6 Отладка программы
- •2.3.7 Основные отладочные инструменты среды Keil µVision 4
- •2.3.8 Управление распределением памяти
- •2.4 Методика отладки программ
- •2.4.1 Быстрый поиск ошибок
- •2.4.2 Ввод и вывод дискретных сигналов
- •2.4.3 Таймер-счетчик. Формирование интервалов времени
- •2.4.4 Таймер-счетчик. Формирование внешних сигналов совпадения
- •2.4.5 Таймер-счетчик. Счетчик внешних событий
- •2.4.6 Таймер-счетчик. Устройство захвата
- •2.4.7 Широтно-импульсный модулятор
- •2.4.8 Аналого-цифровой преобразователь
- •2.4.9 Цифро-аналоговый преобразователь
- •2.4.10 Приемопередатчик SPI
- •2.4.11 Приемопередатчик I2C
- •2.4.12 Приемопередатчик UART
- •2.4.13 Часы реального времени
- •2.5 О программировании ARM7 на ассемблере
- •2.5.1 Основные правила записи программ на ассемблере
- •2.5.2 Псевдокоманды
- •2.5.3 Директивы ассемблера
- •2.5.4 Макросы
- •2.5.5 Пример простой программы
- •2.6 Распространенные средства разработки и отладки
- •2.6.1 Демонстрационные платы EA-EDU-001 и EA-EDU-011
- •2.6.2 Внутрисхемный отладчик J-Link
- •2.6.3 Утилиты программирования ПЗУ LPC Flash Utility и FlashMagic
- •2.6.4 Программа-терминал 232Analyzer
- •2.6.5 Низкоуровневый редактор диска DMDE
- •Часть 3. Решение типовых задач локального управления
- •3.1 Формирование временной задержки с помощью цикла
- •3.1.1 Задание
- •3.1.2 Общие рекомендации
- •3.1.3 Алгоритм программы
- •3.1.4 Отладка
- •3.1.5 Дополнительные сведения о формировании временной задержки
- •3.2 Формирование дискретного сигнала с помощью таймера
- •3.2.1 Задание
- •3.2.2 Общие рекомендации
- •3.2.3 Алгоритм программы
- •3.3 Опрос дискретного датчика или кнопки
- •3.3.1 Задание
- •3.3.2 Общие рекомендации
- •3.3.3 Алгоритм программы
- •3.3.4 Отладка
- •3.4 Опрос состояния механических контактов с подавлением дребезга
- •3.4.1 Задание
- •3.4.2 Общие рекомендации
- •3.4.3 Алгоритм программы
- •3.4.4 Отладка
- •3.5 Опрос клавиатуры с автоповтором
- •3.5.1 Задание
- •3.5.2 Общие рекомендации
- •3.5.3 Алгоритм программы
- •3.5.4 Отладка
- •3.6 Формирование импульсного управляющего сигнала с помощью модуля ШИМ
- •3.6.1 Задание
- •3.6.2 Общие сведения
- •3.6.3 Алгоритм программы
- •3.6.4 Отладка
- •3.6.5 Синхронизация внешним сигналом
- •3.7 Формирование сигналов специальной формы с помощью ЦАП
- •3.7.1 Задание
- •3.7.2 Основы
- •3.7.3 Алгоритм программы
- •3.7.4 Повышение точности генерирования частоты
- •3.7.5 Выбор числа дискрет
- •3.8 Управление двухфазным шаговым двигателем
- •3.8.1 Задание
- •3.8.2 Общие сведения
- •3.8.3 Алгоритм программы
- •3.9 Применение ШИМ для формирования низкочастотных аналоговых сигналов
- •3.9.1 Задание
- •3.9.2 Основные сведения
- •3.9.3 Алгоритм основной программы
- •3.9.4 Алгоритм процедуры обработки прерывания
- •3.10 Управление символьным жидкокристаллическим индикатором
- •3.10.1 Задание
- •3.10.2 Управление модулем жидкокристаллической индикации
- •3.10.3 Разработка функции управления ЖКИ с ожиданием готовности
- •3.10.4 Функция вывода строки символов
- •3.10.5 Разработка функции инициализации модуля ЖКИ
- •3.10.6 Разработка тестовой программы
- •3.10.7 Управление ЖКИ с опросом флага готовности
- •3.10.8 Программирование произвольных символов
- •3.11 Управление матричным светодиодным индикатором
- •3.11.1 Задание
- •3.11.2 Основные рекомендации
- •3.11.3 Алгоритм основной программы
- •3.11.4 Алгоритм процедуры обработки прерывания
- •3.11.5 Реализация движения строки
- •3.12 Управление матричным жидкокристаллическим дисплеем
- •3.12.1 Управление дисплеем на основе контроллера PCF8833
- •3.12.2 Построение простейших геометрических фигур
- •3.13 Измерение постоянного напряжения
- •3.13.1 Задание
- •3.13.2 Основные рекомендации
- •3.13.3 Алгоритм основной программы
- •3.13.4 Алгоритм процедуры обработки прерывания от АЦП
- •3.13.5 АЦП с циклическим опросом нескольких каналов
- •3.13.6 Автоматический выбор пределов измерения
- •3.14 Измерение параметров уровня переменного напряжения
- •3.14.1 Задание
- •3.14.2 Основные рекомендации
- •3.14.3 Алгоритм основной программы
- •3.14.4 Алгоритм процедуры обработки прерывания
- •3.15 Измерение ускорения с помощью трехосевого акселерометра
- •3.16 Измерение интервалов времени с помощью таймера
- •3.16.1 Задание
- •3.16.2 Общие рекомендации
- •3.16.3 Алгоритм основной программы
- •3.16.4 Алгоритм процедуры обработки прерывания
- •3.16.5 Повышение разрешающей способности путем усреднения
- •3.16.6 Введение поправок
- •3.17 Измерение частоты с помощью счетчика
- •3.17.1 Задание
- •3.17.2 Основные рекомендации
- •3.17.3 Алгоритм программы
- •3.17.4 Повышение точности измерений
- •3.18 Опрос цифрового датчика температуры. Интерфейс I2C
- •3.18.1 Задание
- •3.18.2 Общие рекомендации
- •3.18.3 Алгоритм программы
- •3.20 Обмен данными с электрически перепрограммируемым ПЗУ
- •3.20.1 Задание
- •3.20.2 Общие сведения о микросхемах EEPROM
- •3.20.3 Адресация в микросхемах EEPROM
- •3.20.4 Порядок чтения EEPROM
- •3.20.5 Порядок записи EEPROM
- •3.20.6 Разработка программы чтения EEPROM
- •3.20.7 Разработка функции записи блока данных в EEPROM
- •3.21 Интерфейс RS-232. Прием и передача простых команд
- •3.21.1 Задание
- •3.21.2 Алгоритм программы
- •3.21.3 Автоматическая настройка скорости
- •3.22.1 Задание
- •3.22.2 Основные рекомендации
- •3.22.3 Алгоритм программы
- •3.23 Интерфейс RS-232. Прием пакета переменной длины
- •3.23.1 Задание
- •3.23.2 Основы реализации
- •3.23.3 Алгоритм программы
- •3.24 Обмен данными с картой памяти Secure Digital
- •3.24.1 Задание
- •3.24.2 Общие сведения о карах FLASH-памяти SD/MMC
- •3.24.3 Команды SD/MMC
- •3.24.4 Процедура инициализации карты
- •3.24.5 Чтение и запись данных
- •3.24.6 Обработка ошибок
- •3.24.7 Комментарии к алгоритму и программе
- •Алфавитный указатель управляющих регистров
- •Список литературы
- •Содержание
1.14.4 Порядок настройки ШИМ
1.Задать режим PWM для портовых линий, которые послужат выходами ШИМ через регистры PINSEL0, PINSEL1 (раздел 1.9.3).
2.Задать частоту импульсов путем записи в регистр PWMMR0 значения, рассчитанного по формуле (1.14.1) или (1.14.7).
3.Задать длительности импульсов и (или) начальные фазы с помощью регистров PWMMR1–6. Необходимо устанавливать значения только тех регистров, которые связаны с задействованными выходами ШИМ. Использовать выражения (1.14.2) при нулевой начальной фазе, выражения (1.14.3– 1.14.5) при регулируемой начальной фазе.
4.Произвести настройку счетчика модуля ШИМ через регистр PWMTCR. Необходимо установить бит включения счетчика; рекомендуется разрешить работу защелок. Следовательно, типовым значением является
.
5.Включить необходимые выходы ШИМ и выбрать режим управления начальной фазой для каждого канала через регистр PWMPCR.
После того как настройка произведена, генерирование прямоугольных импульсов с заданными параметрами будет продолжаться, не требуя никакого участия со стороны программы. Изменение параметров сигнала (частоты, начальной фазы, скважности) возможно в любой точке программы путем следующей последовательности действий:
а) запись новых значений в регистры PWMMR0–6;
б) установка битов разрешения обновления защелок в регистре PWMLER. Запись единиц должна производиться одной командой.
Сброс регистра PWMLER в ноль выполняется автоматически. Остановка ШИМ возможна путем сброса бита CNTEN в регистре
PWMTCR. Рекомендуется той же командой сбросить таймер установкой бита RESET в том же регистре.
В разделе 3.6 приведены выражения для расчета пороговых значений, позволяющие организовать ШИМ, частотное и фазовое управление.
1.15 Аналого-цифровые преобразователи
1.15.1 Краткие сведения о встроенных АЦП
Микроконтроллер LPC2148 оснащен двумя встроенными аналогоцифровыми преобразователями (АЦП) поразрядного уравновешивания. Основные параметры встроенных АЦП приведены в таблице 1.15.1.
Каждый АЦП с помощью аналогового мультиплексора позволяет выбирать один из нескольких сигналов, поступающих одновременно на аналоговые входы. Для АЦП 0 таких входов шесть (AD0.1–4, AD0.6.–7), для АЦП 1 — восемь (AD1.0–7). В остальном АЦП идентичны.
Входы АЦП совмещены с цифровыми портовыми линиями. Как было показано в разделе 1.9.3 выбор функции, выполняемой входом, осуществляется через регистры PINSEL0 и PINSEL1.
61
Таблица 1.15.1 – Основные параметры АЦП МК LPC2148
Разрядность, бит |
3–10 |
Мин. время преобразования при разрядности 10 бит, мкс |
2,44 |
Макс. производительность при разрядности 10 бит, преобр./с |
409 090 |
Мин. время преобразования при разрядности 3 бит, мкс |
0,89 |
Макс. производительность при разрядности 3 бит, преобр./с |
1 125 000 |
Число мультиплексируемых аналоговых входов (АЦП 0/1) |
6 / 8 |
Диапазон измеряемого напряжения |
0–3,3 В |
Имеется рекомендация, в соответствии с которой для сохранения точности выходное сопротивление источника измеряемого напряжения не должно превышать 40 кОм.
1.15.2 Общие рекомендации по использованию АЦП
Взаимодействие с аналого-цифровым преобразователем включает три основных действия: запуск АЦП, ожидание готовности результата преобразования, считывание и обработка результата. Существует несколько вариантов алгоритмической реализации взаимодействия с аналого-цифровым преобразователем. Основное отличие состоит в способе запуска АЦП. Запуск может осуществляться:
а) программным путем; б) по совпадению счетчика с пороговым значением;
в) внешним электрическим сигналом; г) окончанием предыдущего преобразования.
В таблице 1.15.2 дана краткая характеристика перечисленных способов. Ниже будут рассмотрены все способы взаимодействия с АЦП, даны рекомендации по выбору каждого варианта, а также предложены шаблоны программного кода для их реализации.
Программный запуск АЦП реализуется командой, выполняемой при наступлении некоторого события. Таким событием может быть нажатие кнопки, получение команды от компьютера, истечение интервала времени и т. п. Единственным преимуществом программного запуска является то, что он не требует привлечения других ресурсов МК, таких как таймерысчетчики.
При решении большинства задач желательна строгая периодичность запуска АЦП, а в некоторых случаях совершенно необходима. Могут быть названы следующие причины. Во-первых, большинство методов цифровой обработки сигналов разработаны для случая периодической дискретизации. Для их применения необходимо, чтобы дискретные отсчеты напряжения были получены через равные интервалы времени. Нарушение периодичности неизбежно приведет к возникновению дополнительного шума квантования.
Во-вторых, одним из распространенных способов борьбы с некоторыми видами помех является синхронизация частоты квантования с частотой измеряемого процесса или с частотой питающей сети.
62
Таблица 1.15.2 — Способы запуска АЦП в микроконтроллере LPC2148
Способ |
Преимущества |
Недостатки |
Применение |
||
запуска АЦП |
|||||
|
|
|
|
||
Программный |
Не задействует ап- |
Непериодиче- |
Измерение посто- |
||
|
паратных |
ская дискрети- |
янного или медлен- |
||
|
узлов МК |
зация |
но меняющегося |
||
|
|
|
напряжения с пери- |
||
|
|
|
одом дискретиза- |
||
|
|
|
ции от 0,1 с и выше |
||
От таймера |
Периодическая дис- |
Задействован |
Широкий круг за- |
||
|
кретизация; не тре- |
таймер |
дач цифровой обра- |
||
|
бует участия про- |
|
ботки сигналов |
||
|
граммы |
|
|
|
|
Внешним |
Синхронизация |
Задействован |
Системы импульс- |
||
сигналом |
внешним |
вывод МК; тре- |
но-фазового управ- |
||
|
процессом |
бует источника |
ления, цифровая |
||
|
|
синхросигнала |
обработка сигналов |
||
Непрерывное |
Периодическая дис- |
Ограниченные |
Цифровая |
обработ- |
|
преобразова- |
кретизация; не за- |
возможности |
ка сигналов с высо- |
||
ние |
действует узлов |
выбора частоты |
кими |
частотами |
|
|
МК; мин. задержки |
квантования |
квантования |
||
|
между преобр. |
|
|
|
Программный запуск АЦП практически не позволяет обеспечить строгую периодичность запуска АЦП, а значит и периода дискретизации сигнала. Причина заключается в том, что выполнение каждой итерации программы занимает различное время, например, из-за ветвлений с различным числом команд в ветвях. Дополнительные временные задержки создают прерывания от разных источников.
В связи с этим, программный запуск применять не рекомендуется. Программный запуск допустим лишь в случаях, когда нет необходимости в строгой периодичности дискретизации, например при измерении постоянного или медленно меняющегося напряжения и притом, что нежелательно использовать один из таймеров-счетчиков специально для формирования сигнала запуска АЦП.
Отметим, что команда запуска АЦП, помещенная в процедуре обработки прерывания от таймера также не обеспечит строгой дискретизации. Точнее обеспечит периодичность с некоторой погрешностью. Погрешность возникает вследствие неизбежных временных задержек, которые имеют случайный характер (см. раздел 1.11.8).
Автоматический запуск при достижении таймером заданного по-
рогового значения. Этот способ можно назвать наиболее универсальным и пригодным для решения большинства практических задач. Сигнал, формируемый схемой совпадения таймера-счетчика, приведет к запуску без участия программы. Запуск осуществляется строго периодически. Прерывание от
63
таймера при этом использовать не требуется. Это является еще одним преимуществом — отсутствуют затраты процессорного времени на обработку прерывания и команды запуска АЦП. Имеется единственный недостаток — использование важного аппаратного ресурса — таймера-счетчика.
Считывание результата можно организовать путем программного опроса, либо с помощью прерывания от АЦП. Второй вариант предпочтителен.
Запуск внешним электрическим сигналом. Внешний пуск обеспе-
чивает синхронизацию процесса квантования с измеряемым процессом, что в некоторых задачах совершенно необходимо, а в ряде других случаев, как упоминалось выше, позволяет устранить некоторые составляющие случайной погрешности. Использование одного из выводов МК, является несущественным недостатком. Существенную трудность составляет необходимость построения аппаратной схемы синхронизации.
Непрерывная работа. В таком случае также обеспечивается строгая периодичность, однако, доступна фиксированная сетка частот тактирования АЦП и соответствующих частот квантования. При этом не предоставляется возможность выбирать период квантования с шагом в один машинный цикл МК. Доступный шаг гораздо больше. Следует отметить, что такой способ запуска может гарантировать работу АЦП без простоев, то есть позволяет добиться наибольшей его производительности.
1.15.3 Управляющие регистры
Рассмотрим регистры, отвечающие за настройку аналого-цифровых преобразователей (рисунок 1.15.1).
Регистры ADxCR
●Биты 0–7 (SEL) отвечают за выбор каналов АЦП. Каждому биту соответствует канал с тем же номером AD0.0–AD0.7 (АЦП 0) или AD1.0–AD1.7 (АЦП 1). Одновременная установка нескольких битов допускается только в режиме автоматического сканирования каналов (см. ниже).
●Биты 8–15 (CLKDIV) служат для выбора тактовой частоты АЦП. Тактовая частота определяется по формуле
, |
(1.15.1) |
где — тактовая частота периферийных устройств, которая может быть равна целой, половине или четверти тактовой частоты МК (раздел 1.7.2). Значение не должно превышать 4,5 МГц.
●Бит 16 (BURST). Единица в данном разряде переводит АЦП в режим автоматического сканирования каналов. Производится поочередное преобразование сигналов в каналах, выбранных битами SEL. В этом режиме биты START (см. ниже) должны быть равны нулю.
●Биты 17–19 (CLKS) имеют значение только в режиме автоматического сканирования каналов (). Эти биты определяют время преобразования и разрядность результата. Значению соответствует время преобразования 11 тактов, разрядность 10 бит. С увеличением на единицу CLKCS, на единицу уменьшается время преобразования и разрядность.
64
65
ADxCR – настройка АЦП
31 |
|
|
|
|
|
28 |
|
27 |
26 |
24 |
23 |
22 |
21 |
20 |
19 |
17 |
16 |
15 |
8 |
7 |
|
|
0 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GE |
START |
|
|
|
|
|
|
|
CLKS |
|
|
T |
|
|
CLKDIV |
|
|
|
SEL |
|
||||
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
S |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
ED |
|
|
|
|
|
PD |
|
|
|
|
BUR |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
Фронт/срез |
|
|
|
Способ запуска |
|
|
|
ВКЛ |
|
|
Число тактов |
|
|
|
|
|
|
Делитель частоты |
|
|
Выбор каналов АЦП ADx.7:0 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в непр. режиме |
|
|
|
|
Непрерывное преобразование |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
ADGSR – запуск всех АЦП |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
31 |
|
|
|
|
|
28 |
|
27 |
26 |
24 |
23 |
|
|
20 |
19 |
17 |
16 |
15 |
8 |
7 |
|
|
0 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GE |
START |
|
|
|
|
|
|
|
|
|
ST |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BUR |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
ED |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
Фронт/срез |
|
|
|
Способ запуска |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Непрерывное преобразование |
|
|
|
|
|
||||||||
ADxGDR – общий результат |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
31 |
30 |
|
29 |
28 |
|
27 |
26 |
24 |
23 |
|
|
|
|
|
|
16 |
15 |
8 |
7 |
6 |
5 |
0 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
- |
|
|
|
|
|
|
|
|
CHN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RESULT |
|
|
|
|
|
|
VE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
DO |
O UN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
R |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Готов |
|
|
|
Потеря результата |
Номер канала |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Результат аналого-цифрового преобразования |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
ADxDRx – результат для канала |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
31 |
30 |
|
29 |
28 |
|
27 |
|
24 |
23 |
|
|
|
|
|
|
16 |
15 |
8 |
7 |
6 |
5 |
0 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NE |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RESULT |
|
|
|
|
|
|
VE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
DO |
O N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
RU |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Готов |
|
|
|
Потеря результата |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Результат аналого-цифрового преобразования |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADxSTAT – состояние
31 |
24 |
23 |
20 |
19 |
17 |
16 |
15 |
|
|
|
|
8 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADINT |
|
|
OVERUN7:0 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потеря результата каналов ADx.7:0 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Флаг прерывания |
|
|
|
|
|
||||
ADxINTEN – управление прерыванием |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
31 |
24 |
23 |
|
|
|
|
16 |
15 |
12 |
|
11 |
9 |
8 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADG |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INTEN |
Разр. прер. от всех каналов
7 |
0 |
DONE7:0
Готовность результата каналов ADx.7:0
7 |
0 |
ADINTEN7:0
Разрешение прерываний от каналов ADx.7:0
Рисунок 1.15.1 – Схема регистров для управления аналого-цифровыми преобразователями
Таблица 1.15.3 – Режимы запуска АЦП
START |
Режим запуска АЦП |
000 |
Преобразования не выполняются |
001 |
Запустить преобразование немедленно |
010 |
Запуск внешним сигналом на входе P0.16 |
011 |
Запуск внешним сигналом на входе P0.22 |
100 |
Запуск сигналом MAT0.1 |
101 |
Запуск сигналом MAT0.3 |
110 |
Запуск сигналом MAT1.0 |
111 |
Запуск сигналом MAT1.1 |
Значению соответствует время преобразования 4 такта, разрядность 3 бита. При разрядность составляет 10 бит, преобразование занимает 11 тактов независимо от состояния CLKS.
Минимальное время преобразования определяется выражением
(мкс), |
(1.15.2) |
где — разрядность АЦП.
●Бит 21 (PDN) включает (1) и отключает (0) АЦП. Должен быть установлен в единицу.
●Биты 24–26 (START) служат для выбора способа запуска АЦП (таблица 1.15.3). Эти биты должны быть равны нулю в режиме автоматического сканирования каналов ().
Следует понимать принципиальное отличие запуска внешним сигналом на входах P0.16 и P0.22 от запуска сигналами MATx.x, которые формируются внутренней схемой совпадения встроенного таймера-счетчика и могут не быть подключенными к внешним выводам МК (раздел 1.13.1).
●Бит 27 (EDGE). Выбор нарастающего (0) или спадающего (1) фронта сигнала запуска АЦП при .
Регистр ADGSR позволяет одновременно настроить запуск двух АЦП. Значения битов BURST, START, EDGE абсолютно аналогичны регистрам ADxCR. Остальные биты должны задаваться отдельно для каждого АЦП через регистр ADxCR.
Регистр ADxGDR. Результат аналого-цифрового преобразования счи-
тывается из регистров AD0GDR и AD1GDR (ADxGDR).
●Биты 6–15 (RESULT) содержат десятиразрядный результат аналогоцифрового преобразования. Входное напряжение АЦП связано с результатом АЦП и опорным напряжением, подключенным к входу Vref МК, выражением
. (1.15.3)
●Биты 24–26 (CHN) содержат двоичный номер канала АЦП от 0 (000) до 7 (111), для которого получен результат, хранимый в разрядах RESULT.
●Бит 30 (OVERUN). Бит равен единице, если в режиме автоматического сканирования каналов () результат АЦП потерян, то есть не
66