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

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

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

Добавлен: 14.01.2021

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

Скачиваний: 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

30.11.5NVM-команды EEPROM

В таблице 30.4 представлены NVM-команды, помощью которых можно выполнить доступ к EEPROM через NVM-контроллер. Команды самопрограммирования EEPROM с запуском по действию исполняются после установки бита CMDEX в регистре NVM CTRLA. Команды с запуском по чтению исполняются при чтении регистра NVM DATA0 (DATA0).

В столбце "Защита от изменения" указывается, защищен запуск инструкции механизмом защиты от изменения конфигурации (CCP) или нет. В двух последних столбцах приведены данные об используемых указателе адреса и регистре данных.

Алгоритм работы каждой команды более детально рассматривается в подразделах 30.11.5.1…30.11.5.7.

Таблица 30.4. Команды самопрограммирования EEPROM

CMD[6:0]

Групповая конфигурация

Описание

Запуск

Останов ЦПУ

Занятость NVM

Защита от изменения

Указатель адреса

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

0x00

NO_OPERATION

Нет операции

-

-

-

-

-

-

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

0x33

LOAD_EEPROM_BUFFER

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

DATA0

Нет

Нет

Есть

ADDR

DATA0

0x36

ERASE_EEPROM_BUFFER

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

CMDEX

Нет

Занят

Есть

-

-

EEPROM

0x32

ERASE_EEPROME_PAGE

Стирание страницы EEPROM

CMDEX

Нет

Занят

Есть

ADDR

-

0x34

WRITE_EEPROME_PAGE

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

CMDEX

Нет

Занят

Есть

ADDR

-

0x35

ERASE_WRITE_EEPROM_PAGE

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

CMDEX

Нет

Занят

Есть

ADDR

-

0x30

ERASE_EEPROM

Стирание EEPROM

CMDEX

Нет

Занят

Есть

-

-

0x06

READ_EEPROM

Чтение EEPROM

CMDEX

Нет

Нет

Есть

ADDR

DATA0

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

Данная команда предназначена для записи одного байта в страничный буфер EEPROM.

  • Запишите в регистр NVM CMD команду загрузки страничного буфера EEPROM

  • Запишите в регистр NVM ADDR0 адрес, по которому выполняется запись.

  • Запишите в регистр NVM DATA0 данные, подлежащие записи. Это приведет к запуску исполнения команды.

Повторите шаги 2-3 нужное число раз.

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

Данная команда предназначена для стирания страничного буфера EEPROM.

  • Запишите в регистр NVM CMD команду стирания страничного буфера EEPROM.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Флаг BUSY регистра NVM STATUS в процессе выполнения операции равен единице.

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

Данная команда предназначена для стирания одной страницы EEPROM.

  • Запишите в регистр NVM CMD команду стирания страницы EEPROM.

  • Запишите в регистр NVM ADDRESS адрес подлежащей стиранию страницы EEPROM.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.


Флаг BUSY в регистре NVM STATUS в процессе выполнения операции равен единице.

Команды стирания страницы стирают только те ячейки страницы, загрузка которых была выполнена в страничный буфер EEPROM.

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

Данная команда предназначена для записи загруженного страничного буфера EEPROM в одну страницу EEPROM. Запись выполняется только тех ячеек, которые предварительно были загружены в страничный буфер EEPROM.

  • Запишите в регистр NVM CMD команду записи страницы EEPROM.

  • Запишите в регистр NVM ADDR адрес подлежащей записи страницы EEPROM.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Флаг BUSY регистра NVM STATUS равен единице вплоть до завершения операции.

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

Данная команда позволяет за один подход выполнить стирание страницы EEPROM, а затем запись страничного буфера EEPROM в только что стертую страницу EEPROM.

  • Запишите в регистр NVM CMD команду стирания и записи страницы EEPROM.

  • Запишите в регистр NVM ADDR адрес подлежащей записи страницы EEPROM.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Флаг BUSY в регистре NVM STATUS остается установленным до завершения операции.

