Программатор для пзу своими руками

Программатор для пзу своими руками

Постоянные запоминающие устройства (ПЗУ) широко приме-
няются во всех областях электронной техники для хранения
программ, дешифрации м кодирования мнформацмм и т.п. Большой
интерес вызывает мспользованме перепрограмммруемых ПЗУ —
РПЗУ с УФ-стиранием, так как Вы можете многократно перезапи-
сывать содержащуюся в нмх информацию даже в домашних услови-
ях. Для стмранмя мнформацим в такмх РПЗУ вам понадобится ис-
точник ультрафиолетового мэлученмя. Хорошие результаты можно
получмть, мспольэуя, например, бытовой косметический прмбор
«ФОТОН» млм кварцевую лампу для загара. «ФОТОН» стирает ин-
формацию в ПЗУ за 15 — 20 ммнут прм расстоянмм до микросхемы
1 — 2 см.

Для программирования РПЗУ необходим программатор — спе-
циальное устройство, которое может быть выполнено в вмде са-
мостоятельного прибора млм в вмде приставки к компьютеру.
Предлагаемая Вашему вмиманмю схема программатора — это при-
ставка к компьютеру СПЕКТРУМ, которая предназначена для
программирования наиболее широко прмиемяемых РПЗУ емкостью
от 2-х до 32-х килобайт, как отечественного, так и зарубеж-
ного производства. Это нмкросхемы — К573РФ2, К573РФ5,
К573РФ4, К573РФ6, К573РФ8, 2716, 2764, 27128, 27256.

Цоколевка микросхем РПЗУ приведена на рис. 44, а в
таблице 4 указаны сигмалы на выводах иикросхеи в различных
режииах работы.

