ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 14.01.2021

Просмотров: 9013

Скачиваний: 82

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

1Про данное руководство

1.1Рекомендации по чтению руководства

1.2Ресурсы

1.3Рекомендовано для прочтения

2Обзор

2.1Функциональная схема

3ЦПУ AVR

3.1Отличительные особенности

3.2Обзор

3.3Обзор архитектуры

3.4Арифметико-логическое устройство

3.4.1Аппаратное умножающее устройство

3.5Программный поток

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

3.7Регистр статуса

3.8Стек и указатель стека

3.9Регистровый файл

3.9.1Регистры X, Y и Z

3.10Регистры RAMP и расширенной косвенной адресации

3.10.1Регистры RAMPX, RAMPY и RAMPZ

3.10.2Регистр RAMPD

3.10.3Регистр расширенной косвенной адресации EIND

3.11Доступ к 16-битным регистрам

3.11.1Доступ к 24- и 32-битным регистрам

3.12Защита от изменения конфигурации

3.12.1Последовательность записи защищенных регистров ввода-вывода

3.12.2Последовательность выполнения защищенных инструкций SPM/LPM

3.13Fuse-биты для блокировки изменений

3.14Описание регистров

3.14.1Регистр защиты от изменения конфигурации CCP

3.15Краткий обзор регистров

4Запоминающие устройства

4.1Отличительные особенности

4.2Обзор

4.3Flash-память программ

4.3.1Сектор прикладной программы

4.3.2Сектор таблицы приложения

4.3.3Загрузочный сектор

4.3.4Сигнатурный код производителя и ячейки калибровки

4.3.4.1Сигнатурный код пользователя

4.4Fuse- и Lock-биты

4.5Память данных

4.6Внутреннее SRAM

4.7EEPROM

4.7.1Доступ к EEPROM в пространстве памяти данных

4.8Память ввода-вывода

4.8.1Регистры ввода-вывода общего назначения

4.9Внешняя память

4.10Память данных и арбитраж шины

4.10.1Шинный приоритет

4.11Временные характеристики доступа к памяти

4.12Идентификация микроконтроллера

4.13Отключение порта JTAG

4.14Защита памяти ввода-вывода

4.15Описание регистров контроллера NVM энергонезависимой памяти

4.16Описание регистров - Fuse- и Lock-биты

4.16.1FUSEBYTE0 - конфигурационный байт 0 энергонезависимой памяти - JTAG-идентификатор пользователя

4.17Описание регистров - сигнатурный код производителя

4.17.1RCOSC2M - регистр калибровочного значения внутреннего генератора частоты 2 МГц

4.18Описание регистров - память ввода-вывода общего назначения

4.18.1GPIORn - регистр ввода-вывода n общего назначения

4.19Описание регистров внешней памяти

4.20Описание регистров управления МК

4.20.1DEVID0 - регистр 0 идентификатора МК

4.21Обзор регистров контроллера энергонезависимой памяти

4.22Обзор регистров Fuse- и Lock-бит

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

4.24Обзор регистров ввода-вывода общего назначения

4.25Обзор регистров управления микроконтроллером

4.26Векторы прерываний контроллера энергонезависимой памяти

5Контроллер прямого доступа к памяти (DMA-контроллер)

5.1Отличительные особенности

5.2Обзор

5.3Транзакция DMA

5.3.1Передача блока и повтор

5.3.2Передача пакета

5.4Запуск передачи

5.5Адресация

5.6Приоритеты каналов

5.7Двойная буферизация

5.8Передача буферов

5.9Обнаружение ошибок

5.10Программный сброс

5.11Защита

5.12Прерывания

5.13Описание регистров DMA-контроллера

5.13.1CTRL - регистр управления DMA

5.13.2INTFLAGS - регистр статуса прерываний DMA

5.13.3STATUS - Регистр статуса DMA

5.13.4TEMPH - старший байт временного регистра DMTEMP

5.13.5TEMPL - младший байт временного регистра DMTEMP

5.14Описание регистров DMA-канала

5.14.1CTRLA - регистр А управления DMA-каналом

5.14.2CTRLB - регистр B управления DMA-каналом

5.14.3ADDRCTRL - регистр управления адресом DMA-канала

5.14.4TRIGSRC - источник запуска DMA-канала

5.14.5TRFCNTH - старший регистр счетчика байт при передаче блока по DMA-каналу

5.14.6TRFCNTL - младший регистр счетчика байт при передаче блока по DMA-каналу

5.14.7REPCNT - регистр счетчика повторов в DMA-канале

5.14.8SRCADDR2 - регистр 2 адреса источника DMA-канала

5.14.9SRCADDR1 - регистр 1 адреса источника DMA-канала

5.14.10SRCADDR0 - регистр 0 адреса источника DMA-канала

5.14.11DESTADDR2 - регистр 2 адреса получателя DMA-канала

5.14.12DESTADDR1 - регистр 1 адреса получателя DMA-канала

5.14.13DESTADDR0 - регистр 0 адреса получателя DMA-канала

5.15Обзор регистров DMA-контроллера

5.16Обзор регистров DMA-канала

5.17Обзор векторов прерываний DMA

5.18Использование DMA микропроцессора Xmega

5.18.1Каналы DMA

5.18.2Передача данных

5.18.3Блочная передача и режим повтора

5.18.4DMA посылка

5.18.5Режимы адресации

5.18.6Перезагрузка адреса

5.18.7Запуск передачи и режим однократного запуска

5.18.8Обработка прерываний

5.18.9Доступ контроллера DMA к многобайтным регистрам

5.18.10Дополнительные возможности

5.18.11С чего начать

6Система событий

6.1Отличительные особенности

6.2Обзор

6.3События

6.3.1Сигнальные события

6.3.2Информационные события

6.3.3Ручная генерация событий

6.4Сеть маршрутизации событий

6.5Временные характеристики передачи событий

6.6Фильтрация

6.7Квадратурный декодер

6.7.1Работа квадратурного декодера

6.7.2Настройка квадратурного декодера

6.8Описание регистров

6.8.1CHnMUX - регистр мультиплексора канала события n

6.8.2CHnCTRL - Регистр управления каналом события n

6.8.3STROBE - строб-регистр события

6.8.4DATA - регистр данных события

6.9Обзор регистров

7Системная синхронизация и источники синхронизации

7.1Отличительные особенности

7.2Обзор

7.3Распределение сигналов синхронизации

7.3.1Сигнал системной синхронизации- CLKsys

7.3.2Сигнал синхронизации ЦПУ - CLKcpu

7.3.3Сигнал синхронизации УВВ - CLKper

7.3.4Сигналы синхронизации УВВ с удвоенной/учетверенной частотой – CLKper2/CLKper4

7.3.5Асинхронный сигнал синхронизации - CLKasy

7.4Источники синхронизации

7.4.1Внутренние генераторы

7.4.1.1Сверхмаломощный генератор частоты 32 кГц (ULP-генератор)

7.4.1.2Внутренний калиброванный генератор частоты 32.768 кГц