30.11.5.6Стирание EEPROM

Данная команда предназначена для стирания тех ячеек всех страниц EEPROM, которые были загружены ранее в страничный буфер EEPROM.

  • Запишите в регистр NVM CMD команду стирания EPPROM.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Флаг BUSY регистра NVM STATUS удерживается в установленном состоянии вплоть до завершения операции.

30.11.5.7Чтение EPPROM

Команда чтения EEPROM предназначена для чтения одного байта из EEPROM.

  • Запишите в регистр NVM CMD команду чтения EPPROM.

  • Запишите в регистр NVM ADDR адрес, по которому будет выполняться чтение.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Считанный байт данных будет доступен в NVM DATA0.

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

Внешнее программирование - способ программирования энергонезависимой памяти данных и памяти программ с помощью внешнего программатора или отладчика. Программирование может выполняться либо внутри системы (внутрисистемное программирование), либо на специальных производственных программаторах. Для выполнения такого программирования необходимо придерживаться ограничений по максимальным и минимальным напряжению и частоте, значения которых приводятся в документации на МК.

Доступ к микроконтроллеру при внешнем программировании осуществляется через контроллер PDI, который внешне доступен через электрический интерфейс JTAG или PDI. Более детально о разрешении работы и использовании интерфейсов PDI и JTAG см. в 20 "Интерфейс программирования и отладки". Далее по тексту полагается, что разрешение работы электрического интерфейса контроллера PDI выполнено корректно. Через PDI внешний программатор имеет возможность доступа к любой энергонезависимой памяти и NVM-контроллеру по шине PDI, при этом, и память программ и память данных образуют единое линейное пространство памяти PDI. На рисунке 30.4 показано пространство памяти PDI и базовые адреса каждого пространства памяти МК.


Рисунок 30.4. Карта памяти PDI

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

Программирование NVM через PDI требует разрешения работы, что можно сделать следующим образом.

  • Запишите в регистр RESET контроллера PDI значение 0x59 (сигнатура сброса).

  • Запишите корректный NVM-ключ в PDI.

  • Дождитесь равенства единицы бита NVMEN регистра статуса PDI (PDI STATUS).

Если бит NVMEN в регистре PDI STATUS станет равным единице, это означает, что интерфейс NVM готов для использования контроллером PDI.

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

30.12.2.1Адресация NVM

После разрешения работы интерфейса PDI NVM все запоминающие устройства МК становятся доступными в адресном пространстве PDI. В дальнейших упоминаниях о чтении и записи памяти данных или памяти программ полагается использование адресации в соответствии с картой памяти, представленной на рисунке 30.4. Контроллер PDI использует только побайтную адресацию. Это означает, что любой адрес памяти является адресом байта. При заполнении страничного буфера Flash-памяти или EEPROM, для определения адресуемой ячейки страничного буфера используются только младшие биты адреса. В остальных случаях, в целях гарантирования корректности отображения адресов, требуется указание полного адреса страницы Flash-памяти или EEPROM.

30.12.2.2Занятость NVM

Во время программирования (стирание страницы и запись страницы) , когда NVM находится в занятом состоянии, блокируется возможность чтения всей NVM.

30.12.3NVM-команды

NVM-команды, которые можно использовать для доступа к энергонезависимым запоминающим устройствам при внешнем программировании, представлены в таблице 30.5. Для внешнего программирования доступен более обширный набор команд, чем при самопрограммировании. При внешнем программировании, для исполнения команд с запуском по действию необходимо установить бит CMDEX в регистре NVM CTRLA. Исполнение команд с запуском по чтению происходит при выполнении инструкций прямого или косвенного чтения (LDS или LD) из PDI (чтение PDI). Наконец, команды с запуском по записи исполняются при выполнении инструкции прямой или косвенной записи (STS или ST) из PDI (запись PDI).

Детальное описание алгоритма выполнения каждой NVM-команды представлено в подразделах 30.12.3.1…30.12.3.11. Возможность выполнения большинства команд зависит от состояния Lock-бит. После активизации защиты от чтения и записи можно выполнить только команды стирания всей памяти и проверки CRC Flash-памяти.

