Скачиваний:
180
Добавлен:
13.06.2014
Размер:
6.55 Mб
Скачать

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

21.1 Обзор

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

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

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

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

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

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

Рис. 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.

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

Рис.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

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

Рис.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

Соседние файлы в папке ПЦиПУ. материалы для Курсового проекта Тютякин А.В.