Схема программатора (рмс. 45) выполнена на програмни-
руемом интерфейсном адаптере (ПИА) КР580ВВ55А. Три 8-мм раз-
рядных порта ПИА с адресами IF, 3F, 5F (HEX) используются
для ввода/вь(вода данных и фориирования адреса ПЗУ. Сигналы
управления ПЗУ — CS, ОЕ, PGM — формируются с помощью допол-
нительного регистра К155ИР1 с адресон EF (HEX). Адрес ре-
гистра управления ПИА — 7Т(НЕХ). Разряды шмн адреса, данных
м сигналы управления ПЗУ подключены к 28-мм полюсному разъе-
му (панелм, сокету), обеспечивающему надежный контакт с вы-

Читайте также:  Травник своими руками оформление

водами вставляемой в него микросхемы, коммутация адресов и
сигналов управления для различных типов ПЗУ осуществляется с
помощью переключателя П2. Микросхемы К573РФ2,РФ5 и 2716 име-
ют 24 вывода и вставляются в разъем со смещением (смотри
таблицу 4). Эту же задачу можно решить другим образом — ус-
тановить на плате программатора три типа разъемов под микро-
схемы и соответственно скоммутировать их. В этом случае пе-
реключатель П2 не нужен. В качестве разъемов под ПЗУ можно
использовать самодельные, изготовленные из разъемов типа СНП.
Микросхему ПЗУ можно вставлять в разъем и вынимать из него

Vpp — мапряжение программирования. Определяется фирмой-
нэготовителеи микросхены. Имогда Vpp указывается на корпусе
микросхены, наприиер, PGM 12,5V.

только при средней положении переключателя П1. В этом поло-
жении на разъем ме подаются питающие напряжения. Два других
положения переключателя.П1 служат для выбора режина — ЧТЕНИЕ
или ЗАПИСЬ (ПРОГРАММИРОВАНИЕ).

Програииа обслуживания програииатора состоит из частм,
напмсаимой на языке Бейсик и иэ 463 байтов машинных кодов.
Программа ма Бейсике поддерживает интерактивный режим обмема
с помощью мескольких иеню. В блоке иашииных кодов содержатся
подпрограмиы: чтение, запись м тестирование. Эти програииы
необходимо замести в память компьютера м сохранить на маг-
нитной лемте. После загрузки программы на экране появляется
надпмсь — «Load MONITOR (Y/N)?». Нужно ответить Y, если Вы
используете программу МОНИТОР (приведена в Приложении 1,
стр. 164). После ввода Y и Enter компьютер будет готов к за-
грузке МОНИТОРа. Если Вы введете N м Enter, то сразу перей-

дете к началу работы программы. На экране появится — «Pro-
gramming 2716, 2764, 27128, 27256″ и меню — «Read or Write
or Test or Verify» — включите режим CAPS LOCK и введите сим-
вол выбранного Ваии режима:

— R — режим чтения из ПЗУ в память компьютера;

— W — режим программирования ПЗУ данными из паняти кон-
пьютера;

— Т — режим проверки «чмстоты» ПЗУ. «Чмстое» ПЗУ содер-
жит по всем адресам байт FF (HEX);

— V — режим сравнения содержииого ПЗУ с содержимым па-
мяти компьютера.

Область паияти компьютера, отведенная для всех режимов
работы программатора, занииает 32К, с адреса 8000 (HEX) по
FFFF (HEX). Если Вы используете при работе с программатором
МОНИТОР, то рабочая область памяти сокращается на «верхних»
4,5 Кб, то есть 8000 — ЕЕ6А.

После выбора режина, например, W и Enter Ваи необходимо
выбрать тмп микросхемы. Вводите:

— 1 — для работы с микросхемами 2716 и К573РФ2, РФ5;

— 2 — для работы с микросхемами 2764 и К573РФ4;

— 3 — для работы с микросхемами 27128 и К573РФ6;

— 4 — для работы с микросхемани 27256 и К573РФ8.

Положение переключателя П2 должно соответствовать выб-
ранному типу микросхены.. Затеи Ваи необходимо выбрать на-
чальный и конечный адреса програииируеиой иикросхеиы. Адрес
вводится в шестнадцатиричном (HEX)’вмде 4-ия символами, то

есть два байта,например, 01FF. Аналогично вводится начальный
адрес рабочей области компьютера (RAM address . ), в кото-
рой расположена информация для программирования. На вопрос
«Correct (Y/N)?» Вы отвечаете Y, Enter, если набранная Вами
информация не требует корректировки, в противном случае — N.
Затем на экране появляется надпись «Insert chip — Ready? —
Press any key». Теперь Вам необходимо вставить в разъем мик-
росхему ПЗУ, переключатель П1 установить в позицию ЗАПИСЬ н
нажать любую клавишу для начала процесса программирования.

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

Если Вы используете программатор для записи в ПЗУ са-
мостоятельно составленных программ в машинных кодах, то
большую помощь в этом Вам окажет МОНИТОР — прикладная про-
грамма, позволяющая заниматься программированием, отладкой и
дисассемблированием программ в машинных кодах. Эта программа
приведена в Приложении 1.

10.1. Программная поддержка.

10 CLEAR 31999: LOAD «»CODE : INPUT » Load MONITOR (Y/N) ? «;

M$: IF M$=»N» THEN GO TO 30
20 IF M$=»Y» THEN LOAD «»CODE
30 CLS : PRINT AT 0,10 ; «PROGRAMMING»
50 PRINT AT 2,5;»2716,2764,27128,27356″
60 INPUT » Read or write or Test or Verify»;Q$
70 IF Q$ = «R» THEN PRINT AT 5,8;» READ»: GO TO 120
80 IF Q$=»W» THEN PRINT AT 5,8;» WRITE»: GO TO 120
90 IF Q$=»T» THEN PRINT AT 5,8;» TEST»: GO TO 120
100 IF Q$ = «V» THEN PRINT AT 5,8; «VERIFY» : GO TO 120
110 GO TO 60

120 INPUT » INPUT 1-2716, 2-2764, 3-27128,

130 IF Q=1 THEN PRINT AT 5,17;»2716″: GO SUB 3500: GO TO 180
140 IF Q=2 THEN PRINT AT 5,17;»2764″: GO SUB 3600: GO TO 180
150 IF Q=3 THEN PRINT AT 5,17;»27128″: GO SUB 3600: GO TO 180
160 IF Q-4 THEN PRINT AT 5,17; «27256» : GO SUB 3700: GO TO 180
170 GO TO 120

180 PRINT AT 8,1;»ROM adress from «;: DIM W$(4): INPUT W$: GO

SUB 5000: GO SUB 6000
190 POKE 32117,R: POKE 32190,R: POKE 32314,R
200 POKE 32118,E: POKE 32191,E: POKE 32315,E
250 GO SUB 7000: PRINT 1$

260 PRINT AT 8,22:»to «;: DIM W$(4): INPUT W$: GO SUB 5000: GO
SUB 6000

270 POKE 32120,R: POKE 32193,R: POKE 32317,R
280 POKE 32121,E: POKE 32194,E: POKE 32318,E
330 GO SUB 7000: PRINT 1$
335 IF Q$=»T» THEN GO TO 420

340 PRINT AT 10,1;»RAM adress from «;: DIM W$(4): INPUT W$: GO

SUB 5000: GO SUB 6000
350 POKE 32123,R: POKE 32196,R: POKE 32334,R
360 POKE 32124,E: POKE 32197,E: POKE 32335,E
410 GO SUB 7000: PRINT 1$

420 INPUT » CORRECT (Y/N) ? «;P$

430 IF P$=»N» THEN GO TO 30

440 IF p$=»Y» THEN PRINT AT 14,10;»Insert chip

READY ? Press any key»: PAUSE 0: GO TO 460

460 IF Q$=»R» THEN GO TO 1000
470 IF Q$=»W» THEN GO TO 1500
480 IF Q$=»T» THEN GO TO 2000
490 IF Q$—»V» THEN GO TO 2500
1000 POKE 32009,119: RANDOMIZE USR 32112

1020 PRINT FLASH 1;AT 21,15;»END»: PRINT » For continue press

any key»: PAUSE 0: GO TO 30
1500 RANDOMIZE USR 32304

1510 IF PEEK 32463-255 THEN PRINT FLASH 1;AT 21,15;»END»:
PRINT «For continue press any key»: PAUSE 0: GO TO 30
1520 PRINT AT 18,1,-«ROM adress » «: LET U-PEEK 32394 + 256»PEEK

32395: GO SUB 7010: PRINT AT 18,13;IS
1530 PRINT AT 18,20;»ROM data «: LET D=PEEK 32095: GO SUB

7500: PRINT AT 18,30;S$
1540 PRINT AT 19,1;»RAM adrees «: LET U=PEEK 32400+256*PEEK

32401: GO SUB 7010: PRINT AT 19,13;I$
1550 PRINT AT 19,20;»RAM data «: LET D=PEEK (PEEK 32400+256*

PEEK 32401): GO SUB 7500: PRINT AT 19,30:S$
1560 INPUT » Continue.(Y/N) ? «:G$

1570 IF G$-«N» THEN GO TO 30

1580 IF G$=»Y» THEN RANDOMIZE USR 32384: GO TO 1510
2000 POKE 32009,0: POKE 32210,254: POKE 32211,255
2030 RANDOMIZE USR 32176

2040 IF PEEK 32303=255 THEN PRINT FLASH 1;AT 21,15;»END»:
PRINT » For continue press any key»: PAUSE 0: GO TO 30
2050 PRINT AT 18,1;»ROM adress «: LET U=PEEK 32249=256*

PEEK 32250: GO SUB 7010: PRINT AT 18,13;IS
2060 PRINT AT 18,20;»ROM data «: LET D-PEEK 32015: GO SUB

7500: PRINT AT 18,30;S$
2070 INPUT » Continue (Y/N) ? «;H$

2080 IF H$ = «Y» THEN RANDOMIZE USR 32240: GO TO 2040
2090 IF H$=»N» THEN GO TO 30
2100 GO TO 2070

2500 POKE 32009,0: POKE 32210,0: POKE 32211,190
2530 RANDOMIZE USR 32176

2540 IF PEEK 32303-255 THEN PRINT FLASH 1;AT. 21,15: «END»:
PRINT » For continue press any key»: PAUSE 0: GO TO 30
2550 PRINT AT 18,1;»ROM adress «: LET U=PEEK 32249+256*

PEEK 32250: GO SUB 7010: PRINT AT 18,13;IS
2560 PRINT AT 18,20;»ROM data «: LET D=PEEK 32015: GO SUB

7500: PRINT AT 18,30;S$
2570 PRINT AT 19,1;»RAM adress «: LET U-PEEK 32255+256*

PEEK 32256: GO SUB 7010: PRINT AT 19,13;I$
2580 PRINT AT 19,20;»RAM data «: LET D=PEEK (PEEK 32255+

256*PEEK 32256): GO SUB 7500: PRINT AT 19,30;S$
2590 INPUT » Continue (Y/N) ? «;J$

2600 IF 3$=»N» THEN GO TO 30

2610 IF J$=»Y» THEN RANDOMIZE USR 32240: GO TO 2540
2620 GO TO 2590

3500 POKE 32001,8: POKE 32011,10: POKE 32046,2: POKE 32050,3
3510 POKE 32068,10: POKE 32082,8: POKE 32091,10: RETURN
3600 POKE 32001,12: POKE 32011,15: POKE 32046,6: POKE 32050,2
3610 POKE 32068,15: POKE 32082,12: POKE 32091,15: RETURN
3700 POKE 32001,8: POKE 32011,9: POKE 32046,0: POKE 32050,2
3710 POKE 32068,9: POKE 32082,8: POKE 32091,9: RETURN
5010 LET T=0
5020 FOR Y = 1 TO 4

5030 LET T-T+16T(4-Y)*CODE W$ (Y)-48-7*(CODE W$(Y)>57))
5040 NEXT Y