7.4.1.3Внутренний генератор частоты 32 МГц с возможностью автоматической калибровки

7.4.1.4Внутренний генератор частоты 2 МГц с возможностью автоматической калибровки

7.4.2Внешние источники синхронизации

7.4.2.1Кварцевый генератор частоты 0.4…16 МГц

7.4.2.2Вход внешней синхронизации

7.4.2.3Кварцевый генератор частоты 32 кГц

7.5Настройка системной синхронизации и предделителей частоты

7.6Блок PLL с коэффициентом умножения от 1 до 31

7.7Блоки DFLL 2- и 32-мегагерцевых генераторов

7.8Функция обнаружения отказа внешнего источника синхронизации

7.9Описание регистров системы синхронизации

7.9.1CTRL - регистр управления системной синхронизацией

7.10Описание регистров генераторов

7.10.1CTRL - регистр управления генераторами

7.11Описание регистров блоков DFLL32M/DFLL2M

7.11.1CTRL - регистр управления блоком DFLL

7.12Обзор регистров системы синхронизации

7.13Обзор регистров генераторов

7.14Обзор регистров блоков DFLL32M/DFLL2M

7.15Обзор вектора прерывания при отказе кварцевого генератора

8Управление энергопотреблением и экономичные режимы

8.1Отличительные особенности

8.2Обзор

8.3Экономичные режимы работы

8.3.1Режим IDLE

8.3.2Режим POWER-DOWN

8.3.3Режим POWER-SAVE

8.3.4Режим STANDBY

8.3.5Режим EXTENDED STANDBY

8.4Регистры снижения энергопотребления

8.5Описание регистров управления экономичными режимами

8.5.1CTRL- регистр управления экономичными режимами работы

8.6Описание регистров снижения энергопотребления

8.6.1PRGEN - общий регистр снижения энергопотребления

8.6.2PRPA/B - регистр снижения энергопотребления порта А/В

8.6.38.6.3. PRPC/D/E/F - регистр снижения энергопотребления порта C/D/E/F

8.7Обзор регистров управления экономичными режимами работы

8.8Обзор регистров управления энергопотреблением

9Система сброса

9.1Отличительные особенности

9.2Обзор

9.3Последовательность сброса

9.3.1Счетчик задержки сброса

9.3.2Запуск генератора

9.3.3Калибровка генератора

9.4Источники сброса

9.4.1Сброс при подаче питания

9.4.2Супервизор питания

9.4.3Сброс от детектора просадки питания

9.4.4Внешний сброс

9.4.5Сброс сторожевым таймером

9.4.6Программный сброс

9.4.7Сброс через интерфейс программирования и отладки

9.5Описание регистров

9.5.1STATUS - Регистр статуса сброса

9.5.2CTRL - регистр управления сбросом

9.6Обзор регистров

10Система резервного батарейного питания

10.1Отличительные особенности

10.2Обзор

10.3Модуль с резервированием питания

10.3.1Обнаружение подачи питания резервного батарейного питания

10.3.2Супервизор батарейного питания

10.4Исчезновение основного питания

10.5Основной сброс и последовательность запуска

10.5.1Резервирование питания разрешено

10.5.2Резервирование питания не разрешено и сбой в его работе

10.6Описание регистров

10.6.1CTRL: регистр управления резервированием питания

10.6.2STATUS: регистр статуса модуля с резервированием питания

10.6.3BACKUP0: регистр 0 с резервным батарейным питанием

10.7Обзор регистров

11Сторожевой таймер WDT

11.1Отличительные особенности

11.2Обзор

11.3Нормальный режим работы

11.4Оконный режим работы

11.5Синхронизация сторожевого таймера

11.6Защита и блокировка конфигурации

11.7Описание регистров

11.7.1CTRL - регистр управления сторожевым таймером

11.7.2WINCTRL - регистр управления оконным режимом

11.7.3STATUS - регистр статуса сторожевого таймера

11.8Обзор регистров

12Прерывания и программируемый многоуровневый контроллер прерываний

12.1Отличительные особенности

12.2Обзор

12.3Принцип действия

12.4Прерывания

12.4.1Немаскируемые прерывания (NMI)

12.4.2Задержка реагирования на прерывание

12.5Уровень прерывания

12.6Приоритет прерывания

12.6.1Статическая приоритезация

12.6.2Динамическая приоритезация

12.7Перемещение векторов прерываний между сектором прикладной программы и загрузочным сектором

12.8Описание регистров

12.8.1STATUS - регистр статуса PMIC-контроллера

12.8.2INTPRI - регистр приоритета прерываний PMIC Priority Register

12.8.3CTRL - регистр управления PMIC-контроллером

12.9Обзор регистров

13Порты ввода-вывода

13.1Отличительные особенности

13.2Обзор

13.3Использование линий ввода-вывода

13.4Настройка линий ввода-вывода

13.4.1Двухтактный выход

13.4.2Подтягивание к минусу питания

13.4.3Подтягивание к плюсу питания

13.4.4Адаптивная подтяжка

13.4.5Выход "монтажное ИЛИ"

13.4.6Выход "монтажное И"

13.5Опрос состояния линии в/в

13.6Настройка параметров контроля входа

13.7Прерывания порта

13.8Генерация событий портом ввода-вывода

13.9Альтернативные функции портов

13.10Управление скоростью фронтов

13.11Вывод синхронизации и событий

13.12Мультипортовая конфигурация

13.13Виртуальные регистры

13.14Описание регистров портов

13.14.1DIR - регистр направления

13.14.2DIRSET - регистр установки бит направления

13.14.3DIRCLR - регистр сброса бит направления

13.14.4DIRTGL - регистр инвертирования бита направления

13.14.5OUT - регистр вывода данных

13.14.6OUTSET - регистр установки выходов порта

13.14.7OUTCLR - регистр сброса выходов порта

13.14.8OUTTGL - регистр инвертирования выходов порта

13.14.9IN - регистр ввода данных

13.14.10INTCTRL - регистр управления прерываниями

13.14.11INT0MASK - регистр маски прерывания 0

13.14.12INT1MASK - регистр маски прерывания 1

13.14.13INTFLAGS - регистр флагов прерывания

13.14.14PINnCTRL - конфигурационный регистр линии n

13.15Описание регистров мультипортовой конфигурации

13.15.1MPCMASK - регистр маски одновременной и одинаковой конфигурации нескольких линий в/в

13.15.2VPCTRLA - регистр А управлению связью с виртуальными портами

13.15.3VPCTRLB - регистр В управлению связью с виртуальными портами

13.15.4CLKEVOUT - регистр вывода сигналов событий и синхронизации

13.16Описание регистров виртуальных портов

13.16.1DIR - регистр направления

13.16.2OUT - регистр вывода данных

13.16.3IN - регистр ввода данных

13.16.4INTFLAGS - регистр флагов прерываний

13.17Обзор регистров портов

13.18Обзор регистров мультипортовой конфигурации

13.19Обзор регистров виртуальных портов

13.20Обзор векторов прерываний портов ввода-вывода