Таблица 30.5. NVM-команды, доступные при внешнем программировании

CMD[6:0]

Наименование команды

Запуск

Защита от изменения

Занятость NVM

0x00

Нет операции

-

-

-

0x40

Стирание всей памяти(1)

CMDEX

Есть

Занято

0x43

Чтение NVM

Чтение PDI

Нет

Нет

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

0x23

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

Запись PDI

Нет

Нет

0x26

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

CMDEX

Есть

Занято

Flash-память

0x2B

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

Запись PDI

Нет

Занято

0x2E

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

Запись PDI

Нет

Занято

0x2F

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

Запись PDI

Нет

Занято

0x78

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

CMDEX

Есть

Занято

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

0x20

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

Запись PDI

Нет

Занято

0x22

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

Запись PDI

Нет

Занято

0x24

Запись страницы сектора прикладной программы

Запись PDI

Нет

Занято

0x25

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

Запись PDI

Нет

Занято

0x38

Проверка CRC в секторе прикладной программы

CMDEX

Есть

Занято

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

0x68

Стирание загрузочного сектора

Запись PDI

Нет

Занято

0x2A

Стирание страницы загрузочного сектора

Запись PDI

Нет

Занято

0x2C

Запись страницы загрузочного сектора

Запись PDI

Нет

Занято

0x2D

Стирание и запись страницы загрузочного сектора

Запись PDI

Нет

Занято

0x39

Проверка CRC в загрузочном секторе

NVMAA

Есть

Занято

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

0x03

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

Чтение PDI

Нет

Нет

0x18

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

Запись PDI

Нет

Занято

0x1A

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

Запись PDI

Нет

Занято

0x02

Чтение калибровочных данных

Чтение PDI

Нет

Нет

Fuse- и Lock-биты

0x07

Чтение Fuse-бит

Чтение PDI

Нет

Нет

0x4С

Запись Fuse-бит

Запись PDI

Нет

Занято

0x08

Запись Lock-бит

CMDEX

Есть

Занято

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

0x33

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

Запись PDI

Нет

Нет

0x36

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

CMDEX

Есть

Занято

EEPROM

0x30

Запись EEPROM

CMDEX

Есть

Занято

0x32

Стирание страницы EEPROM

Запись PDI

Нет

Занято

0x34

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

Запись PDI

Нет

Занято

0x35

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

Запись PDI

Нет

Занято

0x06

Чтение EEPROM

Чтение PDI

Нет

Нет


Прим.:

  • Если fuse-бит EESAVE запрограммирован, выполнение команды стирания всей памяти не повлияет на содержимое EEPROM.

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

Данная команда предназначена для стирания Flash-памяти программ, EEPROM и Lock-бит. При необходимости из этого перечня можно исключить EEPROM. Для этого нужно запрограммировать fuse-бит EESAVE (см. 4.16.5 "FUSEBYTE5 - конфигурационный байт 5 энергонезависимой памяти"). Данная инструкция не влияет на сигнатурный код пользователя, калибровочные данные и Fuse-биты.

  • Запишите в регистр NVM CMD команду стирания всей памяти.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Сразу после запуска этой операции происходит отключение PDIBUS, а бит NVMEN в регистре PDI STATUS вплоть до завершения операции имеет нулевое значение. Убедиться в возобновлении работы PDIBUS можно путем опроса бита NVMEN (должен быть равен 1).

Флаг BUSY в регистре NVM STATUS вплоть до завершения операции остается равным единице.

30.12.3.2Чтение NVM

Данная команда предназначена для чтения Flash-памяти, EEPROM, Fuse-бит, сигнатурного кода и калибровочных данных.

  • Запишите в регистр NVM CMD команду чтения NVM.

  • Прочитайте выбранный адрес памяти путем выполнения операции чтение PDI.