5050 POKE 32030,INT (T-(INT (T/256))*256)
5060 POKE 32031,INT (T/256)
5070 RETURN

6000 LET W-PEEK 32030+256*PEEK 32031
6010 LET E=INT (W/256)
6020 LET R=INT (W-(E*256))
6030 RETURN

7000 LET U—PEEK 32030+256*PEEK 32031

7010 DIM 1(4): DIM I$(4)

7020 LET 1(1)=INT (U/4096)

7030 LET U=U-I(1)*4096

7040 LET I(2)=INT (U/256)

7050 LET U=U-I(2)*256

7060 LET I(3)-INT (U/16)

7070 LET I(4)=U-I(3)*16

7080 FOR 0-1 TO 4

7090 LET 1$(0)—CHR$ (I(0)+48+7*(I(0)>9))
7100 NEXT 0
7110 RETURN

7500 DIM s(2): DIM S$(2)
7510 LET S(1)-INT (D/16)
7520 LET S(2)=INT (D-S(l)*16)
7530 FOR F=1 TO 2

7540 LET S$(F)=CHR$ (S(F)+48+7*(S(F)>9))
7550 NEXT F
7560 RETURN

9999 SAVE «PROG+» LINE 10: SAVE «PROG+»CODE 32000,500: SAVE
«MONITOR «CODE 61000,4535: STOP