1416-битный таймер-счетчик

14.1Отличительные особенности

14.2Обзор

14.2.1Определения

14.3Функциональная схема

14.4Источники синхронизации и событий

14.5Двойная буферизация

14.6Работа счетчика

14.6.1Нормальная работа

14.6.2Управляемый событиями режим работы

14.6.332-битная работа

14.6.4Изменение периода

14.7Канал захвата

14.7.1Входной захват

14.7.2Захват частоты

14.7.3Захват длительности импульса

14.7.432-битный входной захват

14.7.5Переполнение захвата

14.8Канал сравнения

14.8.1Генерация импульсов

14.8.2Генерация частотных сигналов (FRQ)

14.8.3Генерация ШИМ сигнала в режиме PWM с однонаправленным счетом

14.8.4Генерация ШИМ сигнала в режиме PWM с двунаправленным счетом

14.8.5Вывод сигналов генератора импульсов на линии порта

14.9Прерывания и события

14.10Поддержка DMA

14.11Команды таймера-счетчика

14.12Описание регистров

14.12.1CTRLA - регистр управления А

14.12.2CTRLB - регистр управления В

14.12.3CTRLC - регистр управления C

14.12.4CTRLD - регистр управления D

14.12.5CTRLE - регистр управления E

14.12.6INTCTRLA - регистр А разрешения прерываний

14.12.7INTCTRLB - регистр В разрешения прерываний

14.12.8CTRLFCLR/CTRLFSET - сброс/установка регистра управления F

14.12.9CTRLGCLR/CTRLGSET - сброс/установка регистра управления G

14.12.10INTFLAGS - регистр флага прерывания

14.12.11TEMP - временный регистр для 16-битного доступа

14.12.12CNTH - старший регистр счетчика

14.12.13CNTL - младший регистр счетчика

14.12.14PERH - старший регистр периода

14.12.15PERL - младший регистр периода

14.12.16CCxH - старший регистр n захвата/сравнения

14.12.17CCxL - младший регистр n захвата/сравнения

14.12.18PERBUFH - старший буферный регистр периода таймера-счетчика

14.12.19PERBUFL - младший буферный регистр периода таймера-счетчика

14.12.20CCxBUFH - старший регистр буфера захвата или сравнения х

14.12.21CCxBUFL - младший регистр буфера захвата или сравнения x

14.13Обзор регистров

14.14Обзор векторов прерываний

15Блок расширения возможностей генерации импульсов AWeX

15.1Отличительные особенности

15.2Обзор

15.3Перекрытие порта

15.4Генерация паузы неперекрытия

15.5Образцовый генератор

15.6Защита от повреждения

15.6.1Действия защиты

15.6.2Режимы восстановления нормальной работы

15.6.3Изменение защиты

15.6.4Взаимодействие со встроенной отладочной системой

15.7Описание регистров

15.7.1CTRL - Регистр управления

15.7.2FDEMASK - регистр маски событий для обнаружения повреждения

15.7.3FDCTRL - регистр управления обнаружением отказа

15.7.4STATUS - регистр статуса

15.7.5DTBOTH - регистр общего доступа к паузам неперекрытия

15.7.6DTBOTHBUF - регистр общего доступа к буферным регистрам пауз неперекрытия

15.7.7DTLS - регистр паузы неперекрытия нижнего уровня

15.7.8DTHS - регистр паузы неперекрытия верхнего уровня

15.7.9DTLSBUF - буферный регистр паузы неперекрытия нижнего уровня

15.7.10DTHSBUF - буферный регистр паузы неперекрытия верхнего уровня

15.7.11OUTOVEN - регистр разрешения перекрытия выходов

15.8Обзор регистров

16Блок расширения разрешающей способности

16.1Отличительные особенности:

16.2Обзор

16.3Описание регистров

16.3.1CTRLA - регистр управления А блока Hi-Res

16.4Обзор регистров

17Счетчик реального времени RTC

17.1Отличительные особенности

17.2Обзор

17.2.1Домены синхронизации

17.2.2Прерывания и события

17.3Описание регистров

17.3.1CTRL - регистр управления счетчиком реального времени

17.3.2STATUS - регистр статуса счетчик реального времени

17.3.3INTCTRL - регистр управления прерываниями счетчика реального времени

17.3.4INTFLAGS - регистр флагов прерываний счетчика реального времени

17.3.5TEMP - временный регистр счетчика реального времени

17.3.6CNTH - старший регистр счетчика реального времени

17.3.7CNTL - младший регистр счетчика реального времени

17.3.8PERH - старший регистр периода счетчика реального времени

17.3.9PERL - младший регистр периода счетчика реального времени

17.3.10COMPH - старший регистр сравнения счетчика реального времени

17.3.11COMPL - младший регистр сравнения счетчика реального времени

17.4Обзор регистров

17.5Обзор векторов прерываний

1832-битный счетчик реального времени RTC32

18.1Отличительные особенности

18.2Обзор

18.2.1Настройка синхронизации

18.2.2Домены синхронизации

18.2.3Домена питания

18.2.4События и прерывания

18.3Описание регистров

18.3.1CTRL - регистр управления

18.3.2SYNCCTRL - регистр управления/статуса синхронизации

18.3.3INTCTRL - регистр управления прерываниями

18.3.4INTFLAGS - регистр флагов прерываний

18.3.5CNT3 - регистр счетчика 3

18.3.6CNT2 - регистр счетчика 2

18.3.7CNT1 - регистр счетчика 1

18.3.8CNT0 - регистр счетчика 0

18.3.9PER3 - регистр периода 3

18.3.10PER2 - регистр периода 2

18.3.11PER1 - регистр периода 1

18.3.12PER0 - регистр периода 0

18.3.13COMP3 - регистр сравнения 3

18.3.14COMP2 - регистр сравнения 2

18.3.15COMP1 - регистр сравнения 1

18.3.16COMP0 - регистр сравнения 0

18.4Обзор регистров

18.5Обзор векторов прерываний

19Двухпроводной интерфейс TWI

19.1Отличительные особенности

19.2Обзор

19.3Принцип действия шины TWI

19.3.1Электрические характеристики

19.3.2Условия START и STOP

19.3.3Передача бит

19.3.4Пакет адреса

19.3.5Пакет данных

19.3.6Транзакция

19.3.7Синхронизация и задержка импульсов синхронизации

19.3.8Арбитраж

19.3.9Синхронизация ведущих устройств

19.4Логика контроля состояния шины TWI

19.5Работа ведущего модуля TWI

19.5.1Передача пакета адреса

19.5.1.1Сценарий M1: арбитраж проигран или ошибка во время передачи пакета адреса

19.5.1.2Сценарий M2: Передача пакета адреса завершена, но он не подтвержден подчиненным устройством

19.5.1.3Сценарий M3: Завершена передача пакета адреса с равным нулю битом направления

19.5.1.4Сценарий M4: Завершена передача пакета адреса с равным единице битом направления

19.5.2Передача пакетов данных

19.5.3Прием пакетов данных

19.6Работа подчиненного модуля TWI

