Программаторы для ППЗУ

Для чего нужны ППЗУ, прошивка и методы прошивки ППЗУ

ИНСТИТУТ ЯДЕРНОЙ ФИЗИКИ СО АН СССР В.Р. Козак, Г.С. Пискунов, С.В. Тарарышкин

ПРОГРАММАТОРЫ ДЛЯ ППЗУ

Аннотация

Применение программируемых постоянных запоминающих устройств (ППЗУ) при разработке радиоэлектронной аппаратуры позволяет значительно сократить цикл проектирования при одновременном улучшении характеристик аппаратуры. Появление отечественных микросхем ППЗУ не сопровождалось производством промышленных программаторов, что потребовало разработки соответствующих устройств в ИЯФ СО АН СССР.

Ниже описываются разработанные в институте модули КАМАК для программирования микросхем ППЗУ различного типа, а также программы для работы с этими устройствами.

ПРОГРАММАТОРЫ БИПОЛЯРНЫХ ППЗУ

В качестве элементов памяти в микросхемах 155 и 556 серий используются ячейки с плавкими нихромовыми перемычками. Состояние ячейки изменяется путем пережигания перемычки импульсом тока. В начальный момент во всех ячейках ППЗУ 155РЕ3 и 556РТ4 записан логический нуль, в 556РТ5 - логическая единица. По рекомендации фирмы INTEL для м/с 3601 (аналог 556РТ4А) программирование ведется серией импульсов, длительность которых увеличивается в течение 150 мс. от 1 мкс. до 8 мкс. (рис.1), причем, амплитуда импульсов на выводе питания (16 вывод м/с)  - 10 В., на входе разрешения выборки (14 вывод) - 15 В., 100 мА max., на программируемом выходе - 8 В. через резистор в 300 Ом [1].

По рекомендациям завода-изготовителя программирование 556РТ4 ведется подачей импульсов ( t-от 30 до 100 мс.) на вывод питания - 10 В., на вход разрешения выборки - 15 В., на программируемый выход - 10 В. через резистор 300 Ом.

Согласно руководству по программированию для м/с 155РЕ3, выпускаемых по техническим условиям бКО.348.006 ТУ, бК0.348.006 ТУ18: "запись логической 1 осуществляется путем подачи напряжения 12,5 В. на выход программируемого разряда (через резистор 300 Ом) и программирующего импульса на вывод 16 (U=12,5 В, t=50 мс.)".

М/с 556РТ5 программируются подачей импульсов ( t-от 5 до 100 мс.) на выводы питания (22,24) - 12,5 В., на вход разрешения выборки - 15 В., на программируемый выход - 12,5 В. через резистор 300 Ом.

Для создания достаточно простого унифицированного программатора указанных типов ППЗУ были проведены исследования программируемости ППЗУ при параметрах программирующих импульсов, отличающихся от рекомендованных заводами - изготовителями.
В качестве рабочего выбран режим, при котором программирование ведется серией импульсов изменяемой длительности. Длительность импульсов линейно увеличивается в течение 150 мс. от 5 мкс. до 30 мкс. Амплитуда импульсов, подаваемых на вывод питания и программируемые выходы - 12 В., на вход разрешения выборки - 15 В., причем, на выходы, не участвующие в цикле программирования подается 0 В.

ПРОГРАММАТОР Б0631. Программатор ППЗУ 155РЕ3, 556РТ4 и 556РТ5 выполнен в стандарте КАМАК. Состоит из 9-ти разрядного регистра адреса, 8-ми разрядного регистра данных, автомата программирования и КАМАК-интерфейса. Запись информации в регистр адреса производится по команде A(1)F(16) с шин W1 - W9 магистрали крейта. Младший разряд адреса для 155 РЕ3 - вывод 10 ,
556 РТ4 - вывод 5 , 556 РТ5 - вывод 8 .

Контроль записанного адреса производится по A(1)F(0). При этом информация с регистра адреса передается на R1 - R9 магистрали.
По команде A(0)F(16) информация с шин W1 - W8 записывается в регистр данных и происходит запуск автомата программирования.
: Внимание ! За один цикл программирования, согласно :
: рекомендациям, должен выжигаться только один разряд. :
: Аппаратная защита в модуле не предусмотрена . :
Младший информационный разряд для

155 РЕ3 - вывод 1,
556 РТ4 - вывод 12,
556 РТ5 - вывод 9.

Цикл программирования длится около 0,5 сек. и прекращается по внутреннему таймеру. Прервать работу автомата программирования можно также подачей команды A(1)F(16). По окончании цикла программирования модуль выставляет LAM-запрос.
Для управления сигналом LAM введены команды:

A(0)F(26) - разблокировка LAM,
A(0)F(24) - блокировка LAM. Примечание: после включения питания LAM блокирован.

Проверку LAM-запроса можно производить командой A(0)F(8).
Чтение информации из ППЗУ производится по A(0)F(0).
Ответ X отдается на все используемые в модуле команды.
Ответ Q отдается на команды A(0)F(0), A(1)F(0), A(0)F(24)
и A(0)F(26) всегда, а на команды A(0)F(16) и A(1)F(16) только в том случае, если автомат программирования выключен.
Для сокращения времени программирования рекомендуется вести непрерывное контрольное чтение ППЗУ и прерывать цикл программирования при уверенном разрушении программируемой перемычки.
На передней панели модуля размещены индикаторы LAM-запроса "L", работы автомата программирования ППЗУ "А" и тумблер включения питания ППЗУ. Модуль имеет ширину 3М.

ПРОГРАММАТОР Б0628.

556РТ6 и 556РТ7 представляют собой ППЗУ с организацией 2048 восьмиразрядных слов. В исходном состоянии в незапрограммированных схемах в ячейках памяти записан логический нуль. Запись логической единицы производится путем пережигания нихромовых перемычек. Для этого по определенной временной диаграмме (рис,2) на вывод питания (вывод 24) подаются импульсы амплитудой 9 В., на программируемый выход - 18 В., на вход разрешения выборки (вывод 20) - 0 В.

Программатор ППЗУ 556РТ6 и 556РТ7 выполнен в стандарте КАМАК. Для унификации программного обеспечения имеет набор КАМАК-функций, в основном совпадающий с КАМАК-функциями программатора Б0631.
A(0)F(16) - запись в информационный регистр, включение автомата программирования;
A(1)F(16) - запись в регистр адреса, выключение автомата программирования;
A(0)F(0) - чтение информации из ППЗУ, в том числе и при работающем автомате программирования для контроля программируемого разряда;
A(0)F(24) - блокировка LAM-запроса;
A(0)F(26) - разблокировка LAM-запроса;
A(0)F(8) - проверка LAM-запроса по ответу Q.
Ответ X отдается на все используемые в модуле команды.
Ответ Q отдается на команды A(0)F(0), A(0)F(24) и A(0)F(26) всегда, а на команды A(0)F(16), A(1)F(16) и A(0)F(8) только в том случае, если автомат программирования выключен.

Для сокращения времени программирования рекомендуется вести непрерывное контрольное чтение ППЗУ и прерывать цикл программирования при уверенном разрушении программируемой перемычки.

На передней панели модуля размещены индикаторы LAM-запроса "L", работы автомата программирования ППЗУ "А" и тумблер включения программирующего напряжения. Модуль имеет ширину 3М.

ПРОГРАММАТОР РЕПРОГРАММИРУЕМЫХ ПЗУ Б0639

Отечественные репрограммируемые ПЗУ (РППЗУ) производятся по двум различным технологиям: РППЗУ с лавинно инжекционным плавающим затвором- к ним относятся микросхемы 573РФii, и РППЗУ МНОП (металл-нитрид-окисел-полупроводник)- к ним относятся микросхемы 558РРii, 1801РРii. Микросхемы первого типа стираются ультрафиолетовым облучением, микросхемы второго типа стираются электрическим способом. Несмотря на значительные различия в способе стирания и записи информации в микросхемы РППЗУ, для пользователя они являются практически одинаковыми- идентичная разводка выводов при равной информационной емкости, одинаковое время считывания (200-500 нс) и почти совпадающий ток потребления. По сравнению с биполярными ППЗУ однократного программирования, РППЗУ отличаются большей информационной емкостью, на каждой ступени технологического прогресса МОП РППЗУ превосходили биполярные ППЗУ по информационной емкости в 4 раза.

Однотипность корпусов и разводки выводов, простая временная диаграмма программирования микросхем этого типа, позволили создать очень простой прибор (Б0630), который позволял программировать микросхемы 573РФ2, 573РФ4, 573РФ5, 573РФ6 и их зарубежные аналоги.

По мере развития электронной промышленности, стали появляться все новые типы РППЗУ, такие как 573РФ3 (ЛИЗМОП) и 1801РР1 (МНОП)- 4К 16-разрядных слов, совместимые с шиной QBUS, 558РР3- МНОП микросхема 8К байт. Микросхемы технологии МНОП имели совершенно другую временную диаграмму и электрические потенциалы при программировании, а микросхемы совместимые с шиной QBUS имели отличную разводку выводов и особую временную диаграмму как при программировании, так и при считывании.

