В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > ARM
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


21. Интерфейс программирования флэш-памяти (FFPI)

21.1 Обзор

Интерфейс программирования флэш-памяти сориентирован для серийного производства. Программирование осуществляется по параллельному или последовательному интерфейсу. Для программирования используются стандартные промышленные программаторы. Параллельный интерфейс очень удобен, так как в этом случае устройство определяется как стандартная память EEPROM. Вдобавок, при параллельном программировании возможен доступ ко всем встроенным возможностям флэш-памяти.

Режим программирования флэш-памяти не предназначен для внутрисхемного программирования.

21.2 Параллельный режим программирования флэш-памяти

21.2.1 Конфигурация устройства

В режиме программирования флэш-памяти микроконтроллер находится в особом тестовом режиме. В этом режиме используется часть выводов, остальные выводы должны быть отключены.

Включение AT91SAM7S256/128/64/321 при параллельном интерфейсе программирования
Рис. 21-1. Включение AT91SAM7S256/128/64/321 при параллельном интерфейсе программирования

Включение   AT91SAM7S32 при параллельном интерфейсе программирования
Рис. 21-2. Включение AT91SAM7S32 при параллельном интерфейсе программирования

Таблица 21-1 Описание выводов

Сигнал Назначение Тип Активный уровень Примечания
Питание
VDDFLASH Питание флэш-памяти Питание    
VDDIO Питание буферов портов ввода/вывода Питание    
VDDCORE Питание ядра Питание    
VDDPLL Питание PLL (ФАПЧ) Питание    
GND Земля Земля    
Тактовые сигналы
XIN Вход основного тактового генератора. Может быть подключен к цепи GND, в этом случае микроконтроллер тактируется от внутреннего RC генератора. Вход   От 32кГц до 50МГц
Сигналы выбора тестового режимов
TST Выбор тестового режима Вход Высокий Подтянут к VDDIO
PGMENO Выбор тестового режима Вход Высокий Подтянут к VDDIO
PGMEN1 Выбор тестового режима Вход Высокий Подтянут к VDDIO
PGMEN2 Выбор тестового режима Вход Низкий Подтянут к GND
Сигналы программирования
PGMNCMD Команда программирования Вход Низкий Подтянут к VDDIO после сброса
PGMRDY 0: устройство занято
1: устройство готово для новой команды
Выход Высокий Подтянут к VDDIO после сброса
PGMNOE Разрешение выходов (active high) Вход Низкий Подтянут к VDDIO после сброса
PGMNVALID Направление передачи данных
0: DATA[15:0] или DATA[8:0](1) в режиме ввода
1: DATA[15:0] или DATA[8:0](1) в режиме вывода
Выход Низкий Подтянут к VDDIO после сброса
PGMM[3:0] Режим программирования (см. Таблицу 21-2) Вход   Подтянуты к VDDIO после сброса
PGMD[15:0] или [8:0](2) Двунаправленная шина данных Вход/ Выход   Подтянуты к VDDIO после сброса

Примечания:

  1. DATA[8:0] для AT91SAM7S32.
  2. PGMD[8:0] для AT91SAM7S32.

21.2.2 Описание сигналов

Данные c шины DATA загружаются в различные внутренние регистры в зависимости от установок сигналов MODE.

Таблица 21-2 Установка режимов сигналами MODE

MODE[3:0] Режим Запись данных в регистр
0000 CMDE Запись в Регистр команд
0001 ADDR0 Запись в Регистр адреса - младший байт
0010 ADDR1  
0011 ADDR2  
0100 ADDR2 Запись в Регистр адреса - старший байт
0101 DATA Запись в Регистр данных
Остальные значения IDLE -

Примечание: DATA[8:0] для AT91SAM7S32.

Таблица 21-3. Коды команд для работы с флэш-памятью