19.6.1Прием пакета адреса

19.6.1.1Сценарий 1: принят пакета адреса с равным единице битом направления

19.6.1.2Сценарий 2: принят пакет адреса с равным нулю битом направления

19.6.1.3Сценарий 3: коллизия

19.6.1.4Сценарий 4: принято условие STOP

19.6.2Прием пакетов данных

19.6.3Передача пакетов данных

19.7Разрешение работы интерфейса внешнего драйвера

19.8Описание регистров модуля TWI

19.8.1CTRL - общий регистр управления модуля TWI

19.9Описание регистров ведущего модуля TWI

19.9.1CTRLA - регистр управления А ведущего модуля TWI

19.9.2CTRLB - регистр управления В ведущего модуля TWI

19.9.3CTRLC - регистр управления С ведущего модуля TWI

19.9.4STATUS - регистр статуса ведущего устройства

19.9.5BAUD - регистр скорости

19.10Ftwi = Fsys/[2(5+BAUD)], Гц (1)

19.11BAUD = (Fsys/2 * Ftwi) - 5 (2)

19.11.1ADDR - регистр адреса ведущего модуля TWI

19.11.2DATA - регистр данных ведущего модуля TWI

19.12Описание регистров подчиненного модуля TWI

19.12.1CTRLA - регистр управления А подчиненного модуля TWI

19.12.2CTRLB - регистр управления В починенным модулем TWI

19.12.3STATUS- регистр статуса подчиненного модуля TWI

19.12.4ADDR - регистр адреса подчиненного модуля TWI

19.12.5???нет

19.12.6ADDRMASK - регистр маски адреса подчиненного модуля TWI

19.13Обзор регистров модуля TWI

19.14Обзор регистров ведущего модуля TWI

19.15Обзор регистров подчиненного модуля TWI

19.15.1Обзор векторов прерываний

20Последовательный интерфейс SPI

20.1Отличительные особенности

20.2Обзор

20.3Ведущий режим

20.4Подчиненный режим

20.5Режимы SPI

20.6Поддержка DMA

20.7Описание регистров

20.7.1CTRL - регистр управления SPI

20.7.2INTCTRL - регистр управления прерываниями SPI

20.7.3STATUS - регистр статуса модуля SPI

20.7.4DATA - регистр данных SPI

20.8Обзор регистров

20.9Векторы прерываний модуля SPI

21Модуль USART

21.1Отличительные особенности

21.2Обзор

21.3Генерация синхронизации

21.3.1Внутренняя генерация синхронизации дробным генератором скорости

21.3.2Внешняя синхронизация

21.3.3Работа с удвоенной скоростью (CLK2X)

21.3.4Синхронный режим

21.3.5Генерация синхронизации для шины SPI

21.4Форматы посылок

21.4.1Вычисление бита паритета

21.4.2SPI-совместимые форматы посылок

21.5Инициализация USART

21.6Отправка данных передатчиком USART

21.6.1Отправка посылок

21.6.2Отключение передатчика

21.7Получение данных приемником USART

21.7.1Прием посылок

21.7.2Флаги ошибок приемника

21.7.3Проверка паритета

21.7.4Отключение приемника

21.7.5Очистка буфера приемника

21.8Асинхронный прием данных

21.8.1Восстановление синхронизации

21.8.2Восстановление данных

21.8.3Рабочий диапазон асинхронного приемника

21.9Дробная генерация скорости

21.10Работа USART в ведущем SPI-совместимом режиме

21.11Сравнение режима SPI модуля USART с модулем SPI

21.12Режим мультипроцессорной связи

21.12.1Использование режима мультипроцессорной связи

21.13Работа в режиме IRCOM

21.14Поддержка DMA

21.15Описание регистров

21.15.1DATA - регистр ввода-вывода данных модуля USART

21.15.2STATUS - регистр статуса USART

21.15.3CTRLA - регистр управления А модуля USART

21.15.4CTRLB - регистр управления В модуля USART

21.15.5CTRLC - регистр управления С модуля USART

21.16Таблица 21.6. Настройка бит CMODE

21.16.1BAUDCTRLA - регистр скорости USART

21.16.2BAUDCTRLB - регистр скорости USART

21.17Обзор регистров

21.17.1Описание регистров модуля USART

21.17.2Описание регистров модуля USART, работающего в режиме ведущего интерфейса SPI

21.18Обзор векторов прерываний

22Модуль инфракрасной связи IRCOM

22.1Отличительные особенности

22.2Обзор

22.322.2.1. Фильтрация системы событий

22.4Описание регистров

22.4.1TXPLCTRL - регистр управления длительностью импульса передатчика IRCOM

22.4.2RXPLCTRL - регистр управления длительностью импульса приемника IRCOM

22.4.3CTRL - регистр управления IRCOM

22.5Обзор регистров

23Криптоускорители

23.1.1Отличительные особенности

23.2Обзор

23.3Инструкция DES

23.4Модуль AES

23.4.1Память ключа и память состояния

23.4.2Поддержка DMA

23.5Обзор регистров модуля AES

23.5.1CTRL - регистр управления модулем AES

23.5.2STATUS - регистр статуса модуля AES

23.5.3STATE - регистр состояния модуля AES

23.5.4KEY - регистр ключа модуля AES

23.5.5INTCTRL - регистр управления прерыванием модуля AES

23.6Обзор регистров модуля AES

23.7Вектор прерываний модуля AES

24Интерфейс внешней шины EBI

24.1Отличительные особенности

24.2Обзор

24.3Выходы выбора микросхем

24.3.1Базовый адрес

24.3.2Размер адресного пространства

24.3.3Выхода выбора микросхем в качестве адресных линий

24.4Настройка линий ввода-вывода

24.5Синхронизация EBI

24.6Совместная работа со SRAM

24.6.1Работа без мультиплексирования

24.6.2Мультиплексирование байтов адреса 0 и 1

24.6.3Мультиплексирование байтов адреса 0 и 2

24.6.4Мультиплексирование байтов адреса 0, 1 и 2

24.6.5Требования к регистрам фиксации адреса

24.6.6Временная диаграмма

24.7Совместная работа со SRAM LPC-типа

24.7.1Мультиплексирование данных с байтом адреса 0

24.7.2Мультиплексирование данных с байтами адреса 0 и 1

24.8Совместная работа с SDRAM

24.8.1Поддерживаемые команды

24.8.23-портовая конфигурация интерфейса EBI

24.8.34-портовая конфигурация интерфейса EBI

24.8.4Временная диаграмма

24.8.5Инициализация

24.8.6Регенерация

24.9Комбинированное подключение к SRAM и SDRAM

24.10Временная диаграмма интерфейса EBI

24.10.1SRAM

24.10.1.1Режим SRAM без мультиплексирования

24.10.1.2Режим SRAM с мультиплексированием адреса и синхронизацией 1х

24.10.1.3Режим SRAM с мультиплексированием адреса и синхронизацией 2х

24.10.1.4Режим SRAM LPC с мультиплексированием адреса/данных и синхронизацией 1x