Однако, все разнообразные типы МОП РППЗУ имели одну общую особенность- за исключением вывода Vpp (напряжение программирования) на все остальные выводы микросхемы подавались потенциалы уровня ТТЛ. Это позволяло сделать достаточно простой программатор, единый для всех типов МОП РППЗУ. Такой программатор (Б0639) был разработан. Он основывается на микропроцессоре 580ВМ80, имеет на передней панели всего две панельки (24 и 28 выводов) и позволяет программировать любые МОП ППЗУ, а также МОП ПЗУ однократного программирования. Использование микропроцессора позволяет формировать любую временную диаграмму и использовать при работе различные алгоритмы программирования РППЗУ, а самое главное- допускает изменение встроенной программы. При появлении нового типа микросхем МОП РППЗУ, нужно будет дописать внутреннюю программу процессора и заменить на платах программную ПЗУ.

Программатор Б0639 построен по простой блок-схеме (рис.3).
Кроме стандартного набора, составляющего микроЭВМ, устройство включает в себя КАМАК-интерфейс, порты для обмена с КАМАК-интерфейсом, порты для выдачи адреса и данных для РППЗУ, порт, управляющий ЦАПом, для выдачи напряжения программирования и порт управляющих сигналов. Из аппаратных особенностей устройства следует упомянуть следующие решения:
- Прибор содержит компаратор токопотребления, и при превышении заданного порога (300 мА) сигнализирует об этом процессору.
- Микросхемы типов 573РФ3 и 1801РР1 обладают принципиально другой разводкой выводов, нежели байтовые ППЗУ. Возможны два варианта: использовать две панельки либо использовать дополнительный комплект портов адреса/данных с соответствующим включением, и в зависимости от типа РППЗУ использовать нужный набор портов.

Был выбран второй вариант.
- Процессор программатора содержит все элементы интерфейса Стык С2, которые нормально на плату не устанавливаются, но могут быть установлены для использования программатора в приборном варианте.

В первом варианте программы процессора, программатор может использоваться для программирования микросхем РППЗУ типов 573РФ2, 573РФ4, 573РФ5, 573РФ6, 88737S (аналог M2764A, производитель SGS, Италия), 1801РР1. Для микросхем 573РФ3, 573РФ7, 573РФ8, 558РР3 соответствующие алгоритмы были также написаны. В руководящих материалах отечественных РППЗУ как правило ре
комендуется программировать микросхемы одиночным программирующим импульсом различной, в зависимости от типа РППЗУ, длительности (как правило 50 мс). Большинство мировых производителей этих микросхем рекомендуют использовать адаптивный способ программирования, который заключается в следующем: программатор работает короткими импульсами (1-3 мс), считая их количество, и после каждого импульса производит считывание микросхемы. Если микросхема запрограммировалась, то производится "дожигание" двойным количеством импульсов. Программатор Б0639 реализует оба способа работы с РППЗУ.

Аппаратная часть программатора позволяет также производить тестирование байтовых ОЗУ (например, 573РУ8, 9, 10 и пр.), однако в программе процессора это не реализовано.

При работе с программатором используется следующие КАМАК-команды:
N.A0.F0- чтение слова данных, Q=L="ГОТОВ".
N.A0.F1- чтение статусного регистра, Q=1.
N.A0.F8- проверка запроса, Q=L="ГОТОВ".
N.A0.F16- запись в регистр данных, Q=L="ГОТОВ".
N.A1.F16- запись в регистр адреса, Q=L="ГОТОВ".
N.A2.F16- запись в регистр режима, Q=L="ГОТОВ".
N.A3.F16- запись в регистр команд, Q=L="ГОТОВ".
N.A4.F16- переписать слово в регистр данных вывода,
Q=L="ГОТОВ".
Для обмена с КАМАК-магистралью используется 3 регистра- два 16-разрядных регистра (регистр ввода и регистр вывода) для обмена данными между контроллером и процессором программатора, а также 8-разрядный регистр статуса, доступный КАМАК-магистрали только для чтения.
Регистр режима определяет операцию и тип микросхемы РППЗУ.