Источник

Программатор РПЗУ

В.К. Бутенко, UR5YB, Г.В.Вамеш, UR5YO, г. Черновцы

Программатор предназначен для программирования РПЗУ 573РФ2, 573РФ4, 573РФ5, 573РФ6 и их аналогов на компьютерах IBM любого поколения. Программатор подключается к PC через порт принтера.

Принципиальная схема прграмматора показана на рис.1. Микросхема DD1 обеспечивает установку адреса ПЗУ (порт РВ и часть PC), записываемых данных (порт РА) и выдачу управляющих процессом записи импульсов (шины РС5РС7). Запись необходимой информации в DD1 происходит через порт принтера PC, который подключается к разъему Х1. Следует отметить, что нумерация контактов разъема Х1 (РПМ736Г) не совпадает с нумерацией разъема стандартного кабеля принтера, который применяется для подключения программатора к PC. Поэтому на схеме приведены номера контактов разъема РПМ736Г и стандартного разъема в скобках. Поскольку порт принтера однонаправленный, то для возможности чтения информации из ПЗУ используются четыре шины: ASK, BUSY, РЕ и SLCT. Для передачи байта в PC необходимо разделить байт на части по четыре разряда и передать их по очереди. Эту функцию выполнит мультиплексор DD2.

Программируемое РПЗУ устанавливают в колодку Х2. РПЗУ 573РФ2 и 573РФ5 следует устанавливать со сдвигом на два гнезда (1-й вывод МС в 3-е гнездо колодки). Переключение программатора в режим программирования РФ2, РФ5 или РФ4, РФ6 осуществляется переключателем SA2.