24.10.1.5Режим SRAM LPC с мультиплексированием адреса/данных и синхронизацией 2x

24.10.2SDRAM

24.10.2.14-битный режим SDRAM с синхронизацией 1х

24.10.2.28-битный режим SDRAM с синхронизацией 2х

24.11Описание регистров модуля EBI

24.11.1CTRL - регистр управления модулем EBI

24.11.2SDRAMCTRLA - регистр A управления SDRAM

24.11.3REFRESH - регистр периода регенерации SDRAM

24.11.4INITDLY - регистр задержки инициализации SDRAM

24.11.5SDRAMCTRLB - регистр В управления SDRAM

24.11.6SDRAMCTRLC - регистр С управления SDRAM

24.12Описание регистров управления выбором микросхем

24.12.1CTRLA - регистр А управления выбором микросхемы

24.12.2CTRLB (SRAM) - регистр В управления выбором микросхемы

24.12.3CTRLB (SDRAM) - регистр В управления выбором микросхемы

24.12.4BASEADDR - регистр базового адреса выбора микросхемы

24.13Обзор регистров модуля EBI

24.14Обзор регистров управления выбором микросхем

25Аналогово-цифровой преобразователь ADC

25.1Отличительные особенности

25.2Обзор

25.3Входные источники

25.3.1Дифференциальный вход

25.3.2Дифференциальный вход с усилением

25.3.3Несимметричный вход

25.3.4Внутренние входы

25.4Каналы АЦП

25.5Выбор опорного напряжения

25.6Результат преобразования

25.7Функция сравнения

25.8Запуск преобразования

25.9Синхронизация и временная диаграмма преобразования АЦП

25.9.1Одиночное преобразование без усиления

25.9.2Одиночное преобразование с усилением

25.9.3Одиночные преобразования в двух каналах АЦП

25.9.4Одиночные преобразования в двух каналах АЦП с усилением в канале 0

25.9.5Одиночные преобразования в двух каналах АЦП с усилением в канале 1

25.9.6Автоматический режим с усилением в двух каналах АЦП

25.10DMA-передача

25.11Прерывания и события

25.12Калибровка

25.13Приоритет каналов

25.14Синхронизация выборок

25.15Описание регистров модуля АЦП

25.15.1CTRLA - регистр управления А модуля АЦП

25.15.2CTRLB - регистр управления В модуля АЦП

25.15.3REFCTRL - регистр управления опорным напряжением АЦП

25.15.4EVCTRL - регистр управления событиями АЦП

25.15.5PRESCALER - регистр предделителя синхронизации АЦП

25.15.6INTFLAGS - регистр флагов прерываний АЦП

25.15.7TEMP - временный регистр АЦП

25.15.8CALL - регистр младшего байта калибровочного значения АЦП

25.15.9CALH - регистр старшего байта калибровочного значения АЦП

25.15.10CHnRESH - старший регистр результата канала АЦП n

25.15.10.112-битный режим с левым выравниванием

25.15.10.212-битный режим с правым выравниванием

25.15.10.38-битный режим

25.15.11CHnRESL - младший регистр результата канала АЦП n

25.15.11.112-/8-битный режим

25.15.11.212-битный режим с левым выравниванием

25.15.12CMPH - старший регистр сравнения модуля АЦП

25.15.13CMPL - младший регистр сравнения модуля АЦП

25.16Описание регистра канала АЦП

25.16.1CTRL - регистр управления канала АЦП

25.16.2MUXCTRL - регистры управления мультиплексором канала АЦП

25.16.3INTCTRL - регистры управления прерыванием канала АЦП

25.16.4INTFLAG - регистр флагов прерываний канала АЦП

25.16.5RESH - старший регистр результата канала АЦП n

25.16.5.112-битный режим с левым выравниванием

25.16.5.212-битный режим с правым выравниванием

25.16.5.38-битный режим

25.16.6RESL - младший регистр результата канала АЦП n

25.16.6.112-/8-битный режим

25.16.6.212-битный режим с левым выравниванием

25.17Обзор регистров АЦП

25.18Обзор регистров канала АЦП

25.19Обзор векторов прерываний

26Цифро-аналоговый преобразователь DAC

26.1Отличительные особенности

26.2Обзор

26.3Запуск преобразования

26.4Выходные каналы

26.5Синхронизация модуля DAC

26.6Ограничения к временным характеристикам

26.7Экономичный режим работы

26.8Калибровка

26.9Описание регистров

26.9.1CTRLA - регистр А управления модулем DAC

26.9.2CTRLB - регистр В управления модулем DAC

26.9.3CTRLC - регистр С управления ЦАП

26.9.4EVCTRL - регистр управления событиями

26.9.5TIMCTRL - регистр задания временных характеристик ЦАП

26.9.6STATUS - регистр статуса ЦАП

26.9.7CH0DATAH - старший регистр данных канала ЦАП 0

26.9.7.1Правое выравнивание

26.9.7.2Левое выравнивание

26.9.8CH0DATAL - младший регистр данных канала ЦАП 0

26.9.8.1Правое выравнивание

26.9.8.2Левое выравнивание

26.9.9CH1DATAH - старший регистр данных канала ЦАП 1

26.9.9.1Правое выравнивание

26.9.9.2Левое выравнивание

26.9.10CH1DATAL - младший регистр данных канала ЦАП 1

26.9.10.1Правое выравнивание

26.9.10.2Левое выравнивание

26.9.11GAINCAL - регистр калибровки коэффициента передачи ЦАП

26.9.12OFFSETCAL - регистр калибровки смещения ЦАП

27Аналоговый компаратор AC

27.1Отличительные особенности

27.2Обзор

27.3Входные каналы

27.3.1Внешние входы

27.3.2Внутренние входы

27.4Запуск сравнения сигналов

27.5Генерация прерываний и событий

27.6Оконный режим

27.7Входной гистерезис

27.8Зависимость энергопотребления от задержки распространения

27.9Описание регистров

27.9.1ACnCTRL - регистр управления аналоговым компаратором n

27.9.2ACnMUXCTRL - регистр управления мультиплексором аналогового компаратора n

27.9.3CTRLA - регистр управления А

27.9.4CTRLB - регистр управления В

27.9.5WINCTRL - регистр управления оконным режимом аналоговых компараторов

27.9.6STATUS - общий регистр статуса аналоговых компараторов

27.10Обзор регистров

27.11Обзор векторов прерываний

28IEEE 1149.1-совместимый интерфейс JTAG

28.1Отличительные особенности

28.2Обзор

28.3TAP-порт

28.4JTAG-инструкции

28.4.1EXTEST; 0x1

28.4.2IDCODE; 0x3

28.4.3SAMPLE/PRELOAD; 0x2

28.4.4BYPASS; 0xf

28.4.5CLAMP; 0x4

28.4.6HIGHZ; 0x5

28.4.7PDICOM; 0x7

28.5Регистры данных

28.5.1Обходной регистр

28.5.2Регистр идентификации МК

28.5.2.1Версия

28.5.2.2Шифр продукции

