ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 14.01.2021
Просмотров: 9015
Скачиваний: 82
СОДЕРЖАНИЕ
1.1Рекомендации по чтению руководства
1.3Рекомендовано для прочтения
3.4Арифметико-логическое устройство
3.4.1Аппаратное умножающее устройство
3.6Временная диаграмма выполнения инструкций
3.10Регистры RAMP и расширенной косвенной адресации
3.10.1Регистры RAMPX, RAMPY и RAMPZ
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.1Регистр защиты от изменения конфигурации CCP
4.3.1Сектор прикладной программы
4.3.2Сектор таблицы приложения
4.3.4Сигнатурный код производителя и ячейки калибровки
4.3.4.1Сигнатурный код пользователя
4.7.1Доступ к EEPROM в пространстве памяти данных
4.8.1Регистры ввода-вывода общего назначения
4.10Память данных и арбитраж шины
4.11Временные характеристики доступа к памяти
4.12Идентификация микроконтроллера
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.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.3Блочная передача и режим повтора
5.18.7Запуск передачи и режим однократного запуска
5.18.9Доступ контроллера DMA к многобайтным регистрам
5.18.10Дополнительные возможности
6.5Временные характеристики передачи событий
6.7.1Работа квадратурного декодера
6.7.2Настройка квадратурного декодера
6.8.1CHnMUX - регистр мультиплексора канала события n
6.8.2CHnCTRL - Регистр управления каналом события n
6.8.3STROBE - строб-регистр события
6.8.4DATA - регистр данных события
7Системная синхронизация и источники синхронизации
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.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.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.4.3Сброс от детектора просадки питания
9.4.5Сброс сторожевым таймером
9.4.7Сброс через интерфейс программирования и отладки
9.5.1STATUS - Регистр статуса сброса
9.5.2CTRL - регистр управления сбросом
10Система резервного батарейного питания
10.3Модуль с резервированием питания
10.3.1Обнаружение подачи питания резервного батарейного питания
10.3.2Супервизор батарейного питания
10.4Исчезновение основного питания
10.5Основной сброс и последовательность запуска
10.5.1Резервирование питания разрешено
10.5.2Резервирование питания не разрешено и сбой в его работе
10.6.1CTRL: регистр управления резервированием питания
10.6.2STATUS: регистр статуса модуля с резервированием питания
10.6.3BACKUP0: регистр 0 с резервным батарейным питанием
11.5Синхронизация сторожевого таймера
11.6Защита и блокировка конфигурации
11.7.1CTRL - регистр управления сторожевым таймером
11.7.2WINCTRL - регистр управления оконным режимом
11.7.3STATUS - регистр статуса сторожевого таймера
12Прерывания и программируемый многоуровневый контроллер прерываний
12.4.1Немаскируемые прерывания (NMI)
12.4.2Задержка реагирования на прерывание
12.6.1Статическая приоритезация
12.6.2Динамическая приоритезация
12.7Перемещение векторов прерываний между сектором прикладной программы и загрузочным сектором
12.8.1STATUS - регистр статуса PMIC-контроллера
12.8.2INTPRI - регистр приоритета прерываний PMIC Priority Register
12.8.3CTRL - регистр управления PMIC-контроллером
13.3Использование линий ввода-вывода
13.4Настройка линий ввода-вывода
13.4.2Подтягивание к минусу питания
13.4.3Подтягивание к плюсу питания
13.6Настройка параметров контроля входа
13.8Генерация событий портом ввода-вывода
13.9Альтернативные функции портов
13.10Управление скоростью фронтов
13.11Вывод синхронизации и событий
13.12Мультипортовая конфигурация
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.18Обзор регистров мультипортовой конфигурации
13.19Обзор регистров виртуальных портов
13.20Обзор векторов прерываний портов ввода-вывода
14.4Источники синхронизации и событий
14.6.2Управляемый событиями режим работы
14.7.3Захват длительности импульса
14.7.432-битный входной захват
14.8.2Генерация частотных сигналов (FRQ)
14.8.3Генерация ШИМ сигнала в режиме PWM с однонаправленным счетом
14.8.4Генерация ШИМ сигнала в режиме PWM с двунаправленным счетом
14.8.5Вывод сигналов генератора импульсов на линии порта
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.14Обзор векторов прерываний
15Блок расширения возможностей генерации импульсов AWeX
15.4Генерация паузы неперекрытия
15.6.2Режимы восстановления нормальной работы
15.6.4Взаимодействие со встроенной отладочной системой
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 - регистр разрешения перекрытия выходов
16Блок расширения разрешающей способности
16.1Отличительные особенности:
16.3.1CTRLA - регистр управления А блока Hi-Res
17Счетчик реального времени RTC
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 - младший регистр сравнения счетчика реального времени
1832-битный счетчик реального времени RTC32
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
19.3.1Электрические характеристики
19.3.7Синхронизация и задержка импульсов синхронизации
19.3.9Синхронизация ведущих устройств
19.4Логика контроля состояния шины TWI
19.5Работа ведущего модуля TWI
19.5.1.1Сценарий M1: арбитраж проигран или ошибка во время передачи пакета адреса
19.5.1.2Сценарий M2: Передача пакета адреса завершена, но он не подтвержден подчиненным устройством
19.5.1.3Сценарий M3: Завершена передача пакета адреса с равным нулю битом направления
19.5.1.4Сценарий M4: Завершена передача пакета адреса с равным единице битом направления
19.6Работа подчиненного модуля TWI
19.6.1.1Сценарий 1: принят пакета адреса с равным единице битом направления
19.6.1.2Сценарий 2: принят пакет адреса с равным нулю битом направления
19.6.1.4Сценарий 4: принято условие STOP
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.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.6ADDRMASK - регистр маски адреса подчиненного модуля TWI
19.13Обзор регистров модуля TWI
19.14Обзор регистров ведущего модуля TWI
19.15Обзор регистров подчиненного модуля TWI
19.15.1Обзор векторов прерываний
20Последовательный интерфейс SPI
20.7.1CTRL - регистр управления SPI
20.7.2INTCTRL - регистр управления прерываниями SPI
20.7.3STATUS - регистр статуса модуля SPI
20.7.4DATA - регистр данных SPI
20.9Векторы прерываний модуля SPI
21.3.1Внутренняя генерация синхронизации дробным генератором скорости
21.3.3Работа с удвоенной скоростью (CLK2X)
21.3.5Генерация синхронизации для шины SPI
21.4.1Вычисление бита паритета
21.4.2SPI-совместимые форматы посылок
21.6Отправка данных передатчиком USART
21.7Получение данных приемником USART
21.7.5Очистка буфера приемника
21.8.1Восстановление синхронизации
21.8.3Рабочий диапазон асинхронного приемника
21.9Дробная генерация скорости
21.10Работа USART в ведущем SPI-совместимом режиме
21.11Сравнение режима SPI модуля USART с модулем SPI
21.12Режим мультипроцессорной связи
21.12.1Использование режима мультипроцессорной связи
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.1Описание регистров модуля USART
21.17.2Описание регистров модуля USART, работающего в режиме ведущего интерфейса SPI
21.18Обзор векторов прерываний
22Модуль инфракрасной связи IRCOM
22.322.2.1. Фильтрация системы событий
22.4.1TXPLCTRL - регистр управления длительностью импульса передатчика IRCOM
22.4.2RXPLCTRL - регистр управления длительностью импульса приемника IRCOM
22.4.3CTRL - регистр управления IRCOM
23.1.1Отличительные особенности
23.4.1Память ключа и память состояния
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.3.2Размер адресного пространства
24.3.3Выхода выбора микросхем в качестве адресных линий
24.4Настройка линий ввода-вывода
24.6.1Работа без мультиплексирования
24.6.2Мультиплексирование байтов адреса 0 и 1
24.6.3Мультиплексирование байтов адреса 0 и 2
24.6.4Мультиплексирование байтов адреса 0, 1 и 2
24.6.5Требования к регистрам фиксации адреса
24.7Совместная работа со SRAM LPC-типа
24.7.1Мультиплексирование данных с байтом адреса 0
24.7.2Мультиплексирование данных с байтами адреса 0 и 1
24.8.23-портовая конфигурация интерфейса EBI
24.8.34-портовая конфигурация интерфейса EBI
24.9Комбинированное подключение к SRAM и SDRAM
24.10Временная диаграмма интерфейса EBI
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.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.3.2Дифференциальный вход с усилением
25.9Синхронизация и временная диаграмма преобразования АЦП
25.9.1Одиночное преобразование без усиления
25.9.2Одиночное преобразование с усилением
25.9.3Одиночные преобразования в двух каналах АЦП
25.9.4Одиночные преобразования в двух каналах АЦП с усилением в канале 0
25.9.5Одиночные преобразования в двух каналах АЦП с усилением в канале 1
25.9.6Автоматический режим с усилением в двух каналах АЦП
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.11CHnRESL - младший регистр результата канала АЦП n
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.6RESL - младший регистр результата канала АЦП n
25.16.6.212-битный режим с левым выравниванием
25.18Обзор регистров канала АЦП
25.19Обзор векторов прерываний
26Цифро-аналоговый преобразователь DAC
26.6Ограничения к временным характеристикам
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.8CH0DATAL - младший регистр данных канала ЦАП 0
26.9.9CH1DATAH - старший регистр данных канала ЦАП 1
26.9.10CH1DATAL - младший регистр данных канала ЦАП 1
26.9.11GAINCAL - регистр калибровки коэффициента передачи ЦАП
26.9.12OFFSETCAL - регистр калибровки смещения ЦАП
27.5Генерация прерываний и событий
27.8Зависимость энергопотребления от задержки распространения
27.9.1ACnCTRL - регистр управления аналоговым компаратором n
27.9.2ACnMUXCTRL - регистр управления мультиплексором аналогового компаратора n
27.9.3CTRLA - регистр управления А
27.9.4CTRLB - регистр управления В
27.9.5WINCTRL - регистр управления оконным режимом аналоговых компараторов
27.9.6STATUS - общий регистр статуса аналоговых компараторов
27.11Обзор векторов прерываний
28IEEE 1149.1-совместимый интерфейс JTAG
28.5.2Регистр идентификации МК
28.5.2.3Идентификатор производителя
28.5.3Цепь граничного сканирования
28.6Цепь граничного сканирования
28.6.1Сканирование линий ввода-вывода
29Интерфейс программирования и отладки PDI
29.3.3Формат посылки и символы
29.3.4Последовательные передача и прием
29.3.5Последовательная передача данных
29.3.5.129.3.5.1. Обнаружение конфликтов управления и коллизий
29.3.6.1Обнаружение символа BREAK
29.4.4Формат посылки и символов
29.4.4.1Специальные символы данных
29.4.5Последовательные передача и прием
29.4.6Последовательная передача
29.4.7.2Обнаружение символа BREAK
29.5.1Переключение между режимами PDI и JTAG
29.5.2Доступ к внутренним интерфейсам
29.5.3Ключ программирования энергонезависимой памяти
29.5.4Обработка исключительных ситуаций
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.6Описание регистров инструкции и адресации интерфейса PDI
29.6.3Регистр счетчика повторов
29.6.4Регистр счетчика операндов
29.7Описание регистров управления и статуса интерфейса PDI
29.7.1STATUS - регистр статуса интерфейса PDI
29.7.3CTRL - регистр управления интерфейсом PDI
30Программирование запоминающих устройств
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.7Последовательности программирования Flash-памяти и EEPROM
30.7.1Последовательность программирования Flash-памяти
30.7.2Последовательность программирования EEPROM
30.8Защита энергонезависимой памяти
30.9Предотвращение нарушения данных
30.11Самопрограммирование под управлением программы загрузчика
30.11.1Программирование Flash-памяти
30.11.1.1Сектор прикладной программы и загрузочный сектор
30.11.1.2Адресация Flash-памяти
30.11.2NVM-команды 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.4Программирование 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.12.1Разрешение работы интерфейса внешнего программирования
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-бит
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
34Электрические характеристики
34.1Предельно-допустимые параметры*
34.2Статические характеристики
34.6Характеристики аналоговых компараторов
35Сведения о выявленных ошибках в работе микроконтроллеров
Прим.:
-
Команда вычисления CRC для диапазона Flash-памяти использует побайтную адресацию Flash-памяти.
-
В зависимости от того, какой сектор flash-памяти адресуется (прикладной программы или загрузочный).
-
Данная команда связана с Lock-битами и требует, чтобы биты Boot Lock были незапрограммированными.
30.11.2.1Чтение Flash-памяти
Инструкция (E)LPM предназначена для чтения одного байта из Flash-памяти.
-
Запишите в Z-указатель адрес байта, подлежащего чтению.
-
Запишите код команды NO_OPERATION в регистр команды энергонезависимой памяти (NVM CMD).
-
Выполните инструкцию LPM.
Загрузка регистра назначения будет выполнена при выполнении инструкции LPM.
30.11.2.2Стирание страничного буфера Flash-памяти
Данная команда предназначена для стирания страничного буфера Flash-памяти.
-
Запишите в NVM CMD команду стирания страничного буфера Flash-памяти.
-
Установите бит исполнения команды (NVMEX) в регистре А управления энергонезависимой памятью (NVM CTRLA) с соблюдением привязанной ко времени последовательности CCP.
Флаг занятости NVM (BUSY) в регистре статуса NVM (NVM STATUS) будет установлен до тех пор, пока не будет стерт страничный буфер.
30.11.2.3Загрузка страничного буфера Flash-памяти
Данная команда предназначена для загрузки страничного буфера Flash-памяти.
-
Запишите в регистр NVM CMD команду загрузки страничного буфера Flash-памяти.
-
Запишите в Z-указатель адрес слова, подлежащего записи.
-
Запишите в регистры R1:R0 слово данных, подлежащее записи в буфер.
-
Выполните инструкцию SPM. При выполнении операции загрузки страничного буфера инструкция SPM является незащищенной.
Повторяйте шаги 2…4 вплоть до завершения загрузки страничного буфера Flash-памяти. В незагруженных ячейках хранится значение 0xFFFF, для которого не определена инструкция ЦПУ AVR.
30.11.2.4Стирание страницы Flash-памяти
Данная команда предназначена для стирания одной страницы Flash-памяти.
-
Запишите в Z-указатель адрес подлежащей стиранию страницы flash-памяти. Адрес страницы должен быть записан в битовое поле PCPAGE. Прочие биты Z-указателя игнорируются при выполнении этой операции.
-
Запишите в регистр NVM CMD команду стирания страницы Flash-памяти.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
Флаг BUSY в регистре NVM STATUS остается равным единице до тех пор, пока не завершится операция стирания. Флаг занятости сектора Flash-памяти (FBUSY) удерживается равным единице все время, пока Flash-память занята, при этом, доступ к сектору прикладной программы невозможен.
30.11.2.5Запись страницы Flash-памяти
Данная команда предназначена для записи содержимого страничного буфера Flash-памяти в одну страницу Flash-памяти.
-
Запишите в Z-указатель адрес подлежащей записи страницы flash-памяти. Адрес страницы должен быть записан в битовое поле PCPAGE. Прочие биты Z-указателя игнорируются при выполнении этой операции.
-
Запишите в регистр NVM CMD команду записи страницы Flash-памяти.
-
Выполните защищенную инструкцию SPM с использованием привязанной ко времени последовательности CCP.
Флаг BUSY в регистре NVM STATUS остается равным единице до тех пор, пока не завершится операция записи. Флаг занятости сектора Flash-памяти (FBUSY) удерживается равным единице все время, пока Flash-память занята, при этом, доступ к сектору прикладной программы невозможен.
30.11.2.6Вычисление CRC для диапазона Flash-памяти
Данная команда предназначена для проверки содержимого Flash-памяти в пределах заданного диапазона после завершения самопрограммирования.
-
Запишите в регистр NVM CMD команду вычисления CRC для диапазона Flash-памяти.
-
Запишите адрес начального байта в регистр адреса NVM (NVM ADDR).
-
Запишите адрес последнего байта в регистр данных NVM (NVM DATA).
-
Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.
На время выполнения этой операции флаг BUSY в регистре NVM STATUS удерживается равным единице, а ЦПУ приостанавливает свою работу.
Результат выполнения операции (контрольная сумма CRC) будет доступен в регистре данных NVM DATA.
Команду проверки CRC для диапазона Flash-памяти можно использовать, только если биты Boot Lock не запрограммированы (т.е. блокировка доступа отключена).
Если биты Boot Lock той области, в которой выполняется проверка СRC, запрограммированы, выполнение команды отменяется.
30.11.2.7Стирание сектора прикладной программы
Данная команда предназначена для стирания всего сектора прикладной программы.
-
Запишите в Z-указатель любой адрес, принадлежащей сектору прикладной программы.
-
Запишите в регистр NVM CMD команду стирания сектора прикладной программы.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
На время выполнения операции флаг BUSY регистра STATUS становится равным единице, а ЦПУ приостанавливает свою работу.
30.11.2.8Стирание страницы сектора прикладной программы/загрузочного сектора
Данные команды предназначены для стирания одной страницы сектора прикладной программы или загрузочного сектора.
-
Запишите в Z-указатель адрес подлежащей стиранию страницы. Адрес страницы должен быть записан в битовое поле ZPAGE. Прочие биты Z-указателя при выполнении данной операции игнорируются.
-
Запишите в регистр NVM CMD команду стирания страницы сектора прикладной программы/загрузочного сектора.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
Флаг BUSY в регистре NVM STATUS остается равным единице до тех пор, пока не завершится операция стирания. Флаг занятости сектора Flash-памяти (FBUSY) удерживается равным единице все время, пока Flash-память занята, при этом, доступ к сектору прикладной программы невозможен.
30.11.2.9Запись страницы сектора прикладной программы/загрузочного сектора
Данные команды предназначены для записи страничного буфера Flash-памяти в одну страницу сектора прикладной программы или загрузочного сектора.
-
Запишите в Z-указатель адрес подлежащей записи страницы. Адрес страницы должен быть записан в битовое поле PCPAGE. Прочие биты Z-указателя при выполнении данной операции игнорируются.
-
Запишите в регистр NVM CMD команду записи страницы сектора прикладной программы/загрузочного сектора.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
Флаг BUSY в регистре NVM STATUS остается равным единице до тех пор, пока не завершится операция стирания. Флаг занятости сектора Flash-памяти (FBUSY) удерживается равным единице все время, пока Flash-память занята, при этом, доступ к сектору прикладной программы невозможен.
Если в Z-указатель будет записан некорректный адрес страницы, выполнение NVM-команды будет отменено. Команда стирания страницы сектора прикладной программы выполняется только в случае, если Z-указатель адресуется на сектор прикладной программы. Аналогичным образом, для выполнения команды стирания страницы загрузочного сектора необходимо, чтобы Z-указатель адресовал на загрузочный сектор.
30.11.2.10Стирание и запись страницы сектора прикладной программы/загрузочного сектора
Данные команды предназначены для стирания одной страницы flash-памяти, а затем записи страничного буфера Flash-памяти в эту же страницу сектора прикладной программы или загрузочного сектора.
-
Запишите в Z-указатель адрес подлежащей записи страницы. Адрес страницы должен быть записан в битовое поле PCPAGE. Прочие биты Z-указателя при выполнении данной операции игнорируются.
-
Запишите в регистр NVM CMD команду стирания и записи страницы сектора прикладной программы/загрузочного сектора.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
Флаг BUSY в регистре NVM STATUS остается установленным вплоть до завершения операции. Занятость Flash-памяти сигнализируется установкой флага FBUSY, при этом, теряется возможность доступа к сектору прикладной программы.
Если в Z-указатель будет записан некорректный адрес страницы, выполнение команды NVM будет отменено. Команда стирания и записи страницы сектора прикладной программы выполняется только в случае, если Z-указатель адресуется на сектор прикладной программы. Аналогичным образом, для выполнения команды стирания и записи страницы загрузочного сектора необходимо, чтобы Z-указатель адресовал на загрузочный сектор.
30.11.2.11Вычисление CRC в секторе прикладной программы/загрузочном секторе
Данные команды предназначены для проверки содержимого сектора прикладной программы и загрузочного сектора после самопрограммирования.
-
Запишите в регистр NVM CMD команду проверки CRC в секторе прикладной программы/загрузочном секторе.
-
Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.
На время вычисления CRC устанавливается флаг BUSY в регистре NVM STATUS, а работа ЦПУ приостанавливается. Результат вычисления контрольной суммы CRC будет доступен в регистрах данных NVM.
30.11.2.12Стирание сигнатурного кода пользователя
Данная команда предназначена для стирания сигнатурного кода пользователя.
-
Запишите в регистр NVM CMD команду стирания сигнатурного кода пользователя.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
На время выполнения операции устанавливается флаг BUSY в регистре NVM STATUS, а работа ЦПУ приостанавливается. Сектор сигнатурного кода пользователя относится к типу NRWW.
30.11.2.13Запись сигнатурного кода пользователя
Данная команда предназначена для записи содержимого страничного буфера Flash-памяти в сектор сигнатурного кода пользователя.
-
Запишите в регистр NVM CMD команду записи сигнатурного кода пользователя.
-
Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.
На время выполнения операции устанавливается флаг BUSY в регистре NVM STATUS, а работа ЦПУ приостанавливается. По завершении записи инициируется очистка страничного буфера Flash-памяти, при этом, остановка ЦПУ не выполняется.
30.11.2.14Чтение сигнатурного кода пользователя/калибровочных данных
Данные команды предназначены для чтения одного байта из сектора сигнатурного кода пользователя или сектора калибровочных данных.
-
Запишите в Z-указатель адрес подлежащего чтению байта.
-
Запишите в регистр NVM CMD команду чтения сигнатурного кода пользователя/калибровочных данных.
-
Выполните инструкцию LPM.
Загрузка регистра-получателя выполняется в процессе выполнения инструкции LPM.
30.11.3NVM-команды доступа к Fuse- и Lock-битам
В таблице 30.3 представлены NVM-команды Flash-памяти, предоставляющие доступ к Fuse- и Lock-битам. Все эти команды являются командами с запуском по действию. Для их выполнения необходимо установить бит CMDEX в регистре NVM CTRLA.
В столбце "Защита от изменения" указывается, защищен запуск инструкции механизмом защиты от изменения конфигурации (CCP) или нет. В двух последних столбцах приведены данные об используемых указателе адреса и регистре данных.
Алгоритм работы каждой команды более детально рассматривается в подразделах 30.11.3.1 и 30.11.3.2.
Таблица 30.3. Команды доступа к Fuse- и Lock-битам
CMD[6:0] |
Групповая конфигурация |
Описание |
Запуск |
Останов ЦПУ |
Занятость NVM |
Защита от изменения |
Указатель адреса |
Регистр данных |
0x00 |
NO_OPERATION |
Нет операции |
- |
- |
- |
- |
- |
- |
Fuse- и Lock-биты |
||||||||
0x07 |
READ_FUSES |
Чтение Fuse-бит |
CMDEX |
Нет |
Занят |
Нет |
ADDR |
DATA |
0x08 |
WRITE_LOCK_BITS |
Запись Lock-бит |
CMDEX |
Нет |
Занят |
Есть |
ADDR |
- |
30.11.3.1Запись Lock-бит
Данная команда предназначена для программирования бит Boot Lock, но только в направлении усиления защиты.
-
Запишите в регистр NVM DATA0 новое значение Lock-бит.
-
Запишите в регистр NVM CMD команду записи Lock-бит.
-
Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.
В процессе выполнения команды, флаг BUSY регистра NVM STATUS удерживается в установленном состоянии. ЦПУ приостанавливает работу до завершения исполнения команды.
Данную команду можно выполнять как из загрузочного сектора, так и из сектора прикладной программы.
По завершении записи Lock-бит происходит автоматическое стирание страничного буфера EEPROM и Flash-памяти.
30.11.3.2Чтение Fuse-бит
Данная команда предназначена для чтения из программы Fuse-бит.
-
Запишите в регистры NVM ADDR адрес, подлежащего чтению байта с fuse-битами.
-
Запишите в регистр NVM CMD команду чтения Fuse-бит.
-
Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.
Результат выполнения операции будет доступен в регистре NVM DATA0. На время выполнения команды ЦПУ приостанавливает работу.
30.11.4Программирование EEPROM
Команды чтения и записи EEPROM можно выполнять из любой части Flash-памяти. Доступ к EEPROM выполняется побайтно или постранично. Это означает, что за один подход можно выполнить запись в EEPROM либо одного байта, либо одной страницы. При чтении EEPROM возвращается один байт.
30.11.4.1Адресация EEPROM
Доступ к EEPROM, также как и к Flash-памяти программ, осуществляется через NVM-контроллер, который расположен в пространстве памяти ввода-вывода. Альтернативно, доступ к EEPROM можно выполнять аналогично SRAM через пространство памяти данных.
Когда доступ к EEPROM выполняется посредством NVM-контроллера, для адресации используется регистр адреса NVM (ADDR), а для чтения/записи данных - регистр данных NVM (DATA).
При программировании страницы EEPROM, регистр ADDR можно представить в виде двух битовых полей. Младшие биты адреса задают адрес байта в странице, а старшие биты задают номер страницы EEPROM. Это отражено на рисунке 30.3. Адрес байта в странице (E2BYTE) задается битами [1:BYTEMSB] регистра ADDR. Оставшиеся биты [PAGEMSB:BYTEMSB+1] регистра ADDR хранят адрес страницы EEPROM (E2PAGE).
Совместно битовые поля E2BYTE и E2PAGE образуют абсолютный адрес байта в EEPROM. Размер полей E2WORD и E2PAGE зависит от размера страницы и объема flash-памяти МК, сведения о которых приведены в документации на МК.
Рисунок 30.3. Адресация EEPROM в пространстве памяти ввода-вывода
Когда активизируется отображение EEPROM в памяти данных, загрузка данных в страничный буфер EEPROM выполняется с помощью инструкций записи с прямой или косвенной адресацией. Для задания адресуемой ячейки страничного буфера используются только младшие биты адреса EEPROM, но для адресации отображаемого в памяти EEPROM адрес должен быть указан полностью.
Чтение из EEPROM можно выполнить напрямую с использованием инструкций чтения с прямой или косвенной адресацией. При выполнении чтения отображаемого в памяти данных страничного буфера EEPROM, ЦПУ перед выполнением очередной инструкции приостанавливается на 3 цикла.
После активизации отображения EEPROM в памяти данных, возможность выполнения загрузки страничного буфера EEPROM и чтения EEPROM через NVM-контроллер отключается.