DATA[15:0] или DATA[8:0](1) Обозначение команды Выполнение команды
0x0011 READ Чтение Флэш-памяти
0x0012 WP Запись страницы флэш-памяти
0x0022 WPL Запись страницы и установка защиты
0x0032 EWP Стирание и запись страницы
0x0042 EWPL Стирание и запись страницы, затем установка защиты
0x0013 EA Стереть все
0x0014 SLB Установить защиту
0x0024 CLB Снять защиту
0x0015 GLB Чтение бит защиты
0x0034 SFB Установить NVM бит
0x0044 CFB Сбросить NVM бит
0x0025 GFB Чтение NVM бит
0x0054 SSE Установить бит секретности
0x0035 GSE Чтение бита секретности
0x001E GVE Проверка версии

Примечание: DATA[8:0] для AT91SAM7S32

21.2.3 Режим программирования

Для входа в режим программирования флэш-памяти необходимо выполнить:

  • Подключить цепи GND, VDDIO, VDDCORE, VDDFLASH, VDDPLL;
  • Подключить тактовый вход XIN в течение интервала TPOR_RESET при использовании внешнего тактового генератора;
  • Выждать интервал TPOR_RESET;
  • Начать операцию чтения/записи.

Примечание: после сброса микроконтроллер тактируется от внутреннего RC генератора. Перед сбросом сигнала RDY, если внешний тактовый генератор (> 32 кГц) подключен к входу XIN, микроконтроллер переключится на внешний генератор, в противном случае вход XIN не подключается. Более высокая частота на входе XIN повышает скорость обмена данными с программатором.

21.2.3.1 Циклы программирования

Циклы программирования определены для операций чтения и записи. Когда микроконтроллер готов к выполнению новой команды (установлен сигнал RDY), программатор начинает рабочий цикл сбросом сигнала NCMD. Цикл завершается, когда оба сигнала NCMD и RDY имеют высокий уровень.

21.2.3.2 Цикл записи.

Работа цикла записи поясняется рис.21-3, рис.21-4 и таблицей 21-4.

Цикл записи при параллельном программировании AT91SAM256/128/64/321
Рис.21-3 Цикл записи при параллельном программировании AT91SAM256/128/64/321

Цикл записи при параллельном программировании AT91SAM7S32
Рис.21-4 Цикл записи при параллельном программировании AT91SAM7S32

Таблица 21-4 Цикл записи

Шаг Действия программатора Действия микроконтроллера Данные
1 Установка сигналов MODE и DATA Ожидание низкого уровня NCMD Вход
2 Сброс сигнала NCMD Фиксация сигналов MODE и DATA Вход
3 Ожидание низкого уровня RDY Сброс сигнала RDY Вход
4 Отключение сигналов MODE и DATA Выполнение команды и установка сигнала NCMD Вход
5 Установка сигнала NCMD Выполнение команды и установка сигнала NCMD Вход
6 Ожидание высокого уровня RDY Установка RDY Вход

21.2.3.3 Цикл чтения

Работа цикла чтения поясняется рис.21-5, рис.21-6 и таблицей 21-5

Цикл чтения при параллельном программировании AT91SAM256/128/64/321
Рис.21-5 Цикл чтения при параллельном программировании AT91SAM256/128/64/321

Цикл чтения при параллельном программировании AT91SAM7S32
Рис.21-6 Цикл чтения при параллельном программировании AT91SAM7S32

Таблица 21-5 Цикл чтения

Шаг Действия программатора Действия микроконтроллера Данные
1 Установка сигналов MODE и DATA Ожидание низкого уровня NCMD Вход
2 Сброс сигнала NCMD Фиксация сигналов MODE и DATA Вход
3 Ожидание низкого уровня RDY Сброс сигнала RDY Вход
4 Установка сигналов DATA в высоко импедансное состояние (Tristate) Ожидание низкого уровня NOE Вход
5 Сброс сигнала NOE   Tristate
6 Ожидание низкого уровня NVALID Установка шины DATA в режим вывода и вывод содержимого flash памяти Выход
7   Сброс сигнала NVALID Выход
8 Чтение данных с шины DATA Ожидание высокого уровня NOE Выход
9 Установка сигнала NOE   Выход
10 Ожидание высокого уровня NVALID Установка шины DATA в режим ввода X
11 Установка шины DATA в режим вывода Установка сигнала NVALID Вход
12 Установка сигнала NCMD Ожидание высокого уровня NCMD Вход
13 Ожидание высокого уровня RDY Установка сигнала RDY Вход