28.5.2.3Идентификатор производителя

28.5.3Цепь граничного сканирования

28.5.4Регистр данных PDICOM

28.6Цепь граничного сканирования

28.6.1Сканирование линий ввода-вывода

28.6.2Сканирование линий PDI

29Интерфейс программирования и отладки PDI

29.1Отличительные особенности

29.2Обзор

29.3Трансивер PDI

29.3.1Разрешение работы

29.3.2Отключение

29.3.3Формат посылки и символы

29.3.3.1Символы

29.3.4Последовательные передача и прием

29.3.5Последовательная передача данных

29.3.5.129.3.5.1. Обнаружение конфликтов управления и коллизий

29.3.6Последовательный прием

29.3.6.1Обнаружение символа BREAK

29.3.7Изменение направления

29.4Трансивер JTAG

29.4.1Разрешение работы

29.4.2Отключение

29.4.3Набор инструкций JTAG

29.4.3.1Инструкция PDICOM

29.4.4Формат посылки и символов

29.4.4.1Специальные символы данных

29.4.5Последовательные передача и прием

29.4.6Последовательная передача

29.4.6.1Сигнализация статуса

29.4.7Последовательный прием

29.4.7.1Проверка паритета

29.4.7.2Обнаружение символа BREAK

29.5Контроллер PDI

29.5.1Переключение между режимами PDI и JTAG

29.5.2Доступ к внутренним интерфейсам

29.5.3Ключ программирования энергонезависимой памяти

29.5.4Обработка исключительных ситуаций

29.5.5Управление сбросом

29.5.6Набор инструкций

29.5.6.1LDS - загрузка данных из пространства данных PDIBUS с использованием прямой адресации

29.5.6.2STS - сохранение данных в пространстве данных PDIBUS с использованием прямой адресации

29.5.6.3LD - загрузка данных из пространства данных PDIBUS с использованием косвенной адресации

29.5.6.4ST - сохранение данных в пространство данных PDIBUS с использованием косвенной адресации

29.5.6.5LDCS - загрузка данных из пространства регистров управления и статуса PDI

29.5.6.6STCS - сохранение данных в пространстве регистров управления и статуса PDI

29.5.6.7KEY - настройка ключа активизации

29.5.6.8REPEAT - настройка счетчика повтора инструкций

29.5.7Обзор набора инструкций

29.6Описание регистров инструкции и адресации интерфейса PDI

29.6.1Регистр инструкции

29.6.2Регистр указателя

29.6.3Регистр счетчика повторов

29.6.4Регистр счетчика операндов

29.7Описание регистров управления и статуса интерфейса PDI

29.7.1STATUS - регистр статуса интерфейса PDI

29.7.2RESET - регистр сброса

29.7.3CTRL - регистр управления интерфейсом PDI

29.8Обзор регистров

30Программирование запоминающих устройств

30.1Отличительные особенности

30.2Обзор

30.3NVM-контроллер

30.4NVM-команды

30.4.1Команды с запуском по действию

30.4.2Команды с запуском по чтению NVM

30.4.3Команды с запуском по записи NVM

30.4.4Механизм CCP для защиты записи/исполнения

30.5Особенности работы NVM-контроллера в занятом состоянии

30.6Страничные буферы Flash-памяти и EEPROM

30.6.1Страничный буфер Flash-памяти

30.6.2Страничный буфер EEPROM

30.7Последовательности программирования Flash-памяти и EEPROM

30.7.1Последовательность программирования Flash-памяти

30.7.2Последовательность программирования EEPROM

30.8Защита энергонезависимой памяти

30.9Предотвращение нарушения данных

30.9.1Сбои во время записи

30.9.2Сбои во время чтения

30.10Проверка CRC

30.11Самопрограммирование под управлением программы загрузчика

30.11.1Программирование Flash-памяти

30.11.1.1Сектор прикладной программы и загрузочный сектор

30.11.1.2Адресация Flash-памяти

30.11.2NVM-команды Flash-памяти

30.11.2.1Чтение Flash-памяти

30.11.2.2Стирание страничного буфера Flash-памяти

30.11.2.3Загрузка страничного буфера Flash-памяти

30.11.2.4Стирание страницы Flash-памяти

30.11.2.5Запись страницы Flash-памяти

30.11.2.6Вычисление CRC для диапазона Flash-памяти

30.11.2.7Стирание сектора прикладной программы

30.11.2.8Стирание страницы сектора прикладной программы/загрузочного сектора

30.11.2.9Запись страницы сектора прикладной программы/загрузочного сектора

30.11.2.10Стирание и запись страницы сектора прикладной программы/загрузочного сектора

30.11.2.11Вычисление CRC в секторе прикладной программы/загрузочном секторе

30.11.2.12Стирание сигнатурного кода пользователя

30.11.2.13Запись сигнатурного кода пользователя

30.11.2.14Чтение сигнатурного кода пользователя/калибровочных данных

30.11.3NVM-команды доступа к Fuse- и Lock-битам

30.11.3.1Запись Lock-бит

30.11.3.2Чтение Fuse-бит

30.11.4Программирование EEPROM

30.11.4.1Адресация EEPROM

30.11.5NVM-команды EEPROM

30.11.5.1Загрузка страничного буфера EEPROM

30.11.5.2Стирание страничного буфера EEPROM

30.11.5.3Стирание страницы EPPROM

30.11.5.4Запись страницы EEPROM

30.11.5.5Стирание и запись страницы EEPROM

30.11.5.6Стирание EEPROM

30.11.5.7Чтение EPPROM

30.12Внешнее программирование

30.12.1Разрешение работы интерфейса внешнего программирования

30.12.2Программирование NVM

30.12.2.1Адресация NVM

30.12.2.2Занятость NVM

30.12.3NVM-команды

30.12.3.1Стирание всей памяти

30.12.3.2Чтение NVM

30.12.3.3Стирание страничного буфера Flash-памяти/EEPROM

30.12.3.4Загрузка страничного буфера Flash-памяти/EEPROM

30.12.3.5Стирание страницы Flash-памяти/EEPROM

30.12.3.6Запись страницы Flash-памяти/EEPROM

30.12.3.7Стирание и запись страницы Flash-памяти/EEPROM

30.12.3.8Стирание сектора прикладной программы/загрузочного сектора/EEPROM

30.12.3.9Проверка CRC Flash-памяти

30.12.3.10Запись Fuse-/Lock-бит

30.13Описание регистров

30.14Обзор регистров

31Карта памяти модулей ввода-вывода

32Краткое описание набора инструкций

33Приложение А. Временные диаграммы модуля EBI

33.13-портовое подключение SRAM с ALE1 и CS

33.23-портовое подключение SRAM с ALE12 и CS

33.34-портовое подключение SRAM с ALE2 и CS

33.44-портовое подключение SRAM с CS и без ALE

33.52-портовое подключение LPC памяти с ALE12 и CS

33.63-портовое подключение LPC памяти с ALE1 и CS

33.72-портвоое подключение LPC памяти с ALE1 и CS