Для чтения различных секторов памяти также можно использовать команды чтения EEPROM, чтения Fuse-бит, чтения сигнатурного кода и чтения калибровочных данных. Алгоритм выполнения этих команд идентичен команде чтения NVM.

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

Данные команды предназначены для стирания страничных буферов Flash-памяти и EEPROM.

  • Запишите в регистр NVM CMD команду стирания страничного буфера Flash-памяти/EEPROM.

  • Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

Флаг BUSY в регистре NVM STATUS остается установленным вплоть до завершения выполнения операции.

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

Данные команды предназначены для записи одного байта данных в страничные буферы Flash-памяти и EEPROM.

  • Запишите в регистр NVM CMD команду загрузки страничного буфера Flash-памяти/EEPROM.

  • Выполните операцию запись PDI для записи по выбранному адресу памяти.

Поскольку доступ к страничному буферу Flash-памяти выполняется пословно, а PDI использует побайтную адресацию, запись страничного буфера Flash-памяти PDI-контроллером должна выполняться в корректной последовательности. При выполнении записи, вначале необходимо записать младший байт, а затем старший. После записи младшего байта, он помещается во временный регистр, откуда в дальнейшем будет скопирован в слово страничного буфера одновременно с записью старшего байта слова.

На время выполнения команды работа интерфейса PDI автоматически приостанавливается, чтобы избежать выполнения следующей PDI-инструкции.

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


Команды стирания страницы сектора прикладной программы, стирания страницы загрузочного сектора, стирания сигнатурного кода пользователя и стирания страницы EEPROM предназначены для стирания одной страницы выбранного пространства памяти.

  • Запишите в регистр NVM CMD команду стирания страницы сектора прикладной программы/загрузочного сектора/сигнатурного кода пользователя/EEPROM.

  • Запишите выбранную страницу путем выполнения операции запись PDI. Для записи страницы необходимо адресоваться к любой её ячейке.

Флаг BUSY регистра NVM STATUS удерживается в установленном состоянии вплоть до завершения операции.

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

Команды записи страницы сектора прикладной программы, записи страницы загрузочного сектора, записи сигнатурного кода пользователя и записи страницы EEPROM предназначены для записи загруженного страничного буфера Flash-памяти/EEPROM в выбранное пространство памяти.

  • Запишите в регистр NVM CMD команду записи страницы сектора прикладной программы/загрузочного сектора/сигнатурного кода пользователя/EEPROM.

  • Запишите выбранную страницу путем выполнения операции запись PDI. Для записи страницы необходимо адресоваться к любой её ячейке.

Флаг BUSY регистра NVM STATUS удерживается в установленном состоянии вплоть до завершения операции.

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

С помощью данных команд можно за один подход выполнить стирание и запись страницы сектора прикладной программы, стирание и запись страницы загрузочного сектора или стирание и запись страницы EEPROM.

  • Запишите в регистр NVM CMD команду стирание и запись страницы сектора прикладной программы/загрузочного сектора/сигнатурного кода пользователя/EEPROM.

  • Запишите выбранную страницу путем выполнения операции запись PDI. Запись страницы сектора выполняется при условии адресации любой его ячейки.

Флаг BUSY регистра NVM STATUS удерживается в установленном состоянии вплоть до завершения операции.

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

Данные команды предназначены для стирания всего выбранного сектора.

  • Запишите в регистр NVM CMD команду стирания сектора прикладной программы/загрузочного сектора/EEPROM.

  • Запишите выбранный сектор с помощью операции запись PDI. Запись страницы сектора выполняется при условии адресации любой его ячейки.

Флаг BUSY регистра NVM STATUS удерживается в установленном состоянии вплоть до завершения операции. 30.12.3.9. Проверка CRC в секторе прикладной программы/загрузочном секторе

Данные команды предназначены для проверки содержимого выбранного сектора Flash-памяти после их программирования.

  • Запишите в регистр NVM CMD команду проверки CRC в секторе прикладной программы/загрузочном секторе.

  • Установите бит CMDEX в регистре NVM CTRLA с помощью привязанной ко времени последовательности CCP.


Смотрите также файлы