21.2.4 Работа микроконтроллера с флэш-памятью

Команды для работы с флэш-памятью сведены в таблицу 21-3. Каждая команда выполняется программатором через параллельный интерфейс в нескольких последовательных циклах чтения/записи.

Выполнение команды чтения непосредственно после команды записи автоматически очищает буфер записи

.

В таблицах с 21-6 по 21-14

  • DATA[15:0] для AT91SAM7S256/128/64/321
  • DATA[8:0] для AT91SAM7S32

21.2.4.1 Команда чтения флэш-памяти

Операция чтения осуществляется с любого адреса в пространстве флэш-памяти и оптимизирована для последовательного чтения (без повторного указания полного адреса). В этом случае внутренний адресный буфер автоматически инкрементируется.

Таблица 21-6 Выполнение команды чтения

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE READ
2 Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
3 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
4 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
5 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
6 Цикл чтения DATA *Инкрементирование адреса памяти
7 Цикл чтения DATA * Инкрементирование адреса памяти
n Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
n+1 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
n+2 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
n+3 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
n+4 Цикл чтения DATA *Инкрементирование адреса памяти
n+5 Цикл чтения DATA *Инкрементирование адреса памяти

21.2.4.2 Команда записи флэш-памяти

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

  • при обращении к любой странице отличной от текущей,
  • поступает новая команда (MODE = CMDE).

Команда "Write Page" ("Запись страницы") WP оптимизирована для последовательной записи (без повторного указания полного адреса). В этом случае внутренний адресный буфер автоматически инкрементируется.

Таблица 21-7 Выполнение команд записи

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE Команды WP,WPL,EWP или EWPL
2 Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
3 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
4 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
5 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
6 Цикл записи DATA *Инкрементирование адреса памяти
7 Цикл записи DATA * Инкрементирование адреса памяти
n Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
n+1 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
n+2 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
n+3 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
n+4 Цикл записи DATA *Инкрементирование адреса памяти
n+5 Цикл записи DATA *Инкрементирование адреса памяти

Команда Запись страницы и защита (Write Page and Lock) WPL аналогична команде записи, но при этом в конце операции записи автоматически устанавливается бит защиты (lock бит). Так как область защиты включает несколько страниц, программатор записывает первые страницы блокируемой области, используя команду WP, а последнюю страницу записывает командой WPL.

Команда Стирание страницы и запись (Erase Page and Write) EWP. Перед заполнением буфера записи страница стирается.

Команда Стирание страницы запись и защита (Erase Page and Write the Lock) является комбинацией команд EWP и WPL.

21.2.4.3 Команда полного стирания флэш-памяти.

Перед полным стиранием флэш-памяти со всех защищенных областей флэш-памяти должна быть снята защита командой CLB. В противном случае операция стирания не будет выполнена.

Таблица 21-8. Команда полного стирания флэш-памяти

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE EA
2 Цикл записи DATA 0

21.2.4.4 Команды защиты флэш-памяти

Биты защиты устанавливаются командами WPL или EWPL. Командой установки защиты (Set Lock Bit) SLB могут быть активированы несколько бит защиты. В этом случае совместно с командами SLB/CLB используется дополнительный аргумент Маска защиты (Bit Mask). Установка нулевого бита маски защиты активирует соответственно первый бит защиты.

Для сброса битов защиты используется команда Снять защиту (Clear Lock Bit) CLB. Все биты защиты сбрасываются также командой EA.

Таблица 21-9 Команды установки/сброса бит защиты

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE SLB или CLB
2 Цикл записи DATA Маска защиты