33.83-портовое подключение SRAM с ALE1 и без CS

33.94-портвоое подключение SRAM без ALE и CS

33.102-портовое подключение LPC памяти с ALE12 и без CS

33.11Блок SDRAM

33.128-битная запись SDRAM

33.138-битное чтение SDRAM

33.14Запись 4-битного SDRAM

33.15Чтение 4-битного SDRAM

33.16Регенерация SRAM

34Электрические характеристики

34.1Предельно-допустимые параметры*

34.2Статические характеристики

34.3Быстродействие

34.4Характеристики АЦП

34.5Характеристики ЦАП

34.6Характеристики аналоговых компараторов

35Сведения о выявленных ошибках в работе микроконтроллеров

35.1Микроконтроллер ATxmega256A3

35.1.1Версия A

11.8Обзор регистров

Адрес

Наименование

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

+0x00

CTRL

-

-

PER[3:0]

ENABLE

CEN

+0x01

WINCTRL

-

-

WPER[3:0]

WEN

WCEN

+0x02

STATUS

-

-

-

-

-

-

-

SYNCBUSY


12Прерывания и программируемый многоуровневый контроллер прерываний

12.1Отличительные особенности

  1. Отдельный вектор у каждого прерывания

  2. Малое и предсказуемое время реагирования на прерывания

  3. Программируемый многоуровневый контроллер прерываний

  4. 3 программируемых уровня прерываний

  5. Выборочная схема обработки приоритета низкоуровневых прерываний (фиксированная или карусельная)

  6. Немаскируемые прерывания (NMI)

  7. Векторы прерываний могут перемещены в начало загрузочного сектора

12.2Обзор

Прерывания сигнализируют об изменении состояния в УВВ и могут использоваться для управления ходом выполнения программы. Каждое из УВВ может поддерживать одно или несколько прерываний и каждое из этих прерываний может быть раздельно разрешено или запрещено. Запрос на прерывание генерируется в том случае, если в какой-либо момент после его разрешения обнаруживается соответствующее ему условие. У каждого прерывания имеется отдельный вектор прерывания.

Программируемый многоуровневый контроллер прерываний (PMIC-контроллер) отвечает за обработку запросов прерываний с учетом их приоритетов и уровней. После того, как запрос прерывания подтверждается PMIC-контроллером, в счетчик программы загружается адрес вектора прерывания, а затем выполняется процедура обработки прерывания.

Каждое из прерываний поддерживает возможность настройки уровня его приоритета: низкий, средний и высокий. Прерывания среднего уровня способны прерывать выполнение процедуры обработки прерывания низкого уровня. В свою очередь, прерывания высокого уровня могут прерывать процедуры обработки прерываний низкого и среднего уровней. Приоритетность обработки прерываний равного уровня зависит от числового значения адреса вектора прерывания: чем меньше адрес вектора прерывания, тем выше его приоритет. Опционально, приоритетность прерываний низкого уровня может определяться карусельным методом (round-robin), который гарантирует обработку каждого из прерываний за определенное количество времени.

Также предусмотрена поддержка немаскируемых прерываний (NMI).

12.3Принцип действия

Чтобы генерация прерываний стала возможной, необходимо установить бит общего разрешения прерываний (бит I) в регистре статуса ЦПУ. После подтверждения прерывания, теряется возможность сброса бита I. Кроме того, перед тем как использовать тот или иной уровень прерываний, его работу нужно разрешить.


После разрешения прерывания и обнаружения его условия, PMIC-контроллер принимает запрос на обработку прерывания. Далее, в зависимости от уровня и приоритета, прерывание переходит либо в статус "подтверждено", либо в статус "отправлено". Если прерывание подтверждается, то в счетчик программы загружается вектор прерывания. По адресу вектора прерывания обычно находится команда перехода к процедуре обработки прерывания. После выхода из процедуры обработки прерывания, возобновляется выполнение программы с того же места, где возникло прерывание. Перед переходом к обслуживанию отправленного прерывания выполняется одна инструкция.

Регистр статуса PMIC-контроллера содержит всю необходимую информацию о состоянии, которая гарантирует возврат PMIC-контроллера на корректный уровень прерывания после выполнения инструкции RETI (возврат из прерывания) в конце процедуры обработки прерывания. Во время выхода из прерывания, PMIC-контроллер перейдет в то состояние, в котором он был перед вводом прерывания. Автоматическое сохранение регистра статуса (SREG) при поступлении запроса на прерывание не предусмотрено. Инструкцию RET (возврат из подпрограммы) нельзя использовать для возврата из процедуры обработки прерывания, т.к. она не возвращает PMIC-контроллер в корректное состояние.

12.4Прерывания

Все прерывания и вектор сброса имеют отдельный адрес в пространстве памяти программ. По наименьшему адресу памяти программ расположен вектор сброса. У каждого из прерываний имеются отдельные биты, с помощью которых можно разрешить или запретить прерывание, а также выбрать его уровень. Данные биты находятся в регистрах управления тех УВВ, которые поддерживают генерацию прерываний. Более детально об этом см. в разделах, посвященных описанию таких УВВ.

У каждого из прерываний имеется связанный с ним флаг прерывания. Данный флаг устанавливается, когда возникает условие для генерации прерывания, независимо от того, разрешено оно или нет. Флаги большинства прерываний автоматически сбрасываются при переходе на вектор прерывания. Флаг прерывания можно сбросить и программно. Для этого необходимо выполнить запись в него единицы. Имеется несколько флагов прерываний, которые не сбрасываются автоматически при переходе на вектор прерывания. Также имеется еще ряд прерываний, флаги которых автоматически сбрасываются при выполнении чтения или записи связанного с ними регистра. Подробности см. в описании каждого отдельного флага прерывания.

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


Предусмотрена возможность блокировки прерываний при выполнении кода программы из защищенного сектора, например, когда запрограммированы биты Boot Lock. Такая возможность улучшает защищенность программы (подробности по настройкам lock-бит см. в описании программирования памяти программ).

Прерывания автоматически блокируются на 4 цикла синхронизации ЦПУ после выполнения записи корректной сигнатуры в регистр защиты от изменения конфигурации (см. раздел 3.12 "Защита от изменения конфигурации").

12.4.1Немаскируемые прерывания (NMI)

Немаскируемые прерывания (NMI) полностью реализованы на аппаратном уровне. Не предусмотрена возможность выбора, какое прерывание относится к NMI, а какое будет обычным. Перед тем как использовать немаскируемые прерывания, их необходимо разрешить. Какие именно NMI поддерживаются микроконтроллером, необходимо уточнить в документации.

Немаскируемое прерывание исполняется, независимо от установки бита I, и не изменяет его состояние. Ни одно из других прерываний не может прервать обработку NMI-прерывания. При одновременном поступлении запросов на обработку нескольких NMI-прерываний, они будет обработаны с учетом их приоритета, который определяется по значениям адресов векторов прерываний: чем меньше адрес, тем выше приоритет прерывания.

12.4.2Задержка реагирования на прерывание

