(Program Status) — результат программирования байта:
• 0 — байт записан успешно;
• 1 — ошибка записи.
♦
SR.3
—
VPPS
(VPP Status) — состояние VPP во время программирования или стирания:
• 0 — напряжение было в норме;
• 1 — зафиксировано понижение напряжения, и операция прервана.
♦
SR[2:0]
— зарезервированы.
Таблица 7.26. Команды микросхем флэш-памяти Intel второго поколения
Команда
Число циклов шины
Первый цикл шины¹
Второй (третий) цикл шины¹
R/W
Адрес
Данные
R/W
Адрес
Данные
Read Array/Reset
1
W
X
FFh
–
–
_
Read ID (D_Id)
3
W
X
90h
R
0(1)
M_Id
Read Status Register
2
W
X
70h
R
X
SRD
Clear Status Register
1
W
X
50h
–
–
–
Erase Setup/Erase Confirm
2
W
BA
20h
W
BA
D0h
Erase Suspend/Erase Resume
2
W
X
B0h
W
X
D0h
Program Setup/Program
2
W
PA
40h
W
PA
PD
Alternate Program Setup/Program²
2
W
PA
10h
W
PA
PD
¹ Здесь X
обозначает несущественный адрес, M_Id и D_Id — идентификаторы производителя и устройства, SRD — данные, считанные из регистра состояния, PA и PD — адрес и данные программируемой ячейки, BA — адрес блока.
² Альтернативный код команды программирования; доступен для микросхем емкостью 2, 4 и 8 Мбит.
Ниже описано назначение команд.
♦
Read Array
/
Reset
— чтение массива памяти (перевод в режим, совместимый с EPROM) и прерывание операций стирания и программирования.
♦
Read ID
— чтение идентификаторов производителя и устройства.
♦
Read Status Register
— чтение регистра состояния.
♦
Clear Status Register
— сброс регистра состояния.
♦
Erase Setup/Erase Confirm
— подготовка и стирание блока. В отличие от микросхем первого поколения, все внутренние операции, необходимые для стирания (обнуление ячеек блока, стирание и верификация), выполняются автоматически. При получении команды в регистре состояния устанавливается признак занятости (
SR.7
=0) и любая шинная операция чтения микросхемы будет передавать данные этого регистра. Внешняя программа, периодически опрашивая регистр состояния, дожидается окончания выполнения стирания (когда
SR.7
=1). Результат стирания определяется по значению бит 3, 4, 5 (их нулевое значение соответствует успешному выполнению операции).
♦
Erase Suspend
/
Erase Resume
— приостановка/продолжение стирания. Операцию стирания блока (как самую длительную) можно приостановить для чтения данных из других блоков. После выполнения команды
Erase Suspend
(код B0h) необходимо дождаться признака приостановки стирания (
SR.6
=1), после чего, подав команду
Read Array
, можно считывать данные другого блока. По окончании считывания подается команда
Erase Resume
(код D0h), которая продолжает процесс стирания и снова переводит микросхему в режим чтения регистра
состояния.
♦
Program Setup
/
Program
— подготовка и программирование ячейки. Эта команда выполняется аналогично подготовке и выполнению стирания, но не может быть приостановлена. Команда выполняет сразу и программирование, и верификацию.
Команды стирания блока и программирования можно подавать, только когда управляющий автомат свободен (бит
SR.7
=1). Во время этих операций микросхема следит за уровнем напряжения VPP, и, если оно понижается до порога VPPLK) этот факт регистрируется в регистре состояния и операция прерывается. Также операция прерывается при понижении напряжения питания VCC до 2,5 В.
При считывании регистра состояния его мгновенное значение фиксируется по спаду сигнала
СЕ#
или
ОЕ#
(самого позднего из них в шинном цикле считывания).
Программирование и стирание Boot-блока отличаются от операций с другими блоками тем, что для них требуется подача высокого потенциала VHH (не ТТЛ, а +12 В) на вход
PWD#
перед выдачей команды стирания или программирования и удержание его до успешного завершения операции. Альтернативный способ — подача такого же потенциала, но на вход
ОЕ#
на время пар шинных циклов записи команд стирания или программирования. Попытка программирования Boot-блока без выполнения этих условий не удается, а в регистре состояния одновременно устанавливаются единичные значения бит
ES
и
PS
, что индицирует попытку модификации защищенного блока.
Микросхемы Flash-file организованы в виде набора одинаковых блоков, равноправных (симметричных) по защите (Symmetrical Architecture, SA), Защита от модификации для 28F008SA может осуществляться только для всей микросхемы подачей низкого напряжения на вход VPP. По интерфейсу и командам микросхемы совпадают с микросхемами Boot Block (исключая специфику Boot-блока).
Архитектура микросхем 28F016SA существенно изменена, что значительно повышает производительность программирования (до 28,6 Мбайт/с в пакетном режиме) и обеспечивает поблочную защиту. Микросхема имеет два буфера данных для записи по 256 Кбайт. Флэш-память организована как 32 блока по 64 Кбайт, допускающих однобайтное или двухбайтное обращение. С каждым блоком связан собственный 8-битный регистр состояния блока
BSRx
(Block Status Register). Адреса регистров смещены относительно начального адреса блока на 2 или 1 для режимов обращения x8 или x16 соответственно. Назначение бит
BSR
описано ниже.
♦
BSR.7
—
BS
(Block Status) — состояние блока:
• 1 — готов;
• 0 — занят.
♦
B5R.6
—
BLS
(Block-Lock Status) — состояние защиты блока:
• 1 — программирование и стирание запрещены;
• 0 — блок не защищен.
♦
BSR.5
—
BOS
(Block Operation Status) — состояние операции с блоком:
• 1 — операция завершена безуспешно;
• 0 — операция успешно завершена или выполняется.
♦
BSR.4
—
BOAS
(Block Operation Abort Status) — состояние отмены операции с блоком:
• 1 — операция отменена;
• 0 — операция не отменялась.
♦
BSR.3
—
QS
(Queue Status) — состояние очереди:
• 1 — очередь заполнена;
• 0 — очередь доступна.
♦
BSR.2
—
VPPS
(VPP Status) — состояние VPP:
• 1 — обнаружен низкий уровень, операция прервана;
• 0 — VPP в норме.
♦
BSR[1:0]
— зарезервированы.
Глобальный регистр состояния
GSR
(Global Status Register) несет информацию о состоянии микросхемы в целом. К
GSR
можно обращаться по адресу, смещенному относительно начального адреса любого блока на 4 или 2 для режимов обращения x8 или x16 соответственно. Назначение бит
GSR
описано ниже.
♦
GSR.7
—
WSMS
(Write State Machine Status) — состояние автомата записи (и завершенности внутренних операций):