Чтение битов защиты осуществляется командой Get Lock Bit (GLB). В маске защиты установленному n-ому биту соответствует активный n-ый бит защиты.

Таблица 21-10 Команда чтения битов защиты GLB

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE GLB
2 Цикл чтения DATA Статус бита в маске защиты
0 = Бит защиты сброшен
1 = Бит защиты установлен

21.2.4.5 Команды управления NVM битами защиты

Общие NVM биты защиты (GP NVM биты) устанавливаются командой Set Fuse Bit (SFB). При этом соответствующие биты активируются. С командой также используется аргумент Маска защиты (Bit Mask).

Установка нулевого бита маски защиты активирует соответственно первый бит защиты GP NVM.

Команда Clear Fuse Bit (CFB) используется для сброса GP NVM бит. GP NVM биты также сбрасываются командой EA. GP NVM биты деактивируются, когда соответствующие биты в Маске GP NVM установлены в 1.

Таблица 21-11 Команда установки/сброса GP NVM бит

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE SFB или CFB
2 Цикл записи DATA Маска GP NVM бит

GP NVM биты читаются командой Get Fuse Bit (GFB). В маске GP NVM установленному n-ому биту соответствует активный n-ый GP NVM бит.

Таблица 21-12 Команда чтения GP NVM бит

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE GFB
2 Цикл чтения DATA Статус бита в маске GP NVM
0 = GPNVM бит сброшен
1 =GPNVM бит установлен

21.2.4.6 Бит секретности флэш-памяти

Бит секретности устанавливается командой Set Security Bit (SSE). При активном бите секретности программирование флэш-памяти невозможно. Сброс бита защиты возможен только с полным стиранием содержимого флэш-памяти.

Таблица 21-13 Команда установки бита секретности

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE SSE
2 Цикл записи DATA 0

21.2.4.7 Команда чтения памяти

Операция чтения (RRAM) осуществляется с любого адреса в пространстве памяти и оптимизирована для последовательного чтения (без повторного указания полного адреса). В этом случае внутренний адресный буфер автоматически инкрементируется.

Таблица 21-14 Команда чтения

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE RRAM
2 Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
3 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
4 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
5 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
6 Цикл чтения DATA *Установка адреса памяти на 1 больше
7 Цикл чтения DATA *Установка адреса памяти на 1 больше
n Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
n+1 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
n+2 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
n+3 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
n+4 Цикл чтения DATA *Установка адреса памяти на 1 больше
n+5 Цикл чтения DATA *Установка адреса памяти на 1 больше

21.2.4.8 Команда записи в память

Команда записи (WRAM) осуществляется с любого адреса в пространстве памяти и оптимизирована для последовательной записи (без повторного указания полного адреса). В этом случае внутренний адресный буфер автоматически инкрементируется.

Таблица 21-15 Команда записи

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE WRAM
2 Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
3 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
4 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
5 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
6 Цикл записи DATA *Установка адреса памяти на 1 больше
7 Цикл записи DATA *Установка адреса памяти на 1 больше предыдущего
n Цикл записи ADDRO 32-битный адрес флэш-памяти (первый байт)
n+1 Цикл записи ADDR1 32-битный адрес флэш-памяти (второй байт)
n+2 Цикл записи ADDR2 32-битный адрес флэш-памяти (третий байт)
n+3 Цикл записи ADDR3 32-битный адрес флэш-памяти (последний байт)
n+4 Цикл записи DATA *Установка адреса памяти на 1 больше
n+5 Цикл записи DATA *Установка адреса памяти на 1 больше предыдущего

21.2.4.9 Команда чтения версии

Команда чтения версии Get Version (GVE) выдает информацию по версии FFPI интерфейса.

Таблица 21-16 Команда проверки версии

Шаг Последовательность циклов MODE[3:0] DATA[15:0] и DATA[8:0]
1 Цикл записи CMDE GVE
2 Цикл записи DATA Версия FFPI


<--Предыдущая страница Оглавление Следующая страница -->