Радио-86РК/Радио 02-88/Программирование однократно программируемых ПЗУ

Материал из Emuverse
Версия от 12:12, 14 июля 2008; Panther (обсуждение | вклад) (http://retro.h1.ru/RK86/PrgOZU/BurnPPZU.php)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Автор: Д. ЛУКЬЯНОВ, А. БОГДАН

Источник: http://retro.h1.ru/RK86/PrgOZU/BurnPPZU.php

Прежде всего авторы приносят свои извинения за ошибки, допущенные в предыдущей статье «Радио-86РК» — программатор ПЗУ"*. В интерфейсе программатора были применены следующие микросхемы: К555ЛЕ1 (DD1), К155АГ1 (DD2), К589АП16 (DD3, DD4). К561ПУ4 (DD5, DD6). Кроме того, не все читатели смогли по мнемоническим адресам определить точки подключения программатора к процессорной плате. Сигнал READY следует снимать с вывода 3 микросхемы D1 STSTB — вывод 7 D1, ROMSEL — вывод 10 D11, RD — вывод 3 D5.1.

Репрограммируемые ПЗУ (РП3У) с возможностью стирания информации, наряду с упомянутыми выше достоинствами, имеют и ряд — существенных недостатков. Главный из них — значительное (250…500нс.) время доступа к информации, препятствующее их применению а комбинационных логических устройствах, в качестве «заказных» шифраторов и дешифраторов, а также для хранения программ и данных в микропрограммных процессорах повышенного быстродействия, например, на базе микропроцессорных комплектов К1802 и К1804.

Для этих целей [11] больше подходят однократно программируемые БИС ПЗУ (ППЗУ), выполненные по ТТЛ или ТТЛШ технологиям. Наиболее распространенные типы ППЗУ приведены в табл.1. Запоминающие элементы этих микросхем представляют собой плавкие перемычки, расположенные на кристалле в виде матрицы, аналогичной матрице запоминающих элементов РПЗУ.

Таблица 1.

Основные характеристики отечественных микросхем ППЗУ

ТИП ППЗУ Организация Выход ta нс Icc мА Upr В CS рг H.C. БИС
KP155PE3 32х8 O.K. 80 110 12 15 0
КР556РТ4 256х4 O.K. 70 130 12 14 0
КР556РТ5 512х8 O.K. 70 190 12 21 1
KP556PT11 256х4 Т. С. 45 130 12 14 0
КР556РТ12 1Кх4 O.K. 60 140 12 10 0
KP5S6PT13 1Кх4 Т. С. 60 140 12 10 0
КР556РТ14 2Кх4 O.K. 60 140 12 10 0
KP556РT15 2Кх4 Т. С. 60 140 12 10 0
KP556PT16 8Кх8 Т. С. 85 190 12 20 0
КР556РТ17 512х8 Т. С. 50 175 12 21 1
KP556PТ18 2Кх8 Т. С. 60 180 12 20 0
КР541РТ1 256х4 O.K. 70   9 14 0
К500РЕ149 256х4 ЭСЛ 30 150   14 0

Примечания:

  • Т. С. — Выход с тремя состояниями (0, 1, Z)
  • O.K. — Выход с «открытым коллектором»
  • Н. С. — Состояние микросхемы до программирования

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

В процессе программирования специальный узел, расположенный на кристалле БИС, прикладывает к отдельным перемычкам напряжение, достаточное для их разрушения (пережигания). Импульс тока, разрушающий перемычку, обычно имеет длительность порядка десятков микросекунд, поэтому быстрое испарение материала перемычки скорее напоминает взрыв. Для разрушения перемычки необходима целая пачка импульсов, в которой первые ее только разогревают и, лишь последний — пережигает. Материал разрушенной перемычки оседает рядом на кристалле, а так как все ее размеры измеряются долями микрона, то видимых снаружи изменений в микросхеме не происходит. Чем за более короткие промежутки времени будет «взорвана» перемычка, тем менее вероятен процесс самопроизвольного ее восстановления, поэтому во многих алгоритмах программирования время приложения к перемычкам импульсов тока колеблется от 1 до 100мкс. Самовосстановление происходит быстрее при повышенной температуре, поэтому для большинства ППЗУ рекомендуют произвести электротермотренировку, включив микросхемы в режим чтения информации при температуре корпуса 120…160° С на несколько суток, а затем проверив правильность записанных данных. Эта операция необходима, если к аппаратуре, в которой будет работать ППЗУ, предъявляются повышенные требования по надежности. В радиолюбительских условиях от этой трудоемкой операции можно отказаться.

Процедура записи информации состоит из циклов, в каждом из которых можно пережечь только одну перемычку, то есть в отличие от РПЗУ, в одном цикле нельзя программировать целое информационное слово (4 или 8 бит в зависимости от типа ППЗУ). Для пережигания перемычки на адресных входах микросхемы устанавливают код адреса, напряжение питания Upr повышают до 12…18В, а на один из входов выборки кристалла CS микросхемы, управляющий в режиме программирования работой узла записи, подают напряжение на 2В выше напряжения питания Upr (для К155РЕЗ, К556РТ4) или высокий ТТЛ уровень (для остальных типов ППЗУ).

Одновременно на один из выходов микросхемы, соответствующий программируемому разряду, подают импульс тока амплитудой 100…200мА. После окончания импульса переходят в режим чтения информации из ППЗУ и проверяют, запрограммирован ли соответствующий бит. Если перемычка не разрушилась, цикл программирования повторяют еще разумное число раз (обычно 100—1000). При удачном программировании переходят к пережиганию перемычек, соответствующих остальным битам информационного слова, а затем — к программированию слов по следующим адресам.

Практическая схема модуля, предназначенного для записи информации в ППЗУ, перечисленные в табл. 1, приведена на рисунке. Он содержит транзисторные ключи, через которые напряжения программирования поступают на выводы БИС. Все ключи идентичны и имеют ограничение выходного тока на уровне 150…200мА. Модуль подключают к интерфейсу программатора [22].

В режиме чтения информации и в паузах выходы передатчиков шинных формирователей DD3, DD4 (см.[2] находятся в высокоимпедансном состоянии, поэтому транзисторы VT1, VT2 закрыты. При выполнении цикла WR микропроцессор переводит формирователи в активное состояние, поэтому открываются транзисторы, подключенные к тем разрядам формирователей, по которым передается «низкий» логический уровень, то есть 0 в соответствующих битах записываемого байта.

Длительность цикла WR задается так, как уже описано в [2], причем в модуле для ППЗУ нет дополнительного времязадающего конденсатора, поэтому длительность перевода МП в состояние ожидания готовности (то есть длительность импульса WR) составляет около 50 мкс. Выбор такого значения оптимален для надежной записи информации, а также позволяет не отключать регенерацию изображения на экране телевизора в процессе программирования.

На плате модуля расположены элементы, показанные на рис.1, а также панели для установки программируемых микросхем, на которые разведены сигналы разрядов адреса, данных и программирующих импульсов в соответствии с табл.2.

Таблица 2.

ВЫВОД КР155РЕ3 КР556РТ4,РТ11 К541РТ1 К500РЕ149 КР556РТ12,РТ13 КР556РТ14,РТ15 КР556РТ5,РТ17 КР556РТ16 КР556РТ18
1 DO0 А6 A6 Upr A6 A6 A7 A7 A7
2 DO1 A5 A5 A0 A5 A5 A6 A6 A6
3 DO2 A4 A4 A1 A4 A4 A5 A5 A5
4 DO3 A3 A3 A2 A3 A3 A4 A4 A4
5 DO4 A0 A0 A3 A0 A0 A3 A3 A3
6 DO5 A1 A1 A4 A1 A1 A2 A2 A2
7 DO6 A2 A2 A5 A2 A2 A1 A1 A1
8 0B 0B 0B −5B CS1 A10 A0 A0 A0
9 DO7 DO3 DO3 A6 0B 0B DO0 DO0 DO0
10 A0 DO2 DO2 A7 CS2 CS DO1 DO1 DO1
11 A1 DO1 DO1 DO0 DO3 DO3 DO2 DO2 DO2
12 A2 DO0 DO0 DO1 DO2 DO2 0B 0B 0B
13 A3 CS1 A7 CS DO1 DO1 DO3 DO3 DO3
14 A4 CS2 CS1 DO2 DO0 DO0 DO4 DO4 DO4
15 CS A7 CS2 DO3 A9 A9 DO5 DO5 DO5
16 +5B +5B +5B 0B A8 A8 DO6 DO6 DO6
17         A7 A7 DO7 DO7 DO7
18         +5B +5B CS1 A12 CS3
19             CS2 A11 CS2
20             CS3 CS CS1
21             CS4 A10 A10
22             Upr A9 A9
23             A8 A8 A8
24             +5B +5B +5B

Выпускаемые микросхемы ППЗУ с плавкими перемычками имеют нормируемый коэффициент программируемости. Это означает, что в произвольно взятой микросхеме некоторые перемычки «взорвать» не удастся. Если микросхему невозможно запрограммировать при номинальном напряжении программирующих импульсов (Upr=12,5В) в качестве крайней меры можно попытаться повысить напряжение Uпит до 15-20В и повторить процесс программирования. В некоторых случаях такой прием позволяет запрограммировать дефектную микросхему, однако, к сожалению, в других ячейках ППЗУ при этом информация может исказиться.

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ ППЗУ

Поскольку ППЗУ с пережигаемыми перемычками находят более разнообразное применение в радиотехнической аппаратуре, а ошибки при их программировании обходятся дороже, для подготовки и записи информации в них необходимы более совершенные технологические программы. Одним из таких пакетов программ являются ЭКРАННЫЙ РЕДАКТОР ПАМЯТИ и блок программ управления программатором, коды которого приведены в табл.3. Программа написана специально для «Радио-86РК» и позволяет просматривать, редактировать, копировать и заносить информацию в программируемые ПЗУ, проводить поиск слов и байтов, переставлять нибблы в байтах данных (ниббл-4 бита), а также осуществлять целый ряд вспомогательных операций.

После ввода и пуска с адреса 0000Н программа запрашивает у МОНИТОРА верхнюю границу области ОЗУ и перегружается туда перемещающим загрузчиком. В этой области она «захлопывается» и выводит на экран адрес SSSS, по которому можно запустить перегруженную копию программы. Если в ОЗУ не загружать других программ, запуск пакета можно произвести и с адреса 0000Н. Одновременно загрузчик резервирует для буфера, программатора область ОЗУ объемом 2 Кбайт (табл. 4). Размер области (Кбайт), резервируемой для буфера, хранится в ячейке 12Н загрузчика. После перемещения пакета в компьютер можно загружать любые программы, обладающие свойством самонастройки на память — они не будут портить друг друга в процессе работы.

Запустив программу с указанного адреса, с помощью «Меню» выбирают режим работы, нажимая соответствующие алфавитные клавиши.

Если выбран режим программирования РПЗУ или ППЗУ, программа запрашивает тип программируемой микросхемы. Для микросхем серии К573РФ возможны следующие типы: РФ1, РФ2, РФ21, РФ22, РФ4, РФ41, РФ42, РФ5, РФ6.

Для ППЗУ К556РТ соответственно: РТ3 (К155РЕ3), РТ4(К500РЕ149, К541РТ1), РТ5, РТ6, РТ7, РТ11, РТ12, РТ13, РТ14, РТ15, РТ16, РТ17, РТ18.

По окончании программирования программа выдает сообщение либо о правильности записи, либо об ошибке и распечатывает адрес первой ячейки, содержимое которой не совпадает с содержимым исходного буфера данных. Для перехода в режим «Меню» после любого из сообщений достаточно нажать любую клавишу.

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

В режиме редактирования в виде НЕХ-чисел возможен ряд групповых операций. Для их выполнения необходимо задать начальный и конечный адреса области, с которой будет производится операция. Это можно сделать двумя способами: подводом курсора к байту, расположенному по необходимому адресу с нажатием клавиш F2 — начальный адрес и F3 — конечный адрес или нажатием клавиш R, после которого программа запрашивает адреса границ зоны.

Таблица 5

РАСПРЕДЕЛЕНИЕ ПАМЯТИ РК ПРИ РАБОТЕ РЕДАКТОРА/ ПРОГРАММАТОРА

Bpеменные переменные пакета MEMTOP1 SSSS+0C85H
СТЕК SSSS+0C49H
Чистый код программы SSSS
Буфер данных для ПЗУ (2К) SSSS-800H
Расширение буфера для РФ41* МЕМТОР2
Расширение буфера (РФ4,РТ16)* SSSS-1000H

SSSS-2000H

СВОБОДНАЯ ОБЛАСТЬ ОЗУ 0000H
  • He защищено Монитором
  • MEMTOP1 Граница ОЗУ до загрузки пакета
  • MEMTDP2 Граница ОЗУ после загрузки пакета.

Задав область памяти, можно производить с ней следующие операции:

  • R — заполнение выбранной области необходимым кодом;
  • I — инвертирование содержимого заданной области,
  • N — обмен нибблов в байтах, находящихся в заданной области;
  • М — маскирование содержимого области образцом. При маскировании производится операция логического сложения содержимого области памяти и байта-маски.

Операции М и N необходимы при программировании микросхем ППЗУ с разрядностью информационного слова, равной четырем, для разбиения байта данных на два ниббла.

  • T — пересылка выделенной области памяти по требуемому адресу. В отличие от директивы Т МОНИТОРА, программа выполняет корректные пересылки данных даже между перекрывающимися областями памяти.
  • S — поиск в выделенной области памяти байта, совпадающего с образцом. По окончании поиска курсор устанавливается на первом байте, совпадающим с образцом. Для поиска следующего совпадения нажимают клавишу Х
  • W — поиск 16-разрядного слова по образцу. Для продолжения поиска нажимают клавишу X.

В процессе разработки программного обеспечения для МП KP580BM80A иногда возникает необходимость внести изменения в уже оттранслированную программу, например, вставить в нее одну-две команды или убрать лишние. Для этих операций в РЕДАКТОРЕ предусмотрена директива U, позволяющая пересылать содержимое выбранной области ОЗУ в другую. «раздвигать» или «сдвигать» части программы в машинных кодах. Так как в программе, часть которой пересылается, необходимо соответствующим образом скорректировать содержимое адресных полей команд CALL и JUMP, то РЕДАКТОР дополнительно запрашивает границы всей программы. После этого происходит коррекция соответствующих команд, и выбранная область пересылается в новую, задаваемую смещением, которое на запрос РЕДАКТОРА вводят в дополнительном коде. Если выбранная область целиком совпадает с областью оттранслированной программы, возможна ее автоматическая настройка на работу из другой области ОЗУ. Более подробно о работе директивы и ограничениях на ее использование можно прочитать в [33].

Таблица 6.

; Описание ДЕШИФРАТОРА
; Из соображений удобства 
; трассировки печатной платы 
; разряды данных переставляют!*
; Разряды выходов ППЗУ0001 
Q0 EQU 1 0002 
Q1 EQU 2 0080 
Q2 EQU 128 0020 
Q3 EQU 32 0010 
Q4 EQU 16 0006 
Q5 EQU 8 0004 
Q6 EQU 4 0040 
Q7 EQU 640000 
ORG 0 ; Прямой код НА выходе
0000 010280 DB Q0,Q1,Q2,Q3 
0003 200004 100804 DB Q4,Q5,Q6,Q7 
0007 40 ; Инверсный код на выходе
0008 FEFD DB NOT Q0, NОТ Q1 
000А 7FDF DB NOT Q2, NOT Q3 
000C EFF7 DB NOT Q4, NOT Q5 
000E FBBF DB NOT Q6,NOT Q7 
END 

Выполнение групповых операций, которые могут существенно изменить содержимое памяти, предваряется вопросом «ОПЕРАЦИЯ — УВЕРЕН?», в ответ на который нажимают клавишу Y — если уверен или ВК — если операцию необходимо отменить.

При нажатии клавиши L РЕДАКТОР переходит в режим представления байтов в виде ASCII — символов, позволяющий вносить исправления в алфавитно-цифровом виде. Для выхода из ASCII — режима служит клавиша ESC (АР2). Если, кроме описываемого пакета, в компьютер загружен соответствующий транслятор, то источником данных для занесения в ПЗУ может служить программа на Бейсике или Ассемблере. Для перегрузки информации из области оттранслированных программ Ассемблера в буфер программатора можно воспользоваться директивами Т МОНИТОРА или РЕДАКТОРА ПАМЯТИ. Кроме того, если воспользоваться директивой I МОНИТОРА, данные могут быть загружены с магнитной ленты.

Список директив пакета приведен в табл.5.

Таблица 5.

ДИРЕКТИВЫ УПРАВЛЕНИЯ ЭКРАННЫМ РЕДАКТОРОМ СОДЕРЖИМОГО ПАМЯТИ

Клавиша и ключевое слово Назначение директивы
@ Непосредственное задание адреса, где необходимо продолжить редактирование
Region Непосредственное задание границ области, в которой необходимо произвести

групповые операции

F2 Установка маркера начала области в экранном режиме
F3 Установка конца области в экранном режиме
Переход к предыдущей строке дампа на экране
Переход к следующей странице дампа на экране
Переход к предыдущему байту дампа
Переход к следующей НЕХ-цифре дампа
+ Переход к следующей странице (256 байт) дампа
- Переход к предыдущей странице дампа
Letter Переключение программы в символьный режим
<ESC> Выход из символьного режима редактирования
! Выход из редактора в основное меню
Go Запуск программы с заданного адреса. Для возврата обратно в редактор

программа должна сохранять стек и завершаться исполнением команды RET

Inversion Инвертирование содержимого выбранной области
Mask Логическое И содержимого области ОЗУ и ОБРАЗЦА !
Nibbleswap Пepеcтанoвка нибблов в выбранной области ОЗУ
Transfer area Пересылка содержимого выбранной области ОЗУ в другую, начало которой

запросит программа

Update Пересылка (или раздвижка) программ для МП КР580 с коррекцией адресов

перехода, см. [ ]

Verify Сравнение двух областей ОЗУ, При несовпадении на экране распечатывается

несоответствующие байты и результат операции ХОР над ними

? Вычисление контрольной суммы заданной области
Search Поиск байта-образца в заданной области ОЗУ
Word Поиск 16-разрядного слова в выбранной области
eXecute Продолжение поиска с ранее установленным образцом
Pattern Заполнение области байтом-образцом
Zero Заполнение области нулевыми байтами

Подготовка данных в ASCII и НЕХ — виде не дает возможности комментирования информации, а также недостаточно наглядна. Более наглядный способ представления информации, заносимой в ПЗУ, обеспечивает транслятор с языка АССЕМБЛЕР. Его применение для трансляции программ собственно МП очевидно. Однако с помощью АССЕМБЛЕРА можно программировать не только программы. Продемонстрируем описание дешифратора двоичного кода в позиционный для прямого и инверсного представления информации на выходе и входе, написанное на АССЕМБЛЕРЕ (табл.6). Более подробно познакомиться с этими применениями трансляторов АССЕМБЛЕРА можно в [4, 5].

Видно, что применение АССЕМБЛЕРА позволило ввести в текст комментарии и мнемонические обозначения выходов и выходных кодов ППЗУ, что особенно удобно при создании сложных комбинационных устройств. Приведенная программа может быть оттранслирована, а затем перемещена в область буфера данных для программирования в ППЗУ.

Д. ЛУКЬЯНОВ, А. БОГДАН

г. Москва

  1. («Радио», 1987, № 9, с. 24-26. 56, 571 Учись работать с ПЗУ."- Микропроцессорные средство и системы. 1985, № 3, с. 71-88.
  2. Лукьянов Д., Богдан А. «Радио-86РК» — программатор ПЗУ".- Радио, 1987. № 9, с. 24-26. 56, 57.
  3. Селицкий С., Сыркин М. Процедура перемещения частей загрузочного модуля для микропроцессора КР580ПК80.- Микропроцессорные средства и системы, 1987, № 4. с. 28-30.
  4. Лукьянов Д. Как написать кросс-транслятор с языка Ассемблер.- Микропроцессорные средства и системы. 1985, № 4, с. 35-41.
  5. Лукьянов Д. ПЗУ — универсальный элемент цифровой техники.- Микропроцессорные средства и системы, 1986, № 1. с. 75-82