Управление режимом работы РПЗУ программно. Управляющие импульсы поступают с выводов 10-12 DD1, формируются с помощью DD3 в соответствии с требованиями и подаются на РПЗУ. Ключ на транзисторах VT2 и VT3 формирует высоковольтные импульсы напряжения программирования.

Питание программатора от сети через Т1. Выходные напряжения выпрямителя: 30 В (С1) и 15 В (С2). Для получения напряжения +5 В используется стабилизатор на DA1. Напряжение программирования формируется стабилизатором на VT1. В положении SA3 «Выключено» выходное напряжение стабилизатора около 24 В. При программировании РФ2 и РФ5 оно подается через VT3 на вывод 21 РПЗУ (SA2 в верхнем по схеме положении), а при программировании РФ4 и РФ6 через дополнительные VD3 и VD4 на вывод 1 РПЗУ, что обеспечивает напряжение программирования около 21 В. В режиме чтения на эти выводы через VD1 и VD2 подается +5 В. В положении SA3 «Включено» выходное напряжение стабилизатора около 14 В (12 В на выводе 1 Х2). При программировании напряжение программирования выбирается в соответствии с требованиями технической документации на конкретный тип МС. Для некоторых типов напряжение программирования указывают на корпусе МС. Светодиод VD10 сигнализирует о процессе записи.

Конструктивно программатор выполнен в корпусе 180x80x110 мм. Схема собрана на односторонней печатной плате размером 100×100 мм (рис.2), расположение элементов на плате показано на рис.3. Разъем Х1 и держатель предохранителя установлены на задней панели. На передней панели установлены Х2, SA1 SA3, VD8-VD10. Т1, DA1 и печатная плата закреплены на шасси. В качестве С1-С4 авторы использовали конденсаторы типа К5024, С5 — КМ, а резисторы типа МЛТ-0,125.

Собранный программатор в наладке не нуждается. При исправных деталях и правильном монтаже начинает работать сразу. Однако до подключения программатора к компъютеру небходимо проверить работу стабилизаторов на DA1 и VT1, а при опробовании программатора в режиме записи осциллографом проверить амплитуду импульсов напряжения программирования на С5, которая должна быть 24+1 В или 14+1 В в зависимости от положения SA3.

Работой программатора управляет программа рг.ехе, работающая в DOS. Программа предназначена для управления программатором в процессе подготовки, чтения и записи данных в РПЗУ.

