Описание
компьютера Радио-86РК
|
Журнал
РАДИО
|
ПРОГРАММАТОР РПЗУ ДЛЯ «РАДИО-86РК»
А ГОЛОВКИН, г. Москва
Предлагаемое несложное устройство предназначено для программирования постоянных запоминающих устройств со стиранием данных ультрафиолетовым излучением (УФ РПЗУ) и может работать с РПЗУ объемом до 256 Кбит (32 Кбайт). Его программное обеспечение ведет диалог с пользователем на русском языке с подсказками и позволяет задать все необходимые для программирования параметры, сделать паузу в процессе записи или прервать его в любой момент. Предусмотрена возможность программирования с контролем соответствия исходных и фактически записанных в РПЗУ данных.
В технических условиях на микросхемы УФ РПЗУ указывается, что для записи каждого байта данных необходим программирующий импульс длительностью 50мс. На первый взгляд немного, но нетрудно подсчитать, сколько времени займет, например, запись ПЗУ объемом 32 Кбайт. Для ускорения процесса в свое время был предложен "интеллектуальный" (smart) алгоритм записи, позволяющий значительно сократить её общую продолжительность и ставший промышленный стандартом. Он основан на том, что фактически указанная выше длительность программирующего импульса нужна только для записи в самую «плохую» ячейку микросхемы, уже почти выработавшей свой ресурс циклов программирования. Большинство остальных ячеек может быть запрограммировано намного быстрее.
Программирование начинается серией коротких импульсов, например, из пяти импульсов длительностью 1мс, после чего содержимое записываемой ячейки сравнивается с требуемым. Серии повторяют до получения правильного результата или превышения допустимого числа попыток, в последнем случае микросхему бракуют. Если запись выполнена правильно, данные закрепляют, обычно таким же числом импульсов, которое потребовалось для записи. Предлагаемый программатор использует этот алгоритм.
Его принципиальная схема приведена на рисунке. Источник напряжения программирования (Unpr) питается от цепи +5В компьютера. Он состоит из преобразователя, собранного по схеме блокинг-генератора на транзисторе VT1, и стабилизатора на микросхеме DA1. Транзистор VT2 управляет режимом работы бпокинг-генератора, что не только снижает ток, потребляемый преобразователем на холостом ходу, но и дополнительно стабилизирует и ограничивает его выходное напряжение. Это необходимо, потому что ток в цели Unpr имеет импульсный характер, изменяясь в процессе записи от нуля до десятков миллиампер, а микросхемы ПЗУ очень требовательны к постоянству напряжения в момент записи информации. Ограничение выходного напряжения преобразователя исключает его неконтролируемый рост в паузах между импульсами программирования и защищает микросхему DА1 от повреждений.
Импульсное выходное напряжение блокинг-генератора, снимаемое с коллектора транзистора VT1, через диод VD1 заряжает конденсатор С4 и фильтруется цепью L1C3. Конденсатор С3 служит также для накопления энергии, и отказываться от него, упрощая схему, нельзя. Не рекомендуется, и увеличивать его емкость свыше 100мкФ - это может привести к нестабильному запуску блокинг-генератора.
Переключателем SА1 устанавливают режим работы программатора. В положении "Чтение" напряжение +5В подается на микросхему ПЗУ, но преобразователь на транзисторе VT1 обесточен. В положении "Запись" включается преобразователь, а в цепи питания микросхемы ПЗУ напряжение повышается до 6,3В, как этого требуют технические условия. Дополнительные 1,3В получают от обмотки II трансформатора Т1 и выпрямителя на диоде VD4.
Переключателем SA3 напряжение программирования можно выбрать равным 12, 21 или 27В. Обычно у импортных микросхем серии 27ххх и многих отечественных РПЗУ нужное значение указано на корпусе и чаще всего равно 12В. Но, например, для К573РФ5 необходимо 27В.
Через 28-гнёздную панель XS1, ПЗУ, по цепям РA0-РА7, РB0-РВ7, PC0-РС6 соединяется с одноименными выводами установленной в "Радио-86РК" микросхемы KP580BB55 (D14 по схеме компьютера, опубликованной в "Радио", 1986, № 5). На них, а также на выводе PC7 программным способом формируются нужные для программирования сигналы. Такое решение не только упростило программатор, но и позволило считывать данные из ПЗУ по директиве R МОНИТОРа, без какого-либо дополнительного программного обеспечения. Необходимо только установить переключатель SA1 в положение "Чтение". ПЗУ в этом случае может быть любого типа, даже масочное или электрически стираемое, лишь бы назначение его выводов соответствовало принятому для УФ РПЗУ.
Микросхемы 2716, К573РФ2 и другие объемом 2 Кбайт в 24-выводном корпусе вставляют в эту же панель, но так, чтобы гнезда 1, 2, 27 и 28 остались свободными, а выводы 12 и 13 попали в гнезда 14 и 15. Необходимую для такого использования панели коммутацию осуществляет переключатель SA2. Он расположен под панелью, а его толкатель находится между гнездами 1 и 28. При установке в панель микросхемы с 28 выводами ее корпус нажимает на толкатель переключателя. При 24 выводах этого не происходит. Вполне возможно расположить переключатель и в любом другой месте, но управлять им придется вручную. Предложенная схема коммутации не позволяет программировать микросхемы 2732 объёмом 4 Кбайт, также имеющие 24-выводный корпус. Если это необходимо, для них можно установить отдельную панель. На вывод 20 этих микросхем нужно подать Unpr, а вывод 21 соединить с цепью РСЗ, остальные выводы подключают аналогично РПЗУ 2716.
У микросхем 2764 и 27128 вывод 27 предназначен для выборки кристалла, и при работе с ними контакты выключателя SA4 нужно замкнуть. У микросхем 27256 этот вывод адресный и контакты должны быть разомкнута. Резистор R7 защищает от замыкания на общий провод вывод PCG микросхемы КР580ВВ55, находящейся в компьютере. Так как в полное сопротивление микросхемы ПЗУ достаточно велико, при разомкнутом выключателе резистор R7 не мешает работе.
Если не стремиться к малым габаритам устройства, можно отказаться от переключателей SA2 и SA4 и установить несколько панелей для РПЗУ разных типов, соединив их контакты соответствующим образом.
Логические элементы микросхемы DD1 создают необходимую задержку между сигналами выборки кристалла, а также включают и выключают напряжение программирования.
Программатор некритичен к применяемым деталям. Исключение - транзистор VT1, замена КТ3117Д транзистором другого типа может уменьшить КПД преобразователя и увеличить потребляемый ток. Трансформатор Т1 намотан на четырех сложенных в столбик ферритовых кольцах типоразмера К10х6х2 с магнитной проницаемостью 10000. Обмотка I содержит 2, обмотка II - 1, a обмотка III - 8 витков провода ПЭВ-2 0,3. Вполне допустимо применять магнитопроводы других типоразмеров и с другими значениями магнитной проницаемости, но при этом может потребоваться изменить число витков в обмотках. Все оксидные конденсаторы - К50-40, остальные - керамические. Диоды - любые импульсные кремниевые.
Дроссели L1 и L2 - самодельные или промышленного изготовления индуктивностью не менее 300мкГн, Для уменьшений помех монитору компьютера желательно применять дроссели на тороидальных магнитопроводах. Если во время программирования ПЗУ на экране монитора появляются помехи в виде мелких точек или снега, необходимо увеличить индуктивность дросселя L2, включить параллельно оксидному конденсатору С7 керамический, емкостью 0,001- 0,1мкФ.
Налаживают программатор, не подключая его к компьютеру, а лишь подав через миллиамперметр с током полного отклонения на менее 200мА напряжение питания 5в от какого-либо источника. Микросхему ПЗУ в панель XS1 не устанавливает. Параллельно резистору R2 (его движок должен находиться в среднем положении) временно подключают нагрузочный резистор сопротивлением 2кОм. Затем включают преобразователь переключателем SA1 и подборкой резистора R1 и конденсатора С1 добиваются минимальных показаний миллиамперметра. Ток, потребляемый правильно настроенным преобразователем, не должен превышать 50-100мА. Точное значение указать трудно, так как оно зависит от характеристик трансформатора и использованного экземпляра транзистора VT1.
Вращая движок резистора R2, устанавливают напряжение на нагрузочном резисторе равным 32В. Затем переключатель SA3 устанавливают в положение 21В и, вращая движок резистора R4, добиваются этой величины напряжения на контакте 1 панели XS1. Переводя переключатель последовательно в положения 27,8 и 12В, подборкой резисторов соответственно R6 и R5 устанавливают и эти значения. Закончив регулировку, нагрузочный резистор нужно удалить. В дальнейшей при необходимости можно регулировать напряжение программирования с помощью резистора R2 непосредственно в процессе записи, контролируя осциллографом амплитуду программирующий импульсов.
Вставив какую-либо микросхему РПЗУ в панель XS1, необходимо убедиться, что напряжение питания на ней не превышает 6,5В. Это напряжение зависит от отношения чисел витков обмоток I и II трансформатора Т1. В программаторе, изготовленной автором, обмоткой и служит отрезок провода, проходящий через центральное отверстие магнитопровода и крепящий трансформатор к плате, и для получения нужного напряжения пришлось подбирать число витков обмотки I, пропорционально изменяя, и число витков обмотки III.
Обслуживающая устройство программа для "Радио-86РК" с объемом ОЗУ 16 Кбайт приведена в табл. 1. Чтобы применить ее на аналогичном компьютере с ОЗУ 32 Кбайт, необходимо изменить коды в ячейках, перечисленные в табл. 2. Все эти коды начинаются с цифры 3, которую заменяют на 7. Например, по адресу 2002H вместо 35 нужно записать 75. Контрольные суммы двух вариантов программы - в табл. 3.
Принцип работы программы заключается в копировании данным из указанной пользователем области ОЗУ в заданную им же область ПЗУ. Скопировать можно только непрерывный блок данных, целиком, помещающийся в ОЗУ. Так как область 2000H-26C7H занята программой, наиболее подходящее место для данных - 8 Кбайт с 0000Н по 1FFFH. В компьютере с ОЗУ 32 Кбайт данные объемом до 12 Кбайт можно разместить и в этой области 2800H-6FFFH. Записать в ПЗУ блок большего размера за один раз не представляется возможным, поэтому придется разбивать его на части и записывать их поочередно.
Занести исходные данные в ОЗУ необходимо до запуска программатора. Сделать это можно любым способом, ввести их с клавиатуры, магнитной ленты или дискеты (если компьютер оснащен контроллером дисковода). Можно прочитать данные директивой R из ранее запрограммированного ПЗУ. Адреса ПЗУ для программирования можно указывать любой в пределах от 0000H до FFFFH, нужно только следить за тем, чтобы они не вышли за пределы объема программируемой микросхемы.
Сразу после запуска программы на экране появляется вопрос “РАБОТА С РПЗУ?”, Если на него ответить отрицательно, нажав клавишу <N>, программа перейдет в режим программирования ППЗУ с плавкими перемычками, который в этой статье не рассматривается. Для программирования УФ РПЗУ необходимо дать положительный ответ (<У>).
На экране появится заставка с названием программы, таблица параметров программирования (в ней приведены установленные по умолчанию значения числа программирующих и закрепляющих импульсов и их длительности в миллисекундах), и вопрос – "ХОТИТЕ ИЗМЕНИТЬ ПАРАМЕТРЫ? <Y/N>". При положительном ответе на месте числа импульсов программирования появятся вопросительные знаки. Необходимо ввести с клавиатуры желаемое двузначное число в пределах от 01 до 99. Как только будет введена вторая цифра, значение зафиксируется, а вопросительные знаки переместятся в графу числа закрепляющий импульсов. После ввода и этого значения, аналогично задается длительность импульсов в миллисекундах. Она относится и к программирующей, и к закрепляющим импульсам.
После изменения параметров (или отказа от него) и нижней строке экрана появляется вопрос: “НУЖЕН ЛИ КОНТРОЛЬ ЗАПИСИ?<У/N". При отрицательном ответе контроль идентичности исходных и записанных в ПЗУ данных производиться не будет, что отмечается буквой N, появляющейся в конце строки с числом закрепляющих импульсов.
Затем на экран выводятся еще три строки: "НАЧАЛЬНЫЙ АДРЕС ИСТОЧНИКА;”, “КОНЕЧНЫЙ АДРЕС ИСТОЧНИКА:” и "НАЧАЛЬНЫЙ АДРЕС ПРИЕМНИКА”. В каждой из них имеется поле адреса. В первую из этих строк нужно ввести с клавиатуры адрес первой, а во вторую - последней ячейки копируемой области ОЗУ. В третью строку вводят адрес ячейки ПЗУ, с которой начнется копирование.
Каждое из этих значений задают четырьмя шестнадцатиричными цифрами, причем до ввода последней цифры каждого адреса можно исправлять ошибки клавишей <3абой>.
После установки адресов на экране появляется подсказка <С> - СТАРТ, <П> - ПОВТОРИТЬ, <Д> - ДИАЛОГ. Нажав, клавишу <П>, можно повторить ввод адресов (например, если была допущена ошибка). В случае нажатия клавиши <Д> произойдет перезапуск программы, и она вновь выведет на экран вопрос "РАБОТА С РПЗУ?".
Клавишей <С> запускают процесс программирования. Появившаяся на экране после ее нажатия подсказка "ВКЛЮЧИТЕ U-ПРГ И НАЖМИТЕ «ПРОБЕЛ»", означает, что необходимо перевести переключатель SA1 в положение "Запись", а затем нажать клавишу <Пробел>, с этого момента начнется программирование, т. е. копирование информации из ОЗУ в ПЗУ. Подсказка сменится предупреждением "ИДЕТ ЗАПИСЬ!”. Строки "НАЧАЛЬНЫЙ АДРЕС ИСТОЧНИКА;" и “НАЧАЛЬНЫЙ АДРЕС ПРИЕМНИКА:" будут заменены соответственно на “ТЕКУЩИЙ АДРЕС ИСТОЧНИКА:” и “ТЕКУЩИЙ АДРЕС ПРИЕМНИКА:", а числа в них качнут изменяться, отображая ход процесса.
При необходимости можно в любой момент прервать запись, нажав клавишу <Пробел>. На экране появится подсказка "ПАУЗА; <ПРОБЕЛ> - ПРОДОЛЖИТЬ. ИНАЧЕ – ВЫЙТИ”. После повторного нажатия на <Пробел> запись продолжится с того адреса, на котором она была остановлена. Нажатием любой другой клавиши можно выйти из режима программирования. После выполнения рекомендации "ОТКЛЮЧИТЕ U-ПРГ И НАЖМИТЕ <ПРОБЕЛ>” на экране появится подсказка “<К> - ВЫЙТИ, <П> - ПОВТОРИТЬ, <Д> - ДИАЛОГ”. Нажатие клавиши <К>, приведет к выходу в МОНИТОР. Действие клавиш <П> и <Д> было описано выше.
Когда задана запись с контролем, после программирования каждой ячейки ПЗУ, находящиеся в ней данные сравниваются с соответствующей ячейкой ОЗУ компьютера и только при их совпадении программа продолжает работу. В случае несовпадения, процесс программирования прекращается и на экране появляется сообщение "ОШИБКА! ВМЕСТО <ХХ> ЗАПИСАНО <YY> ОТКЛЮЧИТЕ U-ПРГ И НАЖМИТЕ <ПРОБЕЛ>”. На месте YY будут две шестнадцатиричных цифры, соответствующие коду в ячейке ПЗУ, адрес которой указан в строке “ТЕКУЩИЙ АДРЕС ПРИЕМНИКА.", а на месте XX - тому коду, который должен был быть переписан сюда из ОЗУ.
В случае появления такого сообщения, можно попробовать повторить программирование заново, для чего нажать клавишу <Пробел>, выйти в начало диалога и задать новые, увеличенные значения числа и длительности программирующих импульсов. Если это не поможет, ячейка ПЗУ неисправна и придется либо забраковать микросхему, либо выбрать для записи другую область ее адресов.
Когда текущий и конечный адреса источника совпадут, и на экране появится подсказка “ОТКЛЮЧИТЕ U-ПРГ И НАЖМИТЕ <ПРОБЕЛ>” - программирование успешно завершено. Дальнейшие действия пользователя должны быть такими же, нам и после приостановки записи.
Отсканировано с журнала Радио №11 1997 год.
Описание
компьютера Радио-86РК
|
Журнал
РАДИО
|