- •Отличительные особенности микроконтроллеров at91 на базе ядра arm® Thumb®
- •. Описание
- •2. Краткий обзор конфигурации семейства at91sam7s
- •3. Структурная схема
- •4. Назначение выводов
- •5. Назначение внешних выводов для различных корпусов
- •6. Питание
- •7. Порты ввода-вывода
- •8. Архитектура ядра процессора
- •9. Память
- •10. Системный контроллер
- •10.1 Организация памяти системного контроллера
- •10.2 Контроллер сброса
- •10.3 Тактовый генератор
- •10.4 Контроллер управления потребляемой мощностью
- •Расширенный контроллер прерываний и модуль внутрисхемной отладки
- •Таймеры, контроллер портов ввода-вывода и контроллер режимов стабилизатора напряжения питания
- •11. Периферийные модули
- •11.1 Организация памяти периферийных модулей
- •11.2 Дополнительные функции портов ввода-вывода
- •11.3 Функции портов pa0…pa31
- •11.4 Идентификаторы периферийных модулей
- •11.5 Последовательный периферийный интерфейс
- •Двухпроводной интерфейс, usart, spi
- •11.9 Таймер-счетчик (tc)
- •Шим контроллер, usb, ацп
- •12. Обзор процессора arm7tdmi
- •13. Отличительные способности средств отладки и тестирования Описание и структурная схема
- •13.3 Примеры применения
- •13.4 Описание выводов для отладки и тестирования
- •13.5 Функциональное описание
- •14. Контроллер сброса (rstc) Обзор и структурная схема
- •14.3 Функциональное описание
- •14.4 Пользовательский интерфейс контроллера сброса
- •15. Таймер реального времени (rtt)
- •15.3 Функциональное описание
- •15.4 Пользовательский интерфейс таймера реально времени
- •16. Интервальный таймер (pit)
- •16.3 Функциональное описание
- •16.4 Пользовательский интерфейс интервального таймера
- •17. Сторожевой таймер (wdt)
- •17.3 Функциональное описание
- •17.4 Пользовательский интерфейс сторожевого таймера
- •18. Контроллер режимов стабилизатора напряжения (vreg)
- •19. Контроллер памяти (mc)
- •19.3 Функциональное описание
- •19.4 Пользовательский интерфейс контроллера памяти
- •20. Контроллер встроенной флэш-памяти (efc)
- •20.3 Пользовательский интерфейс контроллера встроенной флэш-памяти
- •21. Интерфейс программирования флэш-памяти (ffpi)
- •21.3. Последовательный интерфейс программирования флэш-памяти
- •22. Стартовый загрузчик at91sam7 (бут загрузчик)
- •23. Контроллер пдп (dma) периферийных модулей
- •23.3 Функционирование контроллера dma
- •23.4 Контроллер пдп (pdc). Интерфейс работы
- •24. Расширенный Контроллер Прерываний (aic)
- •24.6 Особенности контроллеров at91 серии
- •24.7 Функциональное описание
- •24.8 Контроллер прерываний aic. Интерфейс пользователя
- •25. Тактовый генератор
- •26. Контроллер управления потребляемой мощности (pmc)
- •26.5 Контроллер тактовых сигналов периферийных модулей (Peripheral Clock Controller)
- •26.6 Контроллер программно управляемых внешних тактовых сигнала
- •6.7 Последовательность программирования
- •26.8 Переключение тактовых сигналов
- •26.9 Регистры контроллера управления потребляемой мощности
- •27. Модуль внутрисхемной отладки (dbgu)
- •27.4. Работа уапп (uart)
- •27.5 Пользовательский интерфейс модуля внутрисхемной отладки
- •28. Контроллер параллельного ввода-вывода
- •8.5 Функциональное описание
- •28.7. Пользовательский интерфейс контроллера параллельного ввода - вывода
- •9. Последовательный периферийный интерфейс (spi)
- •29.6 Функциональное описание
- •29.7 Пользовательский интерфейс последовательно - параллельного интерфейса (spi)
- •30. Двухпроводной интерфейс
- •30.5 Функциональное описание
- •30.6. Пользовательский интерфейс двухпроводного интерфейса
- •33. Таймер-счетчик (тс)
- •33.5 Функциональное описание
- •33.6 Пользовательский интерфейс таймера-счетчика (тс)
- •34. Контроллер широтно-импульсной модуляции (шим)
- •34.5 Функциональное описание
- •34.6 Пользовательский интерфейс шим-контроллера (pwm)
- •35. Порт usb-устройства (udp)
- •35.5. Функциональное описание
- •35.5.2.8 Транзакция "Статус"
- •35.6. Пользовательский интерфейс usb порта (udp)
- •36. Аналогово-цифровой преобразователь (ацп)
- •36.5 Функциональное описание
- •36.6 Пользовательский интерфейс ацп
20.3 Пользовательский интерфейс контроллера встроенной флэш-памяти
Пользовательский интерфейс EFCS встроен в контроллер памяти, базовый адрес которого 0xFFFF FF00
Таблица 20-3. Карта распределения регистров контроллера встроенной флэш-памяти (EFCS)
|
Смещение |
Регистр |
Название |
Вид доступа |
Состояние после сброса |
|
0x60 |
Регистр режима флэш-памяти |
MC_FMR |
Для записи и чтения |
0x0000 0000 |
|
0x64 |
Регистр команды флэш-памяти |
MC_FCR |
Только для записи |
- |
|
0x68 |
Регистр статуса флэш-памяти |
MC_FSR |
Только для чтения |
- |
|
0x6C |
Зарезервировано |
- |
- |
- |
20.3.1 Регистр режима флэш-памяти
Название регистра: MC_FMR
Вид доступа: для записи и чтения
Смещение: 0x60
|
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
|
- |
- |
- |
- |
- |
- |
- |
- |
|
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
|
FMCN | |||||||
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
|
- |
- |
- |
- |
- |
- |
FWS | |
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
NEBP |
- |
- |
- |
- |
PROGE |
LOCKE |
FRDY |
FDRY: флаг разрешения прерывания по готовности флэш-памяти
0 = прерывание по готовности флэш-памяти запрещено.
1 = прерывание по готовности флэш-памяти разрешено.
LOCK: флаг разрешения прерывания при ошибке защиты флэш-памяти
0 = прерывание при попытке программирования защищенной области флэш-памяти (Lock Error) запрещено.
1 = прерывание при попытке программирования защищенной области флэш-памяти разрешено.
PROGE: флаг разрешения прерывания при ошибке программирования флэш-памяти
0 = прерывание при ошибке программирования флэш-памяти (Programming Error) запрещено.
1 = прерывание при ошибке программирования флэш-памяти разрешено.
NEBP: флаг запрета стирания флэш-памяти перед ее программированием
0 = перед программированием флэш-памяти осуществляется стирание соответствующей страницы.
1 = перед программированием флэш-памяти не производится ее предварительное стирание.
FWS: число тактов ожидания при обращении к флэш-памяти
Это поле определяет количество тактов ожидания при выполнении команд чтении или записи флэш-памяти:
|
FWS |
Команды чтения |
Команды записи |
|
0 |
1 такт ожидания |
2 такта ожидания |
|
1 |
2 такта ожидания |
3 такта ожидания |
|
2 |
3 такта ожидания |
4 такта ожидания |
|
3 |
4 такта ожидания |
4 такта ожидания |
FCMD: число тактов MCK для формирования микросекундных интервалов
Перед обращением к NVM-битам (биты защиты, NVM-биты общего назначения и бит секретности) в этом поле необходимо установить число тактов MCK таким образом, чтобы в итоге получился микросекундный интервал: FCMD.TMCK = 1 мкс, где TMCK - длительность одного периода сигнала MCK.
Предупреждение: FCMD = 0 допустимо только в том случае, если период сигнала MCK составляет не менее 30 мкс (частота MCK не превышает 33 МГц).
Предупреждение: в поле FCMD обязательно должно быть записано корректное значение, в противном случае не гарантируется корректное выполнение команд работы с флэш-памятью.
20.3.2 Регистр команды флэш-памяти
Название регистра: MC_FCR
Вид доступа: только для записи
Смещение: 0x64
|
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
|
KEY | |||||||
|
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
|
- |
- |
- |
- |
- |
- |
PAGEN | |
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
|
PAGEN | |||||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
- |
- |
- |
- |
FCMD | |||
FCMD: код команды флэш-памяти
Это поле определяет код команды для работы с флэш-памятью.
|
FCMD |
Команда |
|
0000 |
Нет команды. Не оказывает влияния на флаг ошибки программирования PROGE в регистре статуса MC_FSR. |
|
0001 |
Команда программирования страницы (WP): Запускает процесс программирования одной страницы, номер которой указан в поле PAGEN. |
|
0010 |
Команда установки бита защиты (SLB): Запускает процесс установки защиты той области флэш-памяти, номер которой указан в поле PAGEN. |
|
0011 |
Команда программирования страницы и установки соответствующего ей бита защиты (WPL): Запускает процесс программирования одной страницы, номер которой указан в поле PAGEN. После завершения программирования автоматически устанавливается бит защиты, соответствующий этой странице. |
|
0100 |
Команда очистки бита защиты (CLB): Запускает процесс снятия защиты той области флэш-памяти, номер которой указан в поле PAGEN. |
|
1000 |
Команда стирания всей флэш-памяти (EA): Запускает процесс стирания всей реализованной на кристалле области флэш-памяти. Если защищена хотя бы одна страница с помощью бита защиты, то эта команда выполнена не будет. |
|
1011 |
Команда установки NVM-бита общего назначения (SGPB): Запускает процесс установки NVM-бита общего назначения, номер которого указан в поле PAGEN. |
|
1101 |
Команда очистки NVM-бита общего назначения (CGPB): Запускает процесс очистки NVM-бита общего назначения, номер которого указан в поле PAGEN. |
|
1111 |
Команда установки бита секретности (SSB): Установка бита секретности. Очистка бита секретности возможна только по внешнему выводу ERASE. |
|
Остальные значения |
Зарезервировано. Вызывает установку флага ошибки программирования PROGE в регистре статуса MC_FSR. |
FCMD: код команды флэш-памяти
|
Команда |
Назначение поля PAGEN |
|
Команда программирования страницы |
Содержимое поля PAGEN определяет номер страницы, которая должна быть запрограммирована. |
|
Команда программирования страницы и установки ее защиты |
Содержимое поля PAGEN определяет номер страницы, которая должна быть запрограммирована и защищена. |
|
Команда стирания всей флэш-памяти |
Содержимое поля PAGEN не имеет значения |
|
Команда установки/очистки бита защиты |
Содержимое поля PAGEN определяет номер страницы, для которой должна быть установлена или снята защита. |
|
Команда установка/очистки NVM-бита общего назначения |
Содержимое поля PAGEN определяет номер NVM-бита общего назначения |
|
Команда установки бита секретности |
Содержимое поля PAGEN не имеет значения |
Примечание:в зависимости от кода команды, неиспользуемые (незадействованные) биты поля PAGEN не имеют значения.
KEY: ключевое число
В это поле должно быть записано значение 0xA5, при этом игнорируется попытка записи в это поле любых других значений.
20.3.3 Регистр статуса флэш-памяти
Название регистра: MC_FSR
Вид доступа: только для чтения
Смещение: 0x68
|
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
|
LOCKS |
LOCKS14 |
LOCKS13 |
LOCKS12 |
LOCKS11 |
LOCKS10 |
LOCKS9 |
LOCKS8 |
|
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
|
LOCKS7 |
LOCKS6 |
LOCKS5 |
LOCKS4 |
LOCKS3 |
LOCKS2 |
LOCKS1 |
LOCKS0 |
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
|
- |
- |
- |
- |
- |
- |
GPNVN1 |
GPNVN0 |
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
- |
- |
- |
SECURITY |
PROGE |
LOCKE |
- |
FRDY |
FDRY: флаг готовности флэш-памяти
0 = контроллер флэш-памяти (EFCS) занят - приостановлено выполнение очередной команды.
1 = контроллер флэш-памяти готов к выполнению очередной команды.
LOCK: флаг ошибки защиты флэш-памяти
0 = еще не возникло ни одной ошибки (с момента последнего чтения регистра MC_FSR) при попытке программирования или стирания защищенной области флэш-памяти (Lock Error).
1 = уже возникла как минимум одна ошибка (с момента последнего чтения регистра MC_FSR) при попытке программирования или стирания защищенной области флэш-памяти.
PROGE: флаг ошибки программирования флэш-памяти
0 = еще не возникло ни одной ошибки (с момента последнего чтения регистра MC_FSR) программирования флэш-памяти (Programming Error).
1 = уже возникла как минимум одна ошибка (с момента последнего чтения регистра MC_FSR) при программировании флэш-памяти.
SECURITY: состояние бита секретности
0 = бит секретности не установлен.
1 = установлен бит секретности.
GPNVMx: состояние NVM-бита общего назначения
0 = соответствующий NVM-бит не установлен.
1 = установлен соответствующий NVM-бит.
LOCKx: состояние бита защиты
0 = соответствующая область флэш-памяти не защищена от программирования и стирания.
1 = соответствующая область флэш-памяти защищена от программирования и стирания.
Карта распределения битов LOCKx регистра MC_FSR для микроконтроллеров семейства AT91SAM7S
|
AT91SAM7S256 |
AT91SAM7S128 |
AT91SAM7S64 |
AT91SAM7S321 |
AT91SAM7S32 |
Назначение |
|
16 |
8 |
16 |
8 |
8 |
Число бит защиты |
|
LOCK0 |
LOCK0 |
LOCK0 |
LOCK0 |
LOCK0 |
Защита области 0 |
|
LOCK1 |
LOCK1 |
LOCK1 |
LOCK1 |
LOCK1 |
Защита области 1 |
|
LOCK2 |
LOCK2 |
LOCK2 |
LOCK2 |
LOCK2 |
Защита области 2 |
|
LOCK3 |
LOCK3 |
LOCK3 |
LOCK3 |
LOCK3 |
Защита области 3 |
|
LOCK4 |
LOCK4 |
LOCK4 |
LOCK4 |
LOCK4 |
Защита области 4 |
|
LOCK5 |
LOCK5 |
LOCK5 |
LOCK5 |
LOCK5 |
Защита области 5 |
|
LOCK6 |
LOCK6 |
LOCK6 |
LOCK6 |
LOCK6 |
Защита области 6 |
|
LOCK7 |
LOCK7 |
LOCK7 |
LOCK7 |
LOCK7 |
Защита области 7 |
|
LOCK8 |
- |
LOCK8 |
- |
- |
Защита области 8 |
|
LOCK9 |
- |
LOCK9 |
- |
- |
Защита области 9 |
|
LOCK10 |
- |
LOCK10 |
- |
- |
Защита области 10 |
|
LOCK11 |
- |
LOCK11 |
- |
- |
Защита области 11 |
|
LOCK12 |
- |
LOCK12 |
- |
- |
Защита области 12 |
|
LOCK13 |
- |
LOCK13 |
- |
- |
Защита области 13 |
|
LOCK14 |
- |
LOCK14 |
- |
- |
Защита области 14 |
|
LOCK15 |
- |
LOCK15 |
- |
- |
Защита области 15 |