После запуска программы пользователь должен, используя пункт меню Select, выбрать тип РПЗУ и номер параллельного порта (LPT1, LPT2), к которому подключен программатор. Перемещение по меню программы выполняется клавишами управления курсором, а подтверждение выбора — клавишей Enter. При нажатии клавиши F1 можно получить краткую справку о выбранном пункте меню программы.

При разработке программы авторы проанализировали опыт работы с различными программаторами и постарались предоставить пользователю максимум возможностей для выполнения работ по программированию МС РПЗУ.

Пункты меню программы рг.ехе

Read — чтение содержимого РПЗУ в буфер программатора. Процесс чтения отображается на экране. В конце выводится значение подсчитанной контрольной суммы содержимого РПЗУ.

Write — запись данных из буфера программатора в микросхему РПЗУ. Перед началом программирования выводится предупреждающее сообщение. В процессе программирования контролируется соответствие содержимого буфера и записываемых данных. В случае ошибок выводится сообщение с расшифровкой.

Check — подсчет контрольных сумм буфера и

Verify — сравнение содержимого РПЗУ с буфером программатора. В случае несовпадения данных выводится на экран протокол несоответствия.

Select — выбор типа РПЗУ, а также номера параллельного порта, к которому подключен программатор. Выбор отображается в верхней части экрана.

Input — ввод данных из файла в буфер программатора. Выводится запрос на ввод имени читаемого файла. После ввода имени данные файла переписываются в буфер.

Output — вывод содержимого буфера программатора в файл. Выводится запрос на ввод имени файла. После ввода имени данные буфера записываются в файл. Если файл с таким именем уже существует, то его содержимое будет затерто.

Modify — данный пункт используется для подготовки и редактирования содержимого буфера программатора и содержит следующее подменю.

Dump — постраничный вывод содержимого буфера программатора на экран для просмотра. Для смены страницы нажать клавишу пробела.

Fill — заполнение указанной области буфера программатора заданным байтом. Выводится запрос на ввод начального адреса, конечного адреса и значения байта. Значение адреса четырехразрядное шестнадцатиричное, ввод ведущих нулей обязателен. Ввод производить аккуратно, так как отсутствует возможность редактирования.

Edit — редактирование содержимого буфера. Реализовано экранное побайтное редактирование. Клавишами управления курсором можно перемещать курсор по экрану для выбора нужного байта, а клавишами PgUp и PgDn выбрать нужную страницу. После ввода байта (две цифры) происходит замена байта, а курсор переходит на следующую позицию. Для ввода значений байта доступны клавиши 0,1 . 9, A, B, C, D, E, F.

Move — копирование данных из одной указанной области буфера в другую. Задается начальный и конечный адрес области, из которой копируются данные, и начальный адрес области, в которую копируются. Требования к вводу значений адресов аналогичны пункту Fill.

Summa — подсчет контрольной суммы содержимого буфера программатора. Значение выводится на экран.

Quit — выход в главное меню.

Для выхода из программы используется команда Quit главного меню.

Таким образом, для проведения программирования при выключенном компьютере отключите кабель от принтера и подключите к программатору. Запустите компьютер для работы в DOS. Включите программатор и установите тип программируемого РПЗУ и необходимое напряжение программирования. Запустите программу pr.exe и, используя соответствующие пункты меню, выберите тип РПЗУ и порт. Установите чистое РПЗУ в колодку, прочтите его содержание и просмотрите. Если все байты имеют значение FF, то можно приступать к программированию. Для этого перепишите в буфер из файла заранее подготовленные данные (считанные из другого ПЗУ и записанные в файл или подготовленные вручную с помощью программы pr.exe) и запишите их в РПЗУ. При успешном окончании процесса программирования еще раз проверьте соответствие записанных данных содержимому буфера. Выключение произведите в обратном порядке.

Для проверки работоспособности программатора и микроконтроллера можно записать в память команд простейшую программу генератора импульсов и убедиться по мигающему светодиоду HL1 о правильности работы.

Источник

Оцените статью