Задержка реагирования на прерывание для всех разрешенных прерываний составляет не менее 5 циклов синхронизации ЦПУ. В течение этих 5 циклов синхронизации выполняется помещение счетчика программы в стек. После завершения этих 5 циклов синхронизации, выполняется процедура обработки прерывания, на переход к которой с вектора прерывания необходимо еще три цикла синхронизации.

Если прерывание возникает в момент исполнения многоцикловой инструкции, то сначала завершается выполнение этой инструкции, а уже затем обслуживается прерывание. Если прерывание возникает, когда МК находится в экономичном режиме работы, то задержка реагирования на прерывание увеличивается еще на 5 циклов синхронизации. Кроме того, к этому времени также нужно прибавить время, необходимое микроконтроллеру для выхода из выбранного экономичного режима работы.

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

12.5Уровень прерывания

Для каждого из источников прерываний можно раздельно задать уровень прерывания. Во время получения запроса на прерывание PMIC-контроллер также принимает информацию о его уровне. Уровни прерываний и соответствующие им значения бит приведены в таблице 12.1.

Таблица 12.1. Уровни прерываний

Настройка уровня прерывания

Групповая конфигурация

Описание

00

OFF

Прерывание отключено

01

LO

Прерывание низкого уровня

10

MED

Прерывание среднего уровня

11

HI

Прерывание высокого уровня


Уровень прерывания запроса на прерывание сравнивается с текущими уровнем и статусом в контроллере прерывания. Если поступивший запрос на прерывание имеет более высокий приоритет, чем тот, что обрабатывается в данный момент, то обработка низкоприоритетного прерывания будет прервана. По завершении обработки прерывания с более высоким приоритетом, будет продолжено выполнение процедуры обработки более низкоприоритетного прерывания.

12.6Приоритет прерывания

Все прерывания, помимо уровня, также имеют приоритет. При одновременном поступлении запросов от нескольких источников прерываний, очередность их обработки будет определяться с учетом их уровня и приоритета. Приоритезация прерываний может быть статической или динамической (карусельной, round-robin). Приоритезация прерываний высокого и среднего уровней, а также немаскируемых прерываний является только статической, а приоритезация низкоуровневых прерываний может быть как статической, так и динамической (задается пользователем).

12.6.1Статическая приоритезация

Векторы прерываний имеют фиксированные адреса. Когда применяется статическая приоритезация, очередность обработки прерываний одного и того же уровня будет зависеть от значения адреса вектора прерывания: чем меньше адрес, тем выше приоритет прерывания. Таблицу векторов прерываний с указанием базовых адресов для всех встроенных модулей и УВВ, которые поддерживают генерацию прерываний, можно найти в документации на МК. Кроме того, в конце каждого раздела этого руководства, посвященного описанию того или иного модуля и УВВ, приводится обзор прерываний и их смещения адреса по отношению к базовому адресу прерывания модуля или УВВ.

Рисунок 12.1. Статическая приоритезация

12.6.2Динамическая приоритезация

В применениях с частой генерацией низкоуровневых прерываний статическая приоритезация может привести к ситуации, когда одни прерывания обрабатываются часто, а до других - очередь просто не доходит. Для исключения таких ситуаций предусмотрена опциональная динамическая приоритезация низкоуровневых прерываний. Когда она разрешается, в момент поступления запросов от одного или нескольких источников низкоприоритетных прерываний, наименьший приоритет будет иметь то прерывание, которое обрабатывалось последним.

Рисунок 12.2. Динамическая приоритезация

12.7Перемещение векторов прерываний между сектором прикладной программы и загрузочным сектором

По умолчанию, векторы прерываний расположены в секторе прикладной программы. Однако, при необходимости, их можно переместить в начало загрузочного сектора Flash-памяти.

12.8Описание регистров

12.8.1STATUS - регистр статуса PMIC-контроллера

Бит

7

6

5

4

3

2

1

0

 

+0x00

NMIEX

-

-

-

-

HILVLEX

MEDLVLEX

LOLVLEX


STATUS

Чтение/запись

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Нач значение

0

0

0

0

0

0

0

0


  1. Бит 7 - NMIEX: обработка немаскируемого прерывания

Данный флаг устанавливается на время обработки немаскируемого прерывания. Сброс флага выполняется при выполнении инструкции возврата из процедуры обработки прерывания (RETI).

  1. Биты 6:3 - Res: резервные биты

Данные биты являются резервными и всегда считываются с нулевыми значениями. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

  1. Бит 2 - HILVLEX: обработка прерывания высокого уровня

Данный флаг находится в высоком состоянии, когда выполняется обработка прерывания высокого уровня или когда обработка прерывания прервана немаскируемым прерыванием. Флаг автоматически сбрасывается при выходе из процедуры обработки прерывания (т.е. при выполнении инструкции RETI).

  1. Бит 1 - MEDLVLEX: обработка прерывания среднего уровня

Данный флаг находится в высоком состоянии, когда выполняется обработка прерывания среднего уровня или когда обработка прерывания прервана немаскируемым прерыванием или прерыванием высокого уровня. Флаг автоматически сбрасывается при выходе из процедуры обработки прерывания (т.е. при выполнении инструкции RETI).

  1. Бит 0 - LOLVLEX: обработка прерывания низкого уровня

Данный флаг находится в высоком состоянии, когда выполняется обработка прерывания среднего уровня или когда обработка прерывания прервана немаскируемым прерыванием или прерыванием более высокого уровня. Флаг автоматически сбрасывается при выходе из процедуры обработки прерывания (т.е. при выполнении инструкции RETI).

12.8.2INTPRI - регистр приоритета прерываний PMIC Priority Register

Бит

7

6

5

4

3

2

1

0

 

+0x01

INTPRI[7:0]


INTPRI

Чтение/запись

Чт/Зап

Чт/Зап

Чт/Зап

Чт/Зап

Чт/Зап

Чт/Зап

Чт/Зап

Чт/Зап

Нач значение

0

0

0

0

0

0

0

0

  1. Bit 7:0 - INTPRI: приоритет прерывания

После разрешения динамической приоритезации, в данном регистре будет сберегаться вектор последнего подтвержденного низкоуровневого прерывания. Хранящийся в этом регистре вектор прерывания имеет наименьший приоритет в случае поступления запросов от еще одного или нескольких источников низкоуровневых прерываний. Записью в этот регистр можно воздействовать на очередность обработки прерываний. После отключения динамической приоритезации содержимое регистра не обнуляется, поэтому, если необходимо использовать статическую приоритезацию, в этот регистр необходимо записать нулевое значение.

12.8.3CTRL - регистр управления PMIC-контроллером

Бит

7

6

5

4

3

2

1

0

 

+0x02

RREN

IVSEL

-

-

-

HILVLEN

MEDLVLEN

LOLVLEN


CTRL

Чтение/запись

Чт/Зап

Чт/Зап

Чт.

Чт.

Чт.

Чт/Зап

Чт/Зап

Чт/Зап

Нач значение

0

0

0

0

0

0

0

0


Смотрите также файлы