- •Перечень сокращений
- •Предисловие
- •Введение
- •Часть 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 Комментарии к алгоритму и программе
- •Алфавитный указатель управляющих регистров
- •Список литературы
- •Содержание
FIO0MASK0=0xBF;
FIO0PIN0=Bit << 6;
Пример 4 (вывод 12-го бита переменной в 1-ый бит порта):
FIO0MASK0=0xFD;
FIO0PIN0=(Word & 0x1000) >> 11;
Регистры FIOxDIR, FIOxPIN, FIOxSET, FIOxCLR полностью ана-
логичны соответствующим регистрам для низкоскоростного режима.
Регистры FIOxPINL, FIOxPINU (FIO0PINL, FIO0PINU, FIO1PINL, FIO1PINU) предназначены для чтения и записи порта в формате 16-разрядного слова. FIOxPINL связан с портовыми линиями Px.0–Px.15, FIOxPINU — с линиями Px.16–Px.31 (рисунок 1.10.2).
Регистры FIOxPIN0–FIOxPIN3 (FIO0PIN0–FIO0PIN3, FIO1PIN0– FIO1PIN3) предназначены для чтения и записи порта в байтовом формате. FIOxPIN0 связан с портовыми линиями Px.0–Px.7, FIOxPIN1 — с линиями
Px.8–Px.15 и т. д. (рисунок 1.10.4).
Регистры FIOxMASK (FIO0MASK, FIO1MASK) предназначены для наложения маски при всех операциях с портами. Установка единиц в некоторые разряды приводит к блокировке любых изменений соответствующих портовых линий через FIOxPIN, FIOxSET и FIOxCLR.
31 |
|
|
|
|
|
|
0 |
|
|
|
FIOxPIN |
|
|
|
|
15 |
|
|
0 |
15 |
|
|
0 |
FIOxPINU |
|
|
FIOxPINL |
||||
7 |
0 |
7 |
0 |
7 |
0 |
7 |
0 |
FIOxPIN3 |
|
FIOxPIN2 |
|
|
FIOxPIN1 |
|
FIOxPIN0 |
Рисунок 1.10.4 – Схема регистров управления портами в режимах четырехбайтного слова, двухбайтного слова и в байтовом режиме
Примечание. Для управления портами в формате байта и 16разрядного слова кроме FIOxPINL/U и FIOxPIN0–3, все другие регистры
(FIOxDIR, FIOxSET, FIOxCLR, FIOxMASK) допускают использование в кон-
це имени номеров 0–3 и обозначений «L/U».
1.11 Система прерываний
1.11.1 Назначение системы прерываний
Система прерываний представляет собой комплекс аппаратных средств микроконтроллера, обеспечивающих быструю реакцию на определенные события, возникающие в самом микроконтроллере или в среде, с которой он взаимодействует. Такими событиями может быть электрический сигнал на портовой линии, достижение таймером-счетчиком определенного значения, завершение аналого-цифрового преобразования или передачи данных по одному из поддерживаемых интерфейсов.
41
Событие, требующее немедленной реакции и программной обработки, называется прерывающим событием. Возникновение такого события сопровождается специальным сигналом — запросом прерывания. Устройство, генерирующее этот сигнал, будем называть источником прерывания.
Упрощенно процесс обработки прерывания можно описать так: а) источник прерывания формирует запрос прерывания;
б) система прерываний приостанавливает выполнение основной программы и передает управление процедуре обработки прерывания;
в) после завершения процедуры обработки прерывания управление возвращается в основную программу.
Перечисленные действия могут быть организованы алгоритмически (программным путем) без использования специальных аппаратных средств. Однако для этого потребуется периодически опрашивать потенциальные источники прерываний в ожидании появления запросов. Программный опрос приведет к усложнению алгоритма и неизбежным запаздываниям в реакциях на прерывающие события. В то время как система прерываний обеспечит непрерывное слежение за всеми источниками и в случае появления запроса запустит процедуру обработки прерывания с минимальной задержкой.
Архитектура ARM7 поддерживает три вида прерываний: векторное IRQ, невекторное IRQ и быстрое FIQ. Одновременно поддерживается обработка не более 16 источников векторных прерываний, каждому из которых может быть назначен произвольный адрес обработчика. Если необходимо обеспечить поддержку более 16 источников прерываний, то используют невекторные прерывания с общим адресом обработчика. Процесс реакции на векторные и невекторные прерывания один и тот же. Быстрое прерывание FIQ имеет приоритет выше, чем IRQ и может прерывать обработку IRQ. Предусмотрен только один обработчик всех запросов FIQ с единственным адресом. Запрос от каждого источника может быть классифицирован как IRQ
или FIQ через регистр VICIntSelect (раздел 1.11.4).
1.11.2 Процесс обработки прерываний IRQ
Прерывания IRQ и FIQ являются частным случаем исключительных ситуаций. Процесс обработки прерывания подчинен общему порядку для исключений, рассмотренному в разделе 1.6.
При возникновении прерывания, классифицированного как IRQ, выполняются следующие действия:
1)содержимое счетчика команд , указывающее на следующую команду, сохраняется в R14_irq (LR);
2)слово состояния программы CPSR сохраняется в SPSR_irq;
3)режим меняется на IRQ;
4)бит I в слове состояния программы CPSR устанавливается в единицу, что запрещает все прерывания IRQ;
5)регистр VICVectAddr загружается адресом процедуры обработки прерывания из регистра VICVectAddr0–15, где 0–15 — номер слота, c которым связан данный источник прерывания;
42
6)в счетчик команд R15 (PC) записывается адрес 0x00000018, что приводит к немедленной передаче управления по этому адресу;
7)выполняется инструкция
LDR |
PC, [PC, #-0x0FF0] |
расположенная по адресу 0x00000018, что приводит к записи в счетчик команд содержимого регистра VICVectAddr с адресом
;
8) управление получает процедура обработки прерываний, адрес которой был задан в регистре VICVectAddr.
Процедура обработки прерываний начинается с команды STM, сохраняющей в стек все используемые регистры общего назначения (R0–R12).
1.11.3 Процесс обработки быстрых прерываний FIQ
При возникновении прерывания, классифицированного как FIQ, выполняются следующие действия:
1)счетчик команд , сохраняется в R14_fiq (LR);
2)слово состояния программы CPSR сохраняется в SPSR_fiq;
3)режим меняется на FIQ;
4)биты I, F в слове состояния программы CPSR устанавливается в единицу, что запрещает все прерывания IRQ и FIQ;
5)управление передается команде по адресу 0x0000001С путем записи этой константы в счетчик команд R15 (PC);
6)выполняется инструкция
LDR |
PC, [PC, #Смещение] |
что приводит к загрузке в счетчик команд адреса обработчика быстрого прерывания;
7) управление получает процедура обработки быстрого прерывания.
1.11.4 Регистры управления системой прерываний
Большинство регистров, предназначенных для управления системой прерываний или слежения за ее состоянием, имеют структуру, схематично показанную на рисунке 1.11.1. Каждый бит регистра соответствует одному из источников прерываний.
Регистр VICRAWStatus. Единица в любом из разрядов информирует о получении запроса прерывания от соответствующего источника, причем независимо от того разрешено ли прерывание (см. также VICIntEnable).
Регистр VICIRQStatus. То же, что VICRAWStatus, но единицами отмечаются только источники, прерывания от которых разрешены и классифицированы как IRQ (см. также VICIntSelect).
Регистр VICFIQStatus. То же, что VICIRQStatus, но для прерываний, классифицированных как FIQ.
Регистр VICIntEnable. Установка единицы в любой из разрядов разрешает обработку запросов прерывания от соответствующего источника. Сброс в ноль не имеет значения. Запрет обработки прерываний осуществляется через регистр VICIntEnClear.
43
Регистр VICIntEnClear. Установка единицы в любой из разрядов запрещает обработку запросов прерывания от соответствующего источника.
Регистр VICIntSelect. Сброс в ноль любого из разрядов классифицирует соответствующий источник как IRQ. Адрес обработчика прерывания должен храниться в одном из регистров VICVectAddr0–15 в зависимости от слота, назначенного данному источнику. Установка единицы классифицирует соответствующий источник как FIQ. Тогда адрес обработчика прерывания задается инструкцией по вектору 0x0000001C.
Регистр VICSoftInt. Установка единицы в любой из разрядов вызывает обработку прерывания от соответствующего обработчика программным путем. Прерывание будет возникать циклически, пока данный регистр содержит единицы в разрядах, соответствующих разрешенным прерываниям.
Регистр VICSoftIntClear. Установка единицы в любой из разрядов снимает программный запрос прерывания, выполненный через VICSoftInt.
Регистры VICVectCntl0–15 предназначены для того, чтобы распределить используемые источники прерываний по 16 слотам. Структура регистра показана на рисунке 1.11.1.
●Бит 5 (SlotEN) должен быть установлен в единицу.
●Биты 0–4 (IntRequest) назначают данному слоту номер источника прерывания. Номера источников прерываний соответствуют номерам битов
VICVecCntl0-15 – управление слотами векторных прерываний
15 |
8 |
7 |
6 |
5 |
|
|
|
|
N |
|
|
|
|
tE |
|
|
|
|
lo |
|
|
|
|
S |
Включить слот
4 |
0 |
IntRequest
Номер запроса прерывания
VICProtection – защита слотов
15 |
8 |
7 |
4 |
3 |
1 |
|
0 |
|
|
|
|
|
|
|
IC |
|
s |
||
|
|
|
|
|
V |
|
|
es |
|
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
a |
|
|
|
Запретить управление из режима User
Маска регистров управления системой прерываний
31 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
||||
|
|
|
|
B |
1 |
D |
|
|
1 |
0 |
T3 |
|
2 |
|
|
|
|
|
|
T |
|||||||
|
|
|
S |
D |
BO |
I |
C |
D |
E |
E |
|
||
|
|
|
U |
|
A |
|
|
A |
|
||||
|
|
|
|
|
|
|
2 |
|
|
IN |
IN |
|
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
|
7 |
|
6 |
5 |
4 |
3 |
|
2 |
|
1 |
0 |
|||||||||
|
|
1 |
|
0 |
|
C |
|
L |
|
I1 |
0 |
|
0 |
0 |
|
1 |
|
0 |
r1 |
er0 |
M |
1 |
M |
|
0 |
T |
|||
|
T |
T |
|
|
P |
P |
|
M |
|
RT |
|
RT |
e |
R |
|
R |
|
|
|||||||||||
|
IN |
|
IN |
|
T |
L |
PI |
C |
|
|
re |
|
e |
D |
|||||||||||||||
|
|
|
R |
|
P |
|
S |
|
S |
I2 |
|
W |
A |
A |
im |
im |
A |
A |
r |
|
W |
||||||||
|
E |
|
E |
|
|
|
|
|
S |
|
|
o |
|
o |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
S |
|
|
|
P |
U |
|
U |
|
T |
T |
C |
|
C |
|
|
|
|
||
22 |
– USB ― приемопередатчик USB |
|
|
|
|
|
|
|
|
9, 19 – I2C0/1 ― приемопередатчики I2C |
|
||||||||||||||||||
20 |
– BOD ― монитор питания |
|
|
|
|
|
|
|
|
|
|
8 – PWM0 ― широтно-импульсный модулятор |
|||||||||||||||||
18, 21 – AD0/1 ― аналого-цифровой преобразователь |
|
|
6, 7 – UART0/1 ― приемопередатчики UART |
||||||||||||||||||||||||||
14–17 – EINT0–EINT3 ― запрос внешним сигналом |
|
|
4, 5 – Timer0/1 ― таймеры-счетчики |
|
|||||||||||||||||||||||||
13 |
– RTC ― часы реального времени |
|
|
|
|
|
|
|
2, 3 – ARM Core0/1 ― резерв |
|
|
|
|
|
|
||||||||||||||
12 |
– PLL ― умножитель тактовой частоты |
|
|
|
|
|
|
0 – WDT ― сторожевой таймер |
|
|
|
|
|
10, 11 – SPI0/1 ― приемопередатчики SPI
Рисунок 1.11.1 – Структура основных регистров управления системой прерываний
44