Распределение бит в слове следующее:
16- тип операции: 0- чтение, 1- запись в РППЗУ.
15- способ программирования: 0- адаптивное, 1- одноимпульсное.
14- =0- адрес инкрементировать, =1- адрес не инкрементировать.
Младший байт определяет тип микросхемы РППЗУ:
0- 573РФ2
1- 573РФ3
2- 573РФ4
3- 573РФ5
4- 573РФ6
5- 573РФ7
6- 573РФ8
7- M2764 фирмы SGS
8- 558РР3
9- 1801РР1
В регистре команд допускаются следующие комбинации:
0- пустая команда.
1- выдать в регистре данных тип программатора и номер версии программы в процессоре.
2- стирание микросхемы РППЗУ МНОП типа (для 1801РР1 в старшем байте указывается номер микросхемы).
3- запрограммировать номер микросхемы с QBUS (573РФ3, 1801РР1).
4- выдать ответ REPLY от микросхемы с QBUS (младший бит в регистре данных будет равен REPLY от последнего обращения к этой микросхеме).
5- уставить напряжение на ЦАПе, используя код из старшего байта.
16- имитировать бесконечный цикл прожигания микросхемы (используется при наладке устройства).
17- отладочный тест времени установления ЦАПа.
18- отладочный тест последовательного интерфейса.
Регистр статуса может принимать следующие значения:
0 или 255- не определено.
1- команда нормально исполнена.
2- неправильная или несуществующая команда.
3- ошибка при прожигании (запись в РППЗУ невозможна).
4- перегрузка по току при подаче напряжения на РППЗУ.
Наличие процессора в устройстве позволило увеличить количество защит от случайных ошибок. Например, если программатору указан тип РППЗУ не МНОП типа, и подать команду стирания, он откажется ее исполнять с ответом "неправильная команда". Работа с программатором очень проста:
1- указывается тип микросхемы и тип операции (чтение, запись и пр.).
2- проверяется что программатор принял команду (из регистра статуса).
2- загружается в программатор начальный адрес.
3- (при чтении) считывается регистр статуса, если ответ=1, то можно считать данные из регистра данных.
3- (при записи) записывается слово в регистр данных и считывается регистр статуса, чтобы убедиться что слово записалось.

При любом обращении к программатору необходимо контролировать ответ Q, если Q=0, то команду надлежит повторить.

ПРОГРАММЫ ДЛЯ ПРОГРАММАТОРОВ

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

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

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

После завершения программирования всей микросхемы, программа проверяет всю информацию на совпадение и, если не все ячейки оказались запрограммированы, повторяет процесс сначала.
Программирование микросхем ТТЛШ ППЗУ происходит следующим образом: программа запускает автомат программатора и считывает
выходы микросхемы ППЗУ, одновременно ведя отсчет времени. Когда на выходах микросхемы появилась правильная информация, производится процесс "дожигания" плавких перемычек примерно то же время, какое эти перемычки "прожигались". Такой алгоритм программирования оказался как сравнительно быстрым, так и достаточно надежным.

Программы написаны на языке TRAN для микроЭВМ Одренок. Они допускают работу с программаторами как в системном крейте микро ЭВМ, так и в периферийном. Программа #ROMV предназначена для программаторов Б0631 и Б0628, программа #ROMF работает с программатором Б0630. Для работы с программатором Б0639 написана программа #PROM, которая имеет ряд особенностей, изложенных отдельно. Ниже кратко описываются директивы, общие для всех программ, с краткими пояснениями.

PAR- ввод параметров: позиция программатора и тип микросхемы  ППЗУ, если позиция программатора указана нулевой- то программа работает без программатора.
L- распечатка содержимого таблицы в памяти программы на экране терминала.
P- распечатка содержимого микросхемы ППЗУ на экране терминала.
RDM- чтение содержимого микросхемы ППЗУ в память программы.
C- сравнение содержимого микросхемы ППЗУ и таблицы в памяти программы и вывод несовпадающих ячеек на терминал.
A- редактирование таблицы в памяти программы, начиная с любого кадра.
CMP- проверка на возможность запрограммировать микросхему.
S- старт процесса программирования микросхемы ППЗУ.
CL- чистка(обнуление) таблицы в памяти программы.
INV- инверсия содержимого таблицы в памяти программы.
INVA- инверсия адресов таблицы в памяти программы.
TRD- разворот битов данных (меняются местами старший и младший биты данных в слове и т.д.).
DZM- вывод таблицы в памяти программы на принтер DZM-180.
SV- запись таблицы из памяти программы в файл на диске.
RD- чтение таблицы из файла на диске в память программы.
RIN- чтение таблицы из файла на диске в формате фирмы INTEL в память программы.
Программа #PROM имеет несколько дополнительных директив, в соответствии с возможностями программатора Б0639.
ERASE- стирание РППЗУ МНОП типа.
NUMBER- программирование номера для РППЗУ совместимой с шиной QBUS.
REPLY- определение номера для РППЗУ совместимой с шиной QBUS, на который она дает ответ REPLY=1.

ЛИТЕРАТУРА

1. Memory design handbook. 1977. Intel Corporation, USA.

 

 

На главную страницу  На предыдущую страницу  На следующую страницу

Статьи

О компании О документах О рекламе Меню Карта