PDA

Просмотр полной версии : Проблема с программированием W27C512



Denn
18.06.2015, 13:21
Всем доброго.

Изобретаю самодельный программатор для ПЗУ 27x512. Столкнулся с проблемой прочтения микросхем EEPROM от Winbond: W27C512-45Z (http://www.chipdip.ru/product/w27c512-45/) :(

Система следующая: хост - ПРК "Орион-128", микросхема подключается через порт юзера (КР580ВВ55А), через линию "А" выставляется адрес (сначала старший байт - защёлкивается в регистр ИР23, затем младший), через линию "В" производится считывание данных, через линию "С" на ПЗУ поступают управляющие сигналы OE и CE.

Суть проблемы в следующем. Информация из ПЗУ считывется, но каждый раз разная! Двух одинаковых дампов прочитать невозможно. Считываемая информация не полностью рандомная, по текстовым сообщениям видно, что они всегда присутствуют в том или ином виде. Заметил, что иногда один и тот же текст несколько раз дублируется в считанном дампе!
Попытки анализа различий показали, что каждый раз в случайных местах считываются совершенно левые куски (видимо, из других областей), причём начинаются куски в произвольных местах, а заканчиваются всегда адресами кратными 16, т.е. 0xxxxh-0xxxFh.

Сначала я экспериментировал с одной микросхемой, в которой уже была прошита информация. Потом решил, что она может быть неисправна и глюки именно от этой неисправности.
Затем купил (в двух разных магазинах) ещё две микросхемы W27C512-45Z. Из новой (чистой) стабильно считываются все 0FFh. Попробовал прошить и вновь та же проблема - считывается информация "на тему" прошитой, но контрольная сумма дампа каждый раз разная :v2_conf2:

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

Затем беру микросхему того же объёма, но другого типа - M27512 (старинная, с УФ-стиранием). В неё информация исправно прошивается и стабильно считывается! Т.е. с ней никаких проблем на данной системе.

Что ещё пробовал сделать. Хоть W27C512-45Z имеет большее быстродействие, чем старинная M27512, всё равно пробую в программе чтения вставить ощутимые задержки между выставлением адреса и чтением информации - картина не меняется, всё равно читается рандомно-неверная информация. Пробовал также между чтением каждого байта "усыплять" ПЗУ переводом CE в лог. "1", а затем обратно - бесполезно, всё равно каждый раз считываются разные дампы.

Краткий итог. На "проблеммных" ПЗУ W27C512-45Z стабильно считываются только все 0FFh (чистая микросхема) и 00h (прошиты все ячейки), информация отличная от этих значений считывается ошибочно. Информация из ПЗУ M27512 каждый раз считывается одинаковая и корректная (соответствует прошитой).

Честно говоря, у меня все мысли закончились (( Что это может быть и куда копать?

П.С. Если это поможет делу, то:

схема - http://www.denn.ru/orion/hardware/prog512.jpg

реализация - http://www.denn.ru/orion/hardware/my_prog%20(1).jpg

Vladimir_S
18.06.2015, 16:03
Denn, Попробуй первую ногу ИР23 посадить на землю.

Denn
18.06.2015, 16:13
Vladimir_S, у меня тогда адрес не будет меняться. Ирка защёлкивает старший байт адреса.

AlexG
18.06.2015, 16:18
Лично я бы делал бы на "рассыпухе" типа ЛА3. дабы были "чёткие" по уроню "0" и "1". как миниму ещё и на 24 и 30 ноге ПЗУ (ну и как было сказано на 1 ноге ир23). докучи фронты сигналов могут "затягиваться" на разных ПЗУ по разному - так что нужны "чёткие" "0" и "1"

Vladimir_S
18.06.2015, 16:20
Denn, Защелкивают 11 ногой.

Vladimir_S
18.06.2015, 16:27
вот.

AlexG
18.06.2015, 16:35
При том что 22 работает по уровню, а 23 по фронту - так что есть ньюансы. А 1 вывод это только управление третьим состоянием на выходе, что в данной схеме судя по всему не требуется. ИМХО.

VladimirS
18.06.2015, 16:35
Добрый день, Denn!
В схемотехнике я не очень, поэтому посоветовать не могу.
Но года три назад делал программатор для w27c512 под Орион-128,
схему немного подсмотрел у программатора PRUF.
На мой взгляд получилось неплохо - стирает, пишет, читает без ошибок,
правда только первые 32 килобайта, мне больше не надо было.
Данные порт А, адрес порт В (плюс регистр ир82), порт С управление.
Микросхема понравилась надежностью и простотой использования она ж
вроде и разрабатывалась для управления ДВС.
Делал для себя компьютер на Z80 удалось разогнать до 25 мГц в качестве
ПЗУ ставил эту микросхему, работала прекрасно, а вот для ОЗУ пошли
далеко не все микросхемы - перебрал наверное больше десятка, так и не
понял почему.
Моя схема http://sderni.ru/278947
Вставить на этом сайте у меня так и не получилось...
С уважением, Владимир.

Vladimir_S
18.06.2015, 16:37
в данной схеме судя по всему не требуется.
Ну, а я о чем.

Denn
18.06.2015, 17:09
Прошу прощения, насчёт первого вывода я неправильно прокомментировал. Действительно, защёлка адреса делается 11-ой ногой.

Нога у меня №1 используется для перевода старших адресных линий в Z-состояние. Заземлять я её не могу, т.к. у меня практикуется горячая замена ПЗУ без выключения питания, поэтому все контакты панельки должны обесточиваться.

---------- Post added at 17:09 ---------- Previous post was at 17:05 ----------


Лично я бы делал бы на "рассыпухе" типа ЛА3. дабы были "чёткие" по уроню "0" и "1". как миниму ещё и на 24 и 30 ноге ПЗУ (ну и как было сказано на 1 ноге ир23). докучи фронты сигналов могут "затягиваться" на разных ПЗУ по разному - так что нужны "чёткие" "0" и "1"

Я пробовал так: меняю адрес -> неприлично долго жду -> считываю данные. В таком варианте затягивание фронтов не играет никакой роли, т.к. считываются 100%-но устаканившиеся данные на выходах ПЗУ.

И второй момент: с керамико-стеклянной ПЗУ всё ок. Этот момент меня и смущает. Пластмасска КМОП, а стекляшка ТТЛ... пёс его знает, где тут собака зарыта?

Vladimir_S
18.06.2015, 17:16
у меня практикуется горячая замена ПЗУ без выключения питания, поэтому все контакты панельки должны обесточиваться
Да нихрена ПЗУшкам не будет если на адресных входа что то есть. Хоть втыкай, хоть вытаскивай.

Denn
18.06.2015, 17:26
Да нихрена ПЗУшкам не будет если на адресных входа что то есть. Хоть втыкай, хоть вытаскивай.

Питание не подано на ПЗУ (на 28-ой ноге ноль Вольт), а на адресных ногах у нас вдруг случается лог. "1", т.е. питание... Плохая ситуация, мягко говоря. Поэтому я гарантировано обесточиваю все выводы!

Vladimir_S
18.06.2015, 17:30
Поэтому я гарантировано обесточиваю все выводы!
Восемь адресов - это не все.

Denn
18.06.2015, 17:34
Добрый день, Denn!
...
Но года три назад делал программатор для w27c512 под Орион-128,
схему немного подсмотрел у программатора PRUF.
На мой взгляд получилось неплохо - стирает, пишет, читает без ошибок,
правда только первые 32 килобайта, мне больше не надо было.
...
Делал для себя компьютер на Z80 удалось разогнать до 25 мГц в качестве
ПЗУ ставил эту микросхему


Владимир, это очень интересная информация! Мне нужно шить сабж именно для тех же самых целей: создаю свой комп на Z80 c тактом 20 МГц. А ПО для него буду создавать на Орионе :v2_dizzy_vodka2:

---------- Post added at 17:34 ---------- Previous post was at 17:32 ----------


Восемь адресов - это не все.

Верно. Младшие адреса кладутся в Z с помощью перевода соотв. линий ВВ55 на ввод.

Кстати, какой "физический смысл" непосредственного земления первой ноги Ирки? У меня на всё время считывания ПЗУ он программно переводиться в лог. "0" - этого не достаточно?

Если точнее, то алгоритм чтения такой:
1. Выдаётся команда подачи питания на ПЗУ (при этом на ПЗУ CE=OE="1", активируется выход Ирки ОЕ="0");
2. Цикл ожидания на время переходных процессов;
3. Активирую ПЗУ (CE=OE="0");
4. Выставляю на "А" старший байт адреса;
5. Выдаю "_П_" на 11-ю ногу Ирки (защёлка старшего байта адреса);
6. Выставляю на "А" младший байт адреса;
7. Считываю данные из "B";
8. перебираю 256 младших адресов (гоу ту п.6);
9. инкремент старшего байта адреса, если <80h, то гоу ту п.4;
10. Перевожу все линии порта ВВ55 на ввод (Z-состояние), снимаю питание с ПЗУ

AlexG
18.06.2015, 17:45
Прошу прощения, насчёт первого вывода я неправильно прокомментировал. Действительно, защёлка адреса делается 11-ой ногой.

Нога у меня №1 используется для перевода старших адресных линий в Z-состояние. Заземлять я её не могу, т.к. у меня практикуется горячая замена ПЗУ без выключения питания, поэтому все контакты панельки должны обесточиваться.

---------- Post added at 17:09 ---------- Previous post was at 17:05 ----------



Я пробовал так: меняю адрес -> неприлично долго жду -> считываю данные. В таком варианте затягивание фронтов не играет никакой роли, т.к. считываются 100%-но устаканившиеся данные на выходах ПЗУ.

И второй момент: с керамико-стеклянной ПЗУ всё ок. Этот момент меня и смущает. Пластмасска КМОП, а стекляшка ТТЛ... пёс его знает, где тут собака зарыта?
У разных технологий ( в частности КМОП ТТЛ.) по разному реализованы входы выходы, разные входные выходные токи. Посему к примеру взять вход микросхемы и подать на него "землю" через резистор - то падение напряжения на этом резисторе может быть таким что не будет не "0" и не "1" нечто среднее, или вообще "1". Осциллограф в руки (вольтметр) и смотреть уровни "0" и "1" в статических режимах. они должны (по напряжению) удовлетворять входным параметрам всех ваших ПЗУ-шек.

VladimirS
18.06.2015, 18:04
Может просто заменить ИР23 на ИР22?

Vladimir_S
19.06.2015, 02:12
Младшие адреса кладутся в Z с помощью перевода соотв. линий ВВ55 на ввод.
А не проще в порт А записать все нули и дернуть 11 ногу ИР23? И на А0-А15 все логические нули.

---------- Post added at 07:12 ---------- Previous post was at 06:22 ----------


Кстати, какой "физический смысл" непосредственного земления первой ноги Ирки?
Как ты описал проблему - такое ощущение, что у тебя адреса как то гуляют. Просто для пробы заземли.

Denn
19.06.2015, 10:07
Как ты описал проблему - такое ощущение, что у тебя адреса как то гуляют. Просто для пробы заземли.

Но со "стеклянной" ПЗУ они почему-то не гуляют?.. А через выход Ирки на её вход ПЗУ никак не может влиять. Тем более, что Ирка у меня КМОП (74HCT...)

AlexG
19.06.2015, 10:18
Но со "стеклянной" ПЗУ они почему-то не гуляют?.. А через выход Ирки на её вход ПЗУ никак не может влиять. Тем более, что Ирка у меня КМОП (74HCT...)

А промерить уровни сигналов "0" и "1" которые формируются на транзисторах и на всех входах ПЗУ сложно ? по результату принимать дальнейшие шаги...

Denn
19.06.2015, 10:21
Может просто заменить ИР23 на ИР22?

Чёрт, я кажется начинаю понимать смысл этого совета. Точнее смысл не в ИР22 vs. ИР23, а именно в установке в это место не КМОП, а ТТЛ микрухи...

---------- Post added at 11:21 ---------- Previous post was at 11:19 ----------


А промерить уровни сигналов "0" и "1" которые формируются на транзисторах и на всех входах ПЗУ сложно ? по результату принимать дальнейшие шаги...

При отладке мерял, конечно. Всё чётко: "0"=0 Вольт, "1"=питание. Там же банальные ключи на ПТ, по-другому и быть не может.

На выходах, которые формирует ВВ55 (младшая часть адреса и данные при прошивке ПЗУ): "0"=0,7 Вольт, "1"=3,8 Вольт. Судя по датапростыне, в нужные пределы укладываемся.

VladimirS
19.06.2015, 14:13
Привет,Denn!
У меня есть еще один программатор по моей схеме, правда неполноценный,
только пишет и читает. В нем я поставил вместо ИР82 - 74HC573, все нормально
и пишет и читает.

Denn
19.06.2015, 16:07
VladimirS, у меня стоит 74HCT374 (функциональный аналог нашей ИР23).

Схему твою посмотрел, в общем-то практически тоже самое, что в общем-то не удивительно, т.к. вариантов для манёвров тут не много.

Честно говоря, я предполагал, что могут возникнуть трудности с прошиванием (там разные напряжения, скорости их подачи, определённые алгоритмы), а уж проблемы с банальным считыванием на такой простой системе - это для меня вообще нонсенс.

Попробую резюмировать аппаратные нюансы. Итак, младшая половина адреса у меня формируется ТТЛ-уровнями, а старшая - КМОП. У микрухи 74HCT374 заявлено, что она совместима с ТТЛ. Но факт остаётся фактом, напряжения лог. "0" и лог. "1" отличаются. Выход данных у Winbonda - КМОП, приёмник данных (ВВ55А) - ТТЛ.
Есть ещё нюанс.. поскольку напряжение питания на ПЗУ подаётся через диод (это нужно для развязки источников при подаче напряжения программирования), то оно не 5 Вольт, а меньше и реально составляет 4,67 Вольт (с КРЕНки выходит 4,95в + падение на диоде). При этом питание на ВВ55-ой и на Ирке полные 5 Вольт, т.е. фактически лог. "1" на старших адресных входах ПЗУ больше, чем её питание! Не знаю может ли это как-то влиять, но по д/ш всё укладывается в допустимый разброс.

Если допустить, что проблема в нестыковке КМОП-ТТЛ, то почему тогда у VladimirS в двух аналогичных аппаратных вариантах всё работает, а у меня нет?

BYTEMAN
19.06.2015, 16:19
Для кмоп-ттл надо резисторы подтяжки ставить...

Denn
19.06.2015, 16:28
BYTEMAN, можно поподробнее, плз?

Denn
19.06.2015, 19:56
Вот кусок кода, который читает 32 Кб данных из ПЗУ:

RD_ROM:
; Чтение блока из ПЗУ
; I: [F_NUM] - номер блока (косв.адр.)

; подаем питание на ПЗУ
MVI A,10H; 0001 0000 - HiZ=1, HiPWR=OE=CE=0
STA PORT_C
XRA A
DCR A
JNZ $-1
MVI A,50H; 0101 0000 - HiZ=0E=1, HiPWR=CE=0
STA PORT_C

LXI D,BUFFER
MVI B,128; 32768/256 - длина в блоках по 256

; формируем адрес ПЗУ
LHLD F_NUM
MOV A,M
ANI 1
RRC
MOV H,A
MVI L,0

RDROM0:
; цикл чтения данных

; фиксация старшего байта адреса в ИР23
MOV A,H
STA PORT_A
MVI A,58H; 0101 1000 - HiZ=LCK=OE=1, HiPWR=CE=0
STA PORT_C
MVI A,10H; 0001 0000 - HiZ=1, LCK=HiPWR=CE=OE=0
STA PORT_C

; чтение блока 256 байт
RDROM1:
MOV A,L
STA PORT_A
LDA PORT_B
STAX D
INX D
INR L
JNZ RDROM1
INR H

; обновление индикатора прогресса
MOV A,B
ANI 3
MVI C,'*'
CZ BIOS; [A]=0 - PRC
DCR B
JNZ RDROM0

; снимаем питание с ПЗУ
XRA A; 0000 0000 - HiZ=HiPWR=CE=OE=0
STA PORT_C
RET


Сомневаюсь, что в нём бага, но мало ли...

HardWareMan
19.06.2015, 20:39
Согласовывать надо. Ну и шоттки в питание (+ что мешает "скомпенсировать" падение на диоде теми же диодами в выводе стабилизации кренок?).

Denn
19.06.2015, 20:50
В питании и так Шоттка стоит (SR106). Насчёт "скомпенсировать" - а оно надо? До +4.5 Вольт обязана работать ПЗУха.

HardWareMan
20.06.2015, 05:24
ПЗУха то работает, но если она ТТЛ, она не протянет тебе лог.1. Т.е. по своим меркам она тянет, там же от Vcc будет считаться, а ты со своими честными 5V со стороны ВВ55 уже не замечаешь. Хотя, я всякое делал, были разные капризные экземпляры.
А, еще я со странностями ВВ55 сталкивался, что его ножки не могли протянуть некоторые ТТЛ входы. И ЕМНИП тут тоже у кого-то было, и вроде как помогла установка дубовой 82С55, которая уже CMOS, в отличии от 8255/ВВ55 которые nMOS. Как уже было тут сказано, я бы подтянул выводы ВВ55 к +5В (как данные так и адрес, выход регистра подтягивать не надо).

Vadim
20.06.2015, 07:50
А я бы посоветовал попробовать поменять ВВ55А на другую. И лучше попробовать несколько. У меня были случаи, когда ВВ-шка себя вела неадекватно. Ещё написать тест, выдавать в порт А значение случайное, с порта Б читать (сделать соединения ессно на плате), проверить, что на выводах то, что и нужно, что нет запзадываний отдельных разрядов.

JV-Soft
20.06.2015, 11:04
Denn А не проще A и B порты использовать для адреса без всяких защелок , C для данных ,CE на землю ,OE дергать любым свободным битом (например портом магнитофона или бипером) ,хотя бы для проверки чтения.

VladimirS
20.06.2015, 15:09
Тогда и дергать ничего не надо, получается стандартный ROM-диск для Ориона, только
порты перепутаны.

JV-Soft
20.06.2015, 16:37
Тогда и дергать ничего не надо, получается стандартный ROM-диск для Ориона, только
порты перепутаны.
К чему тогда все усложнять ? пара перемычек и готовый программатор. И таким образом точно можно проверит в ВВ55 дело или в куче ключей.

JV-Soft
22.06.2015, 00:56
По моему самый простой вариант проверки в чем проблема в вашей winbond 27c512 или в схеме программатора , подключить ее на прямую к портам вв55 ,CE перемычкой , А15 перемычка ,ОЕ свободный бит от вв55 оставшийся вместо А15.

Denn
22.06.2015, 11:43
По моему самый простой вариант проверки в чем проблема в вашей winbond 27c512 или в схеме программатора , подключить ее на прямую к портам вв55 ,CE перемычкой , А15 перемычка ,ОЕ свободный бит от вв55 оставшийся вместо А15.

От безвыходности придётся спаять такой вариант. Не понял смысла замутки с OE и A15 ? Для проверки можно жёстко CE=OE=GND.

Углядел в даташите на Winbond такую штуку: для отправки в Standby на CE должно быть Vcc +/-0,3V. Тобишь не ниже 4,7V при питании 5,0V. Оно хоть к делу и не относится, но наводит на некоторые мысли...

В общем, убрал пока ключ подачи 6,5V для программирования UV-"стекляшек", забайпасил развязывающий диод, т.е. на ПЗУ теперь пойдёт честное питание (у меня это 4,95V). На неделе переделанный программатор доберётся до Ориона, проверю, отпишусь.

JV-Soft
22.06.2015, 13:07
Не понял смысла замутки с OE и A15 ? Для проверки можно жёстко CE=OE=GND.

Процедура правильного чтения ,выставить адрес , перевести в 0 CE ,задержка ,перевести в 0 OE , прочитать данные и т.д.
Возможно ? что в winbond OE является не только ENABLE но и стробом ?

Я бы пробовал вот так (последовательность портов ВВ55 естественно как вам удобно) порт A шина данных ,порт B младшие восемь бит адреса ,порт C старшие 6 бит адреса , оставшиеся два бита порта B подать на CE и OE соответственно. А14 и А15 перемычки (читать будем по 16кб)

Написать такую процедуру чтения -
цикл 16384
OUT адрес (14-ти битный)
nop
nop
СE в #0
nop
nop
OE в #0
nop
nop
IN A , data
ld память+цикл ,А
СE в #1
OE в #1
jmp цикл

вот так будет самая правильная проверка

Sorry за мой ASM надеюсь суть ясна. Я так понял Орион не на Z80 , я делал программатор для пентагона но двух портах AY и порту принтера , могу дать исходники для Z-80

Denn
22.06.2015, 17:12
Процедура правильного чтения ,выставить адрес , перевести в 0 CE ,задержка ,перевести в 0 OE , прочитать данные и т.д.
Возможно ? что в winbond OE является не только ENABLE но и стробом ?

Это откуда такая информация?! :eek_std:

Класть чип в Standby и просыпать обратно (CE) при смене адреса - это какая-то жесть.
Winbond готов отдавать данные через 45 ns после смены адреса. CE нужен для отправки чипа в Standby (мизерное потребление), OE нужен для мультиплицирования нескольких чипов в общую ШД.

JV-Soft
22.06.2015, 19:27
Это откуда такая информация?!
52650

Я не буду утверждать так как лично не проверял winbond , CE точно можно засадить на землю ,но не является ли OE у нее еще и стробом для смены адреса ? Впрочем подключив как я говорил это можно узнать за пять минут написав програмку чтения. Как я делал у себя в программе сейчас не помню (19 лет прошло) достану исходники ,закину.

А еще как вариант , подтянуть шину данных между пзу и ВВ55. Хотя в уф стираемых точно это не требовалось ,много разных перешил ,все нормально было.

В общем лучше один раз испытать в железе ,чем писать догадки.

P.S. пробежал по даташиту , все вроде бы как и в обычных 27с512 , значит косяк или в выставлении адреса , или правда шину данных попробуйте подтянуть.

Вот стиралка интересная - http://nick17.ru/radiotehnika/proshivka-i-stiranie-w27c512/

Denn
23.06.2015, 14:31
Итак, продолжение сериала... уж не знаю, драмы или комедии ))

Как отписывал выше, подал честные 5 Вольт на питание ПЗУ и продолжил "лабораторные работы". В общем, полноценное питание никак не изменило ситуацию, по-прежнему в считываемом дампе имеют место рандомные вкрапления.

Ещё раз измерил напруги в статике. Итак, питание 4,95 Вольт (с КРЕНок 7805 почему-то всегда так, ни разу не встречал экземпляры с напругой выше 4,95в). Уровень лог."1" на выходе ВВ55-ой, нагруженной на КМОП-аналог ИР23-ей и входы ПЗУ W27C512 = 3,75 Вольт. На выходе нагруженном только на вход ПЗУ (CE) уровень лог."1" = 3,95 Вольт. Уровни лог."1" на выходах ИРки и ПЗУ равны питанию, т.е. все 4,95 Вольт. Уровень лог."1" на входе OE - 4,3 Вольта.

Дальше я уже стал мучать программную сторону вопроса. Сделал вот что, убрал изменение старшего байта адреса, т.е. 128 раз считываю только первые 256 байт данных из ПЗУ. Т.е. ИРка только один раз защёлкивает все нули и на протяжении всей процедуры чтения её состояние не меняется. Т.о. ещё и исключаю возможные проблемы с уровнем лог."1". Считываю... вообще какая-то лажа! В первых 32..128 байтах (длина каждый раз разная) какая-то информация, а далее считываются все FFh. Я вообще в непонятках, как это такое возможно?!
Далее ввожу в алгоритм чтения отключение выхода ПЗУ с помощью OE между сменой адреса. Начинает считываться информация! Причём за несколько попыток даже полностью совпали к/с дампов. Я даже было дело обрадовался.. Но сделал ещё несколько попыток, в результате которых проблема таки проявилась - в некоторых блоках вновь возникали вкрапления "левого" кода, просто оно стало происходить реже.
Далее пробую ввести задержки между каждыми обращениями к порту, ситуация не меняется.

Затем реализовываю "параноидальный" алгоритм чтения, о котором выше говорил JV-Soft, т.е. при чтении каждого байта усыпляю ПЗУ (CE=OE="1"), выставляю адрес, пауза, пробуждаю ПЗУ (CE="0"), пауза, активирую выход ПЗУ (OE="0"), пауза, читаю байт, усыпляю ПЗУ (CE=OE="1") и т.д.. Картина никак не меняется. Напомню, читаю только первые 256 байт, на A8..A15 перманентно выставлено 00h. Примерно в 1 из 640 раз проскакивает вкрапление "левого" кода в дампе.
Убираю лочку старшего байта адреса, пробую параноидальным алгоритмом читать весь дамп ПЗУ - проблема на месте, у всех считываний к/с разная.

На всех итерациях пробовал подкидывать керамическую ПЗУ с УФ-стиранием M27512. С неё при любом аппаратно-программном варианте всегда считывается достоверная информация! Т.е. проблемы только с ВинБондом ((

Теперь, имхо, осталось только одно узкое место: TTL-выхлоп ВВ55-ой подаётся на CMOS-вход ДжеймсБонда. Сегодня еду в ЧиД покупать трушную ТТЛ ИР23 (за 59 руб, блин :)). Т.к. есть подозрение, что ВВ-хе нужна нагрузка в виде ТТЛ-входа, иначе она почему-то тупит, а два КМОП-входа за нагрузку не считает вовсе ((

ОФФ, а может и нет.. Вспомнил вот что. Сделан у меня на ОРИОНе RAM-диск на ОЗУшках SU6264, которые тоже КМОП. Так вот в своё время поимел я с ним некоторое кол-во "секса", и тоже по части считывания инфы.
Копнул исходники и вспомнил такую штуку. Если читать из этого RAM-диска блок не более 2 Кб, то всегда всё ок. Если же читать блок более 2 Кб, то возникают сюрпризы (далее 2 Кб считываются неверные рандомные данные). Решил тогда проблему усыплением/пробуждением RAM-диска через каждые 256 считываемых байт. С этим "костылём" считывание 100%-ное. Тогда списал на глюканат ОЗУшек, типа при чтении длинных блоков что-то там нагревается и "залипает" (была инфа, что русские аналоги КР537РУ17 не любят долго быть выбранными /СЕ=0/ - сильно разогреваются чипы). Сейчас понимаю, что скорее всего проблема со стороны ВВ55-ой... /-)

---------- Post added at 13:57 ---------- Previous post was at 12:30 ----------


А еще как вариант , подтянуть шину данных между пзу и ВВ55.

К питанию? Каким номиналом, 10 ком или жощще?



Вот стиралка интересная - http://nick17.ru/radiotehnika/proshivka-i-stiranie-w27c512/

Да, красиво. Всё прямо по учебнику, в смысле по даташиту. Один момент.. ZIF-кроватка стоит 1000 с лишним рубликов! Макетная плата 300 с лишним руб. Ради только стиралочки как-то жирновато получается :) Интегрировать данную фичу в программатор видится мне более логичным, что я и сделал в своём..

---------- Post added at 14:02 ---------- Previous post was at 13:57 ----------


Тогда и дергать ничего не надо, получается стандартный ROM-диск для Ориона, только
порты перепутаны.

Вангую, что не заработает ВинБонд в таком варианте. По ходу, проблема с выходом ВВ55-ой скорее всего. Току она хочет...

---------- Post added at 14:31 ---------- Previous post was at 14:02 ----------

Хм... интересно, с чего я взял, что ВВ55-ая ТТЛ?
Педевикия говорит, что она n-МОП...

JV-Soft
23.06.2015, 15:05
Denn

Управляли ВВ55 и ИР на прамую или через огород транзисторов ?
резисторы по 10К самое то.

Зря не подключили как я говорил без регистра и без ключей из полевиков к портам.

По памяти я при чтении OE всегда дергал. Зачем не знаю ,инстинктивно:D

Denn
23.06.2015, 15:45
Denn
Управляли ВВ55 и ИР на прамую или через огород транзисторов ?

Вопрос не понял, если честно. В этом смысле схема осталась прежней - http://www.denn.ru/orion/hardware/prog512.jpg
Строб ИРки напрямую от ВВ55ой, OE через ключ на ПТ.



резисторы по 10К самое то.

Если не поможет ТТЛ-защёлка, то попробую. Спасибо.



Denn
Зря не подключили как я говорил без регистра и без ключей из полевиков к портам.

Это надо много паять. У меня мастерская на другой квартире, я там бываю только по выходным и у меня там много другой работы. Не хочется делать лишних телодвижений, я привык больше мозговым штурмом, а руками делать когда совсем наверняка.
Кстати, к этому и вспомнил про RAM-диск - там как раз без регистра и без ключей, и похоже те же проблемы.

JV-Soft
23.06.2015, 16:13
Вопрос не понял, если честно. В этом смысле схема осталась прежней

Имел в виду управлять ВВ55 и ИР без всех этих полевиков.

Denn
23.06.2015, 16:49
Про "подтяжки" нашёл только тут - http://www.rlocman.ru/shem/schematics.html?di=48945

К сожалению тема вычисления номинала резистора-подтяжки там не раскрыта :(

Add

Вот тут (http://life-prog.ru/1_40323_sopryazhenie-razlichnih-logik.html) ситуация немного проясняется:
"Одно из исключений – соединение выходов ТТЛ ИС с входами КМОП серии КР1554 (74АС). При таком соединении необходимо подключать резистор номиналом 560 Ом между линиями сигнала и напряжения питания"...
Однако 560 Ом и 10 Ком мягко говоря сильно отличаются... И меня терзают смутные, что ВВ55-ая выдержит такое "издевательство" /-)


---------- Post added at 16:49 ---------- Previous post was at 16:39 ----------


Имел в виду управлять ВВ55 и ИР без всех этих полевиков.

Я применяю ПТ, которые прекрасно работают на видеочастотах, в моём применении они точно не являются каким-то узким местом. Работают в ключевом режиме, т.е. просто перекидывают GND<->Vcc, никаких чудес и сложностей.
Адресные линии идут от ВВ к ИР напрямую, строб защёлки тоже. OE управляется через ключ, но он во время всего цикла чтения данных сидит на нуле (GND).

Чую, что проблема в том, что ВВ55-ая не видит нагрузки, отчего работает некорректно. Возможно линия связи ВВ55->программатор слишком длинная и её нужно терминировать на стороне программатора, т.к. КМОП-входы в виду своей высокоомности не выполняют эту функцию. Может велика паразитная ёмкость между шинами, в итоге помехоустойчивости КМОП микрух не хватает. Х/з, короче.

USERHOME
23.06.2015, 22:15
Чтобы поднять напряжение с кренки нужно в разрыв вывода GND (кренки) включить диод (есть три Кремний, германий, Шоттки)
Если ВВ55 настроена неправильно, то могут быть проблемы.
Я сам только изучаю вопросы по ВВ55, там порт С может быть на ввод и вывод побитово как-то настроен и если в программе ошибка установки порта С, то результат FAILED

W27C512 (http://lib.chipdip.ru/222/DOC000222543.pdf)

11 стр, 12 стр. Указаны разные напряжения A9-14 В, 3,75 В....(наводит на мысль)

У меня были проблемы с РПЗУ может даже, как у вас модель ПЗУ
Программируется хорошо, но в ZX не работает (причину я не выяснял)

Denn
24.06.2015, 13:27
Итак, приобрёл я отечественные регистры, взял сразу оба варианта, которые были в наличии: КР555ИР23 и ЭКР1533ИР23. Что могу сказать, есть новости, но все - плохие.

Сперва воткнул 1533ИР23. Сразу заметил, что инфа в считываемых дампах визуально ощутимо отличается от той, которая читалась с 74HCT374 (стало гораздо меньше последовательностей байтов FFh). Но, по-прежнему, каждый раз считываются дампы с разными к/с.

Втыкаю 555ИР23. И опять визуально данные чуть отличаются от тех, что с 1533-ей серией, и по-прежнему каждый раз разные к/с, т.е. где-то имеют место вкрапления "левых" данных.

И тут я ставлю проверенную и всегда 100%-но читавшуюся керамическую M27512... теперь с неё читаются дампы с разными к/с! Приплыли.

Меняю "туполинейный" алгоритм чтения на "параноидальный". Корректное считывание с M27512 возвращается.
Ставлю ВинБонд. Чудо, каждый раз стабильно считываются одинаковые дампы! Вовсе не факт, что корректные (соответствуют тому, что записано), но одинаковые.
Далее опять лезу в код и из "параноидального" алгоритма убираю управление сигналом CE, т.е. при смене адреса "передёргиваю" только OE, а CE выставляется в ноль на время всего цикла чтения. Проверяю - чтение с ВинБонда стабильное, к/с дампов совпадают.
На всякий сохраняю образец стабильного дампа и меняю алгоритм чтения: вместо OE дёргаю CE. Вроде бы с точки зрения функционирования ПЗУ действия равнозначные.
Проверяю, с ВинБонда также стабильно считываются одинаковые дампы, но... они в корне отличаются от тех, которые читались со "стробированием" по OE. Какой-то бред!
Ставлю "бронебойную" M27512 - она при "стробировании" по СE вообще криво читается (в дампе очень много FFh).

Я уже ничего не понимаю, если честно. Факт только в том, что с разными микросхемами регистра поведение разное. С серией 555 и определённым алгоритмом чтения поведение ВинБонда стабилизируется, но не факт, что считываются верные данные.

Чтобы напаять 24 подтягивающих резистора, мне фактически придётся разобрать весь программатор и собрать его заново, для операции такого масштаба хотелось бы иметь хоть какую-то уверенность, что это сможет помочь решить проблему.

***

Есть в наличии быстрая КМОП-версияя ВВ55-ой от OKI: MSM82C55A-2. Но заработает ли она в ОРИОНе в обрамлении 155/580 серий - вопрос...

USERHOME
24.06.2015, 14:06
Вот ещё схемки
Программатор ВВ55 (https://app.box.com/s/zabs8jtjrdomuabib1ox31zz041mfp30)
Программатор ВВ55 1 (https://app.box.com/s/bh8o7np4nq6ylcrgmvkapdpxthgvju4n)

Как видно из схемы ничего не надо на резисторах ....

Denn
24.06.2015, 14:31
USERHOME, проблема конкретно в связке W27C512 + КР580ВВ55А. Античные ПЗУ шьются и читаются без вопросов.

USERHOME
24.06.2015, 14:41
Программаторы запоминающих и логических интегральных микросхем Л.Л.Муренко 1988-600M (https://app.box.com/s/hbai4m06p4sdw5x402whh8sfwvg012cm)

---------- Post added at 14:41 ---------- Previous post was at 14:32 ----------


USERHOME, проблема кокретно в связке W25C512 + КР580ВВ55А. Античные ПЗУ шьются и читаются без вопросов.
А этот алгоритм у Вас реализован ?
(из Даташита, я сам толком не очень:v2_dizzy_tired2:)

Program Mode
Programming is performed exactly as it is in conventional UVEPROMs, and programming is the only
way to change cell data from "1" to "0." The program mode is entered when OE/VPP is raised to VPP
(12V), VCC = VCP (5V), the address pins equal the desired addresses, and the input pins equal the
desired inputs. Pulsing CE low starts the programming operation.

Program Verify Mode
All of the bytes in the chip must be verified to check whether they have been successfully
programmed with the desired data or not. Hence, after each byte is programmed, a program verify
operation should be performed. The program verify mode automatically ensures a substantial
program margin. This mode will be entered after the program operation if OE/VPP low and CE low.

Denn
24.06.2015, 14:48
USERHOME, проблема темы не в алгоритме программирования.

Ссылки на книжки по программированию древнерусских микросхем не нужно постить, там ничего по данной теме нету.

---------- Post added at 14:48 ---------- Previous post was at 14:44 ----------

Пока мыслю в направлении подтяжек.

http://konspekta.net/studopediaorg/baza8/621832435258.files/image125.jpg

"Сопротивление резистора R выбирают в пределах 2 .. 5 кОм в зависимости от серии ТТЛ." (Источник тут (http://studopedia.org/8-34611.html))

Правда, у меня не ТТЛ, а n-МОП...

USERHOME
24.06.2015, 14:49
USERHOME, проблема темы не в алгоритме программирования.

Ссылки на книжки по программированию древнерусских микросхем не нужно постить, там ничего по данной теме нету.
Хорошо, отругали:v2_dizzy_punk: (для истории разместил)
Вопрос такой при чтении из ROM выводы OE и CE всегда в 0 ? стабильное состояние ?

Memory organized as 65536 &#180; 8 bits that operates on a single 5 volt power supply т.е. 5 Вольт
+14V erase/+12V programming voltage

Denn
24.06.2015, 14:51
Вопрос такой при чтении из ROM выводы OE и CE всегда в 0 ? стабильное состояние ?

Прошу перечитать внимательно выше, я подробно описываю все свои телодвижения.

USERHOME
24.06.2015, 15:41
Диаграммы временных параметров (https://app.box.com/s/4g3n3xzq91fv8bjwwiqzbj0km14gwcci)
На графиках, как я понял, есть задержки на вывод инфы на DOUT

---------- Post added at 15:41 ---------- Previous post was at 15:11 ----------


Про "подтяжки"

Чую, что проблема в том, что ВВ55-ая не видит нагрузки,
Ещё вариант, попробовать ШД подтянуть к +5 Вольт через ~ 10 КОм
Хотя бы начать скажем с D0 и D1 на панельке ROM'a.
Если в этих разрядах будет всегда устойчивое состояние (при верификации), то поднянуть и остальные DATA OUT ROM через резисторы к +5 Вольт

Проверить со всеми видами ROM (которые для экспериментов)

Denn
24.06.2015, 16:45
USERHOME, на данном этапе (чтение ПЗУ) с ШД проблем нет, есть глюки с адресацией данных.

JV-Soft
24.06.2015, 18:16
Что могу сказать, есть новости, но все - плохие.
:v2_conf2::v2_conf2::v2_conf2: 6 страниц ,результат ноль.

Я создал тему по пентагону (18 лет отсутствовал) и за 8 страниц форума - восстановил пентагон ,нашел подбитые ИЕ 5 ,ИЕ 7 ,и две РУ7 , вычислил холодную пайку на порту переключения памяти , разобрался как и чем шить флеши ,собрал универсальную прошивку ,собрал из старого компа программатор развел плату в LAY под nemo-ide , накатал вытравил собрал ,подключил винт ,переделал корпус , переделал ноутбучный cd-rom , развел scart . Не видя никогда в глаза поставил DNA-OS на пентагон , нашел в ней и исправил ошибку из за которой запарывались винты ,и еще кучку по мелочам.

Это я все к чему - я слушал и делал то ,что мне говорят ;) и потратил на все 16 вечеров.

Тут все очень хотят вам помочь и узнать в чем же ошибка ,может все таки припаяете панельку к портам ВВ55 и уберете все ключи , и регистр :)

USERHOME
24.06.2015, 18:27
Меня смущают в схеме V1 и V2 (всегда открыты через диод ??? или я ошибаюсь)
Они у Вас P-Channel? Проследите, там же диод внутри транзистора используется.
Если запрограммировать один байт (не инкриментировать ША) и прочесть, то совпадает ? (верификация) или нет.

Denn
25.06.2015, 12:04
JV-Soft, я могу лишь порадоваться за человека, у которого есть 16 вечеров на пайку и юношеский энтузиазм. Я по молодости очень много чего собирал, в т.ч. разрабатывал и конструировал сам, и у меня тогда не было ни форумов, ни интернетов, а за "даташитами" приходилось ходить в библиотеки, а также в этих библиотеках вручную переписывать дампы программ, потом их набивать, сохранять на ленту... Сейчас, к сожалению, не имею таких возможностей, со временем на "лабораторные работы" крайне туго, поэтому приходится больше решать проблемы головой, а включать паяльник только имея 100%-ое решение.
Я в своё время делал много устройств, работающих через порт ВВ55, в т.ч. и программаторы, и никогда таких проблем не было. В данном случае я столкнулся с совершенно непонятной для меня "аномалией", и обратился на форум в надежде, что кто-то сталкивался с подобной проблемой и знает её решение.
Методику "научного тыка" в данном случае считаю не самой удачной, т.к. пока что она не привела ни к чему, а ресурсов потрачено достаточно.


может все таки припаяете панельку к портам ВВ55 и уберете все ключи , и регистр :)

Для меня совершенно очевидно, что будет тоже самое. И подтверждение этому в т.ч. есть в этой теме:


У меня были проблемы с РПЗУ может даже, как у вас модель ПЗУ
Программируется хорошо, но в ZX не работает (причину я не выяснял)


---------- Post added at 11:53 ---------- Previous post was at 11:49 ----------


Меня смущают в схеме V1 и V2 (всегда открыты через диод ??? или я ошибаюсь)
Они у Вас P-Channel? Проследите, там же диод внутри транзистора используется.

На схеме есть расшифровка этих V1 и V2. BS170 - это N-канал.
Если бы у меня в транзисторах всегда был открыт диод, то я бы не разрабатывал программаторы, а скорее всего кричал бы "свободная касса!" ;)



Если запрограммировать один байт (не инкриментировать ША) и прочесть, то совпадает ? (верификация) или нет.

Сударь вновь невнимательно читает посты. На эту тему был "НИР".

---------- Post added at 12:04 ---------- Previous post was at 11:53 ----------


Привет,Denn!
У меня есть еще один программатор по моей схеме, правда неполноценный,
только пишет и читает. В нем я поставил вместо ИР82 - 74HC573, все нормально и пишет и читает.


Владимир, а можно про него поподробнее. Схема, реализация? Буквально - какая длинная соединительных проводов от ВВ55 до ПЗУ? Маркировка ИМС порта ВВ55 или ВВ55А ?
Хост тоже - Орион?

~

bigral
25.06.2015, 14:30
Про "подтяжки" нашёл только тут - http://www.rlocman.ru/shem/schematics.html?di=48945

К сожалению тема вычисления номинала резистора-подтяжки там не раскрыта :(

Add

Вот тут (http://life-prog.ru/1_40323_sopryazhenie-razlichnih-logik.html) ситуация немного проясняется:
"Одно из исключений – соединение выходов ТТЛ ИС с входами КМОП серии КР1554 (74АС). При таком соединении необходимо подключать резистор номиналом 560 Ом между линиями сигнала и напряжения питания"...
Однако 560 Ом и 10 Ком мягко говоря сильно отличаются... И меня терзают смутные, что ВВ55-ая выдержит такое "издевательство" /-)


Так а какой был результат "подтяжки" шины адресса и данных к питанию?
Думаю 500 Ом это для бешенных частот, тут должно прокатить 1..5 кОм
Всетаки очень похоже на то что этот winbond садит на 0 выходные цепи TTL

Denn
25.06.2015, 14:37
Так а какой был результат "подтяжки" шины адресса и данных к питанию?

Это ещё предстоит проверить.



Всетаки очень похоже на то что этот winbond садит на 0 выходные цепи TTL

Заковыка в том, что ВВ55-ая не ТТЛ, а n-МОП, т.е. по идее у неё на выходе ПТ.

JV-Soft
25.06.2015, 15:41
Сейчас, к сожалению, не имею таких возможностей, со временем на "лабораторные работы" крайне туго, поэтому приходится больше решать проблемы головой, а включать паяльник только имея 100%-ое решение.
Я вам и рекомендовал 100% решение. Так как по моему мнению , все это счастье работает фактически в ключевом режиме ,нет ни каких быстрых частот , значит проблем совместимости TTL - КМОП нет , следуя простой логике значит проблема в ваших ключах или регистре ,что я и предложил убрать. Как искать проблему это конечно решать вам ,тогда в первом посте стоит отметить - проблема с программатором , дайте совет , но схему переделывать не буду. Тогда такие энтузиасты как я не будут тратить ваше время ,которого как вы говорите у вас и так не много.
Удачи вам в поиске ошибки ,буду наблюдателем:D

Denn
25.06.2015, 18:10
JV-Soft, если Вы видите проблему в ключах, то скажите в чём именно она заключается? Пока что это выглядит так: "мне не нравятся эти ваши ключи, потому что там что-то непонятное мне". Лично я не то чтобы искренне верю в безупречную работу "тупого" ключа, а даже в состоянии убедиться в том, что он действительно выставляет честный ноль на входе ПЗУ. Точно также я могу замкнуть входы CE и OE перемычками - ничего не изменится, и для этого мне совсем не нужно тратить несколько вечеров на сборку ROM-диска.
Что до регистра, то с таким же точно вариантом у ВладимираS не было проблем, значит проблема не в регистре. Опять же, если внимательно читали выше, я пробовал статично выставлять все нули на регистре и читать только младшие разряды, т.е. по сути работал вариант ВВ55+ПЗУ, который Вы предлагаете мне спаять ещё раз отдельно.

JV-Soft
25.06.2015, 19:27
JV-Soft, если Вы видите проблему в ключах, то скажите в чём именно она заключается?

Собирая разные поделки убеждался не раз - собрал не работает или не так работает ,проверил все десятки раз ,все правильно ,а вот на 101 раз нашел ,дорожка не туда ,или еще что то ,если интересно могу привести реальные примеры из области фантастики. Я могу сказать что не так с вашим программатором только взяв его в руки.

Как бы поступал я ,но эт не значит ,что так поступят другие :D , собрал программатор - не работает , проверил все варианты программно - не работает , (Питер большой город) нашел бы ,попросил , подъехал в какой нибудь СЦ например по пути с работы на работу с этим винбондом и попросил причитать записать , если глючит ,выкинул винбонд и купил другой ,если не глючит , выкинул все ключи и регистр ,и проверил на прямую с ВВ55 , если глючит выкинул ВВ55 ,если не глючит выкинул схему с ключами и регистром.

PS недавно делал nemo-ide (6 микросхем) там частоты повыше чтение/запись ,сброд из 4 серий - HC ,ACT ,ALS и наша ТТЛ и тоже разная 555 / 1533 ,вообще у всех разные уровни 0/1 ,и все отлично работает ,так просто из практики.
http://s019.radikal.ru/i625/1506/5b/a9c82f13499ft.jpg (http://radikal.ru/fp/1efb8701205c49a4a4826e6e7a8f4031)

PSS не знаю как устроена система прерываний ориона ,надеюсь при записи/чтении прерывания запретили ?

VladimirS
25.06.2015, 20:34
Здравствуй, Denn!
Ситуация такая - есть у меня Орион еще прошлого века (тысячелетия)и уже
стал сильно глючить, реанимация плохо помогает и решил сделать другой, т.к. раставаться с ним не хочется. На этом старом компе был уже готовый
программатор для W27C512 работает, конечно, с ВВ55А, а для обмена
прогами с новым компом сделал другой, попроще, этот работает с портом на 8255. Отличается отсутствием м-мы LM317, на моей схеме часть ее обведена карандашем, напряжение 12V подается на эммитер КТ816В напрямую, т. е. пишет, читает, но не стирает, пока в этом нет необходимости.
Контроллера дисковода нет и делать его что-то напрягает - долго паять,
вместо него подключил параллельно ROM-диску микру 29F016, получилась
такая маленькая сохранялка. У нее сектор как раз 64 кб позволяет
обмениваться с дисками Ориона, получилось 32 сектора, я громко называю
его SSD диском. Подключаются программаторы без проводов - просто разъемом. Чтобы не быть голословным сделал картинки.

И все таки я бы попробовал аналоги ИР22...

Почитав всю переписку приходит на ум шутка: "трудно заниматься любовью на площади".

P.S. Кстати, микры W27C512 в новом компе используются для монитора и ROM-диска.
С уважением, Владимир.

JV-Soft
25.06.2015, 20:46
Почитав всю переписку приходит на ум шутка: "трудно заниматься любовью на площади".
Да ,но когда занимающийся попросил совета ,обижаться уже не стоит...
С уважением.

Denn
25.06.2015, 21:39
Подключаются программаторы без проводов - просто разъемом.

Теперь мне окончательно всё ясно (у меня 35 см от программатора до разъёма Ориона, и внутри Ориона ещё где-то 20 см.. итого полметра скрученных плотно вместе шлейфов!).

Огромное спасибо, Владимир!

Vasily
26.06.2015, 10:19
Denn, если хотите попытаться сохранить длинну, подключите шлейфом и сделайте чередование проводников: GND-SIGNAL-GND-SIGNAL-GND-SIGNAL-GND-......

Denn
26.06.2015, 11:25
Denn, если хотите попытаться сохранить длинну, подключите шлейфом и сделайте чередование проводников: GND-SIGNAL-GND-SIGNAL-GND-SIGNAL-GND-......

Да, так и сделаю. И каждый шлейф отдельно в фольгу.

AlexG
26.06.2015, 12:51
Да, так и сделаю. И каждый шлейф отдельно в фольгу.

Вот вчера хотел написать про "землю". но форум глючило.
И всё же кроме чередования сигнал-земля возможно потребуется резисторы подтяжки - дабы не сильно "звенело" на длинных шлейфах.

Denn
26.06.2015, 13:38
И всё же кроме чередования сигнал-земля возможно потребуется резисторы подтяжки - дабы не сильно "звенело" на длинных шлейфах.

В связи с этим вопросы.

Во-первых, какой номинал выбрать? Как я понимаю, 10ком будут ни о чём. 1 ком вместе с регистром и ПЗУхой не перегрузят ли выхлоп ВВ55-ой? Т.е. ставить 2,2ком?

Во-вторых, у меня есть конструктивная возможность установить эти резисторы в разъёме, который вставляется в хост, т.е. подтяжки будут примерно на середине пути (шлейфа) - это совсем плохо или всё же даст нужный эффект?

В-третьих, есть ли разница к которому источнику питания подтягивать? У меня в системе два питания: одно от хоста (Орион-128), другое в самом программаторе. Если делать подтяжку в разъёме, то доступно только питание хоста. Соответственно, в программаторе есть только его родное питание...

VladimirS
26.06.2015, 17:59
Добрый вечер, Denn!
Возвращаюсь к программатору PRUF, в нем автор применил резисторы подтяжки номиналом 5,1 ком к питанию программатора, микросхема ВВ55А и порт LPT. А я со своим программатором проделал эксперимент, поставил переключатель на адрес А9, то есть при стирании на него подается напряжение 12,44В (по моему мультиметру) вместо положенных - 14В и микросхема стирается, не знаю насколько полноценно, но при чтении дает все ячейки 0FFH, так, что схема еще упростилась.

Denn
26.06.2015, 23:36
VladimirS, приветствую!

Загуглил схему PRUF'а (http://elikt.narod.ru/shem/digital/shem06.htm), там подтяжка делается до ВВ55'ой, на интерфейсе Centronics:

http://elikt.narod.ru/shem/digital/ris14.gif

А между ВВ55 и ПЗУ подтяжек нет. Правда, и длинных шлейфов нет тоже :)
Но этот программатор шьёт обычные УФ-ПЗУ, а с ними и на моей системе проблем нет.

За инфу по напряжению стирания спасибо. Было бы шикарно, если бы например от 13,2 Вольт стирались и программировались вообще все ходовые модели ПЗУ! А то каждой нужно своё, но все напруги около того: 12в, 12.5в, 13в, 13.5в, 14в.

VladimirS
27.06.2015, 10:06
Добрый день, Denn!
В программаторе PrufPlus-32 напряжение программирования выставляется
перемычками JP1, JP2, ... JP8. Можно установить любое.
А в програматоре КИСА 3.0 для Ориона вообще может устанавливаться
автоматически.

К сожалению, не знаю как загрузить схему в лучшем качестве, как у тебя.
Ничего, что я Вас на ты?

Denn
27.06.2015, 11:43
К сожалению, не знаю как загрузить схему в лучшем качестве, как у тебя.

Если схема есть в интернете, то я просто беру кликаю по ней в браузере правой кнопкой мышки, выбираю "копировать адрес картинки" в клипборд. Затем при написании поста в форуме жмакаю жёлтую иконку "вставить картинку" и открывшемся окне вставляю URL картинки. Можно и вручную вставить ссылку как текст и обрамить её тегом [IМG] - будет тоже самое.

Вот, нагуглил схему PrufPlus32 и перевыложил к себе:

http://www.denn.ru/schematics/prog/pruf_plus_12r.jpg

А вот она же в супер качестве - http://www.denn.ru/schematics/prog/PrufPlus12r.jpg

Схемы взял отсюда - http://msevm.com/ua3prq/pruf/pruf.htm




Ничего, что я Вас на ты?

Конечно, без проблем :v2_dizzy_vodka3:

---------- Post added at 11:43 ---------- Previous post was at 11:10 ----------

Вот ещё фотки реализации моего:

http://www.denn.ru/orion/photos/prog512(5).jpg

Тут видна длина и конфигурация шлейфов

http://www.denn.ru/orion/photos/prog512(6).jpg

А тут видно, что напаять резисторы подтяжки со стороны программатора практически нереально - нужно отпаивать все шлейфы, колхозить резисторы, потом как-то к ним припаивать шлейфы обратно... ((

http://www.denn.ru/orion/photos/prog512(7).jpg

Тут видно, что сверху с резисторами никак не подобраться

Vladimir_S
27.06.2015, 12:54
Denn, А для чего такой длинный шлейф? По моему на две трети укоротить не помешает.

---------- Post added at 17:54 ---------- Previous post was at 17:48 ----------

И кстати, сегодня заехал на работу, и попробовал шить W27C512 программатором TL866. Шьет, читает, стирает. Как образец для отладки вполне годится.

VladimirS
27.06.2015, 15:09
Привет, Denn!
За науку спасибо!
Поразглядывал твои картинки, но ведь регистр вроде на панельке стоит,
ну почему бы не попробовать другие микросхемы, например, ИР22 (это я
опять за свое) или такие же, но другой серии. Бывает так, что где не
работает серия 1533 хорошо идет 555-я и наоборот, сталкивался с этим.

Denn
27.06.2015, 15:20
Denn, А для чего такой длинный шлейф? По моему на две трети укоротить не помешает

Это минимально комфортная длина. В идеале хотелось бы метр :rolleyes:



И кстати, сегодня заехал на работу, и попробовал шить W27C512 программатором TL866. Шьет, читает, стирает. Как образец для отладки вполне годится.

Верю, что готовое промышленное изделие работает без проблем, такое бывает :)
А вот сколько пота и крови было пролито разработчиком до прихода к финальному изделию - этого мы не узнаем никогда :)

---------- Post added at 15:15 ---------- Previous post was at 15:12 ----------


ну почему бы не попробовать другие микросхемы, например, ИР22 (это я опять за свое) или такие же, но другой серии. Бывает так, что где не работает серия 1533 хорошо идет 555-я и наоборот, сталкивался с этим.

http://zx-pk.ru/showpost.php?p=813111&postcount=44

---------- Post added at 15:20 ---------- Previous post was at 15:15 ----------



Всё, обратной дороги нет - взял ножницы и отрезал свои горе-шлейфы. Ваяю три шлейфа с чередованием GND-SIGNAL-GND-etc., и каждый будет завёрнут в заземлённую фольгу. А со стороны программатора на все 24 линии ВВ55 будут резисторы-подтяжки на 3,3 ком к питанию ПЗУ, чего бы мне это ни стоило!
Радикально и все меры сразу! Если и после этого не взлетит, то отправляю поделку в мусорку и покупаю промышленный программатор ((

http://www.denn.ru/orion/photos/prog512(8).jpg

http://www.denn.ru/orion/photos/prog512(9).jpg

Сваял один шлейф (из трёх), обмотал фольгой, обмерял - 70 пф между сигнальной жилой и фольгой. Это при 40 см длины. Имхо, нормально, для моих столь малых частот это вполне норм.

~

VladimirS
27.06.2015, 16:51
"Если и после этого не ВЗЛЕТИТ, то отправляю поделку в мусорку и покупаю промышленный программатор"


"А что, полкан, сделаешь летучий корабль?
- Куплю."

Denn
27.06.2015, 17:44
По ходу дела решил немного упростить конструкцию. Обматывать фольгой крайние шлейфы смысла не вижу, думаю что вполне достаточно обмотки центрального:

http://www.denn.ru/orion/photos/prog512(a).jpg

Т.о. получается, что между всеми шлейфами есть экран, т.е. наводку друг на дружку они давать не будут точно. Между сигнальными жилами внутри каждого шлейфа тоже земли, так что, как говорится, без шансов :)

В итоге, несколько часов и кабель готов:

http://www.denn.ru/orion/photos/prog512(b).jpg

На остальное нужно либо 2-3 вечера, либо целый выходной день! Ужас, конечно, недопустимое кол-во драгоценного времени, но тут уже тупо принцип ((

VladimirS
27.06.2015, 20:25
Добрый вечер, Denn!
Не поленился, взял кусок кабеля от старого принтера, который LPT длинной
один метр (оставался от прежних экспериментов), добавил несколько жил и
спаял удлинитель для программатора.
В результате выяснилось, микра стирается не полностью, хоть с кабелем,
хоть без, при работе Ориона на частоте 10 мГц, несколько ячеек остаются,
при повторном стирании микра очищается полностью. Я связываю это с
недостаточным напряжением 12,44В, надо все таки 14В.
А вот пишет и читает исправно при частоте 10мГц и 5мГц, проверял коды:
00Н, 55Н, 0ААН и конечно 0FFH. На частоте 5 мГц стирает полностью.
Вот такой итог, что ему надо не знаю.

VladimirS
27.06.2015, 21:03
Посидел, подумал, почесал репу и решил дополнить эксперимент, взял
программу NC$ записал ее по двум адресам, с 0 и 4000Н, записал, прочитал,
сравнил программой М256$ и так по 2 раза на 5мГц и 10мГц, все без ошибок
Попутно выяснил, стирает с ошибкой, если записаны все нули, а если какая-то смешанная информация, то стирает полностью - это для 10мГц.

Denn
28.06.2015, 01:02
VladimirS, т.е. хочешь сказать, что в твоём случае добавка метра кабеля между ВВ55 Ориона и программатором на считывание информации из Winbond 27C512 никак не влияет? Этот тот Орион, который с 82C55 или который с "трушной" ВВ55А?

VladimirS
28.06.2015, 08:19
Добрый день, Denn!
Да, получается так, хочешь верь, а хочешь нет!
Орион я последнее время использую только новый, это тот в котором стоит
8255, к сожалению она впаяна, т .к. был уверен, что она работать будет, и
проверить другие микросхемы нет возможности. Пара слов о 82С55, они
используются в моем самодельном компьютере ( не Орион ), который может
работать на частоте 25мГц (на Z80). На какой реально частоте они работают
сказать невозможно, но факт, что работают. Проверял 8255, работают, но
далеко не все.
С утра на трезвую голову пришла мысль, если процесс стирания неуверен-
ный, надо вводить его контроль. Допустим проводим два цикла стирания,
потом читаем в буфер и проводим контроль на 0FFH, если результат отрица-
тельный - повторяем. И так несколько раз, а потом делаем выводы, вот
тогда можно с уверенностью использовать пониженное напряжение стирания
Можно ввести контроль записи, записываемая информация расположена в
основной памяти по адресу 0-7FFFH для 32кБ, а считываемую записать на
диск Е. У меня во втором банке памяти стоит SIMM-ка на 256кБ, что позволи-
ло получить лишний диск (Е), который не видит VC$, но доступен из мони-
тора, поэтому практически не используется. Во как фантазия разыгрались!
Есть вопрос не по теме, но тоже по памяти.
Встречаются расширения экранной памяти, а именно: 400#256, 480#256 и
512#256, а по каким адресам она располагается? Ведь в стандартном Орионе
она ограничена сверху и снизу.

Denn
28.06.2015, 11:21
VladimirS, хоть 82C55 функционально (логически) соответствует ВВ55-ой, но реализация другая: она - CMOS. И второй момент: она made не in USSR :)
В даташите на 8255 я вообще вижу фичу: "Eight Darlington drive outputs for printers and displays". Т.е. имеет место "заточка" под принтеры и их длинные кабели.

Тоже буду ваять 8-битку на CMOS'ах, надеюсь там не будет таких проблем с совместимостью и "длинными линиями" ))


По процессу стирания. В датапростыне как раз сказано, что стирание нужно делать с контролем на все FFh, и если сразу не получилось, то сделать 10 попыток с проверкой. Думаю, что 14в производитель не зря обозначил, нужно стирать именно таким напряжением. От 12в может оно тоже будет стираться, но ненадёжно, т.е. впоследствии состояние "стёртых" ячеек может самопроизвольно измениться.

Касательно экранной памяти. В Орионе она всегда реализуется в виде 4-х 16-килобайтовых окон (0000-3FFFh, 4000-7FFFh, 8000..BFFFh и C000..FFFFh). При меньшей разрешухе просто неполное использование окна, т.е. проще говоря не все байты окна отображаются на экране.

VladimirS
28.06.2015, 16:19
Касательно экранной памяти. В Орионе она всегда реализуется в виде 4-х 16-килобайтовых окон (0000-3FFFh, 4000-7FFFh, 8000..BFFFh и C000..FFFFh). При меньшей разрешухе просто неполное использование окна, т.е. проще говоря не все байты окна отображаются на экране.


Похоже и ты не знаешь...

VladimirS
28.06.2015, 20:25
Похоже, что-то не так в этом королевстве, если даже дружбу приходиться регистрировать.
Хотя я не против дружбы в любом виде.

Denn
29.06.2015, 01:14
VladimirS - ??

JV-Soft
29.06.2015, 01:57
Я тоже вначале подумал ,что дело в том ,что у меня короче а ,у вас длиннее ,но не придал этому значения.
Видимо сбои все же ,связанны с длинной.

CodeMaster
29.06.2015, 08:53
что дело в том ,что у меня короче а ,у вас длиннее

Можно смайликов понаставить? ;-)))))))

Denn
29.06.2015, 13:16
Чем длинее, тем больше секса.. так всегда ))

---------- Post added at 13:16 ---------- Previous post was at 12:20 ----------

Итак, напаял кучу факин-резисторов:

http://www.denn.ru/orion/photos/prog512(c).jpg

Попутно сделал несколько анти-EMI модов. На ноги питания регистра повесил персональную плёнку на 220 нф.
Шину питания в точке соединения резисторов подтяжек тоже подпёр плёнкой 100 нф об землю.
Сток-исток входных ключей забайпасил ёмкостями 4,7нф.
Подтягивающие резисторы ША и ШД на 3,3 ком, на строб регистра и CE - 1,8 ком.

Попутно внедрил кнопку "Стирание", которая "поднимает" КРЕНку на 2 Вольта (т.е. до 14в) и коммутирует линию A9 на OE.

Получился конечно адовый трэш и колхозинг:

http://www.denn.ru/orion/photos/prog512(d).jpg

Проверить работоспособность получится не раньше среды, к сожалению. Искренне надеюсь, что труды не напрасны :)

Denn
02.07.2015, 11:56
Проверка доработки в деле принесла следующие новости. Если коротко - "почти щасте" (С)

Теперь первые 32 Кб (0000..7FFFh) из ВинБонда любым алгоритмом, с любой скоростью и с любым типом микросхемы регистра (555, 1533, 74HCT) считываются правильно и стабильно! Шьются первые 32 Кб также стабильно и с первого раза (у меня сделана программная визуализация процессов, и видно когда алгоритму приходится "дозашивать" непрошившиеся с первого раза ячейки). Фантастика!

Увесистая ложка дёгтя касается старших 32 Кб (8000..FFFFh). Тут ситуация следующая. Разные алгоритмы (address controlled, OE controlled и CE controlled) читают различающиеся друг от друга дампы, но в пределах каждого алгоритма многократные попытки читают одинаковые дампы, т.е. ушла рандомность данных в зависимости от попытки! Различия в дампах теперь не в "космических" масштабах: если ранее кол-во различий исчислялось десятками тысяч байт, то теперь это значения 32, 82, 134.
Также занятно следующее. Установка разных микросхемы регистра (555, 1533, 74HCT) в рамках одного алгоритма также даёт стабильно разные дампы (( Отличия также незначительные (в пределах сотни байт). Как и ранее, отличия представляют собой вкрапление кодов из какого-то другого участка ПЗУ, т.е. это не "залипание" разрядов ШД и отличия в каких-то конкретных битах, а именно левые последовательности байтов, и также выровнянные по адресам кратно 16.

Пробовал стирать ПЗУ и программировать заново, место расположения и кол-во "левых" байт сохраняется! Для подопытной ПЗУ №1 (условно) левак читается на участке F8A1..F8FFh (алгоритм "CE controlled", регистр 74HCT374). С физически другой ПЗУ (условно №2) "левак" также имеет место, но расположен по другим адресам в верхних 32 Кб и имеет другую длину. Кол-во попыток стирания/программирования никак не меняют эти цифры в пределах одного чипа.

~

Как и ранее, для сравнения пробовал ставить "стекляшку" M27512 - эта падла по-прежнему стабильно и правильно считывается независимо от алгоритма и типа ИМС регистра!

Напомню, у меня остался непеределанным участок шлейфа длинною примерно 20 см от ВВ55-ой до интерфейсного разъёма ОРИОНа. Этот шлейф представляет собой собранные в пучок три 10-контактных линии, без перемежения земляными жилами и экранирования. Остаётся грешить на него. Но по-прежнему непонятка, почему M27512 на этой же системе работает без проблем? И почему первые 32 Кб (половина объёма) ВинБонда работают исправно?

~

TechTalk

В результате подтяжки шин от ВВ55-ой к питанию через 3.3 ком, уровень лог. "1" ощутимо увеличился: 3,75в -> 4,87в. Там, где более "жёсткая" подтяжка 1,8 ком (сигнал CE ПЗУ и строб регистра) уровень лог. "1" вообще почти приблизился к питанию: 4,92в (при питании 4,95в)! При этом уровень лог. "0" также понялся: 0,17в -> 0,79в.

Я не делал подтяжку шин "виртуального" адреса (A8..A15), которые формирует ИМС регистра, т.к. там расстояние проводников не более 1 см, и в случае ВинБонда+74HCT374 получается "интим" между CMOS и CMOS, что не требует каких-либо согласований.

П.С. начинаю думать, что все проблемы вообще могут быть из-за наводки на вход строба регистра защёлки адреса /-) И нужно его подпереть кондёром (мэйби 1 нф или чуть больше?), а в алгоритм ввести небольшую задержку на его перезаряд; при этом на помехи регистр не будет успевать реагировать... А собственно помехи даёт ВинБонд своими запредельно крутыми фронтами сигналов на ШД (как варик).

Denn
06.07.2015, 11:33
Всё такие я её победил!!! :)

Выхи прошли с пользой. Очередная порция модов привела к успеху. К сожалению, как обычно сделано было сразу несколько доработок, и точно сказать, которая из них помогла, не могу. Может и всё в совокупности.
Когда я разобрал свой Орион и увидел там коротенький-коротенький отрезок кабеля, то даже не хотел связываться с его переделкой "по феньшую", на вид он ну никак не мог что-либо испортить. Тем не менее, упёртость взяла верх, да и других вариантов я не видел.

Итак, "предпоследняя миля" была длинной 12 см, шлейфом без перемежения земляными жилами, все 24 линии в плотном пучке. Вместо него сделал шлейф длиной 20 см, линейка каждого порта (8 жил) сделана 17-жильным шлейфом с перемежением каждой жилы через GND. Каждая линейка в персональном экране (фольга-самоклейка), соединённым с GND со стороны ВВ55'ой.
Что ещё изменилось: теперь общий провод идёт не одной жилкой, а всеми перемежающими, т.е. через 27 жил! Тобишь земля стала значительно "землистее" :)
В конце шлейфа установил между GND и +5в плёнку на 100 нф. Хоть 5в от Ориона не используются (в программаторе свои источники питания), но всё равно это жила в общем кабеле, которая теоретически может "светить" своими помехами на соседние жилы.

В самом программаторе непосредственно с ноги строба регистра на землю установил "антизвонный" керамический конденсатор на 470 пф (хотел 4,7 нф, но в последнрй момент так круто "жестить" передумал).

И последнее что сделал: заменил микруху регистра 74HCT374 на 74AC374. Поясню зачем. В описании серии 74ACxxx: "..may be used as a level converter for interfacing TTL or NMOS outputs to High Speed CMOS inputs". А в описании 74HCTxxx такого не написано. Тобишь на всякий пожарный ))

По приезду (Орион у меня на другой квартире), сразу кинулся проверять. Работает, зараза! Вот прям сразу, 100%-ное считывание ВинБонда без ошибок, любым алгоритмом!!! Реально не верил своим глазам, жмакал верификацию (чтение со сравнением с файлом) мульён раз! Потом отдельно читал, глазел на стабильные и правильные контрольные суммы дампов! По три раза стёр/зашил/проверил каждый ВинБонд - всё чётко и без ошибок. Фантастика!
А весь "левак", который у меня был ранее, как-будто приснился в страшном сне :)

Для тех, кто не любит читать многабукв: схемотехнику программатора я не менял! Только сделал параноидально-идеальный шлейф от ВВ55'ой до программатора. Общая длина шлейфа получилась 60 см (20+40).
Заодно аналогично переделал шлейф порта клавиатуры (тоже ВВ55-я), т.к. планирую эксперименты с SDHC через этот порт, чую я бы и там "наелся" глюков в будущем из-за дерьмового шлейфа /-)

П.С. к сожалению, забыл в мастерской другие типы микросхем регистра, через неделю если не забуду, привезу их и попробую. Но почему-то уверен, что все траблы были из-за помех на шлеф.

П.П.С. Вернул питание ПЗУ через разделительный диод, т.е. теперь оно не 5в, а 4,67в. Пофигу, ВинБонд работает! Затем вернул повышенное питание (6,5в) в режиме программирования (требуется для прошивки античных "стеклянных" ПЗУ) - Бонд работает (стирается/шьётся/читается)! Сделал для себя вывод, что точность напряжений для ПЗУх пофигу.

bigral
06.07.2015, 15:41
Чисто субьективное впечатление: все это было изза разности уровней "земли" в компе и на другом конце шлейфа, ну и при программировании возникали наводки в соседние биты именно в определенном месте прошивки. Думаю для выявления проблемы надо было попробовать соединить землю программатора и ориона толстым медным проводом.

Denn
06.07.2015, 17:07
bigral, всё возможно. По идее, у меня питание программатора (обычный трансформаторный адаптер-вилка, не ИБП!) гальванически отвязано от сети и с Орионом имеет связь только через интерфейсный шлейф. Т.е. земляная петля и выравнивание потенциалов исключены. Плохих паек в старом варианте шлейфа при моддинге не обнаружил.

Denn
13.07.2015, 13:23
Как и обещал, проверил разные микросхемы регистра: 555ИР23, 1533ИР23, 74HCT374 и 74AC374. Все работают без проблем! Т.е. дело было в шлейфе ((

BYTEMAN
14.07.2015, 01:10
А я подозреваю что это из-за замены микросхемы... Готов на пиво поспорить)))

Denn
14.07.2015, 10:58
А я подозреваю что это из-за замены микросхемы... Готов на пиво поспорить)))

Подколки не понял. Если речь про микросхему регистра, то выше я как раз отписался о том, что "дело было не в бобине" (С)

Весь геморрой был из-за 12-сантиметрового участка шлейфа. В чём именно: в наводках жил друг на дружку или из-за слишком тонкой земли - этого уже не выяснить.

Ewgeny7
14.07.2015, 12:30
Готов на пиво поспорить
Готов лично привезти бутылочку в Питер? Приезжай... :)

USERHOME
15.07.2015, 12:44
Я хочу в Питер...
Вспомнил, подключали с товарищем FDD к Пентагону шлейфом скрученным в жгут - результат "не работает", всю голову сломали..
Распушили шлейф в воздухе и дисковод стал работать..

Denn
15.07.2015, 13:41
Я хочу в Питер...

У нас щас погода не очень, мягко говоря /-)



...шлейфом скрученным в жгут - результат "не работает", всю голову сломали..
Распушили шлейф в воздухе и дисковод стал работать..

Тот случай, когда дело было именно в бобине )))

BYTEMAN
15.07.2015, 15:48
Как и обещал, проверил разные микросхемы регистра: 555ИР23, 1533ИР23, 74HCT374 и 74AC374. Все работают без проблем! Т.е. дело было в шлейфе ((

Подколки не понял. Если речь про микросхему регистра, то выше я как раз отписался о том, что "дело было не в бобине" (С)
хех, а я когда писал с мобилы, этой мессаги не заметил гг))) ну чо, если когда буду в Питере, то с меня пивасик)

Denn
28.03.2016, 12:59
Случился занятный инцидент с W27C512, на этот раз со стиранием.
В своё время сделал сабжевый программатор, написал к нему ПО и почти год успешно пользуюсь для прошивки W27C512.

Коллега решил тоже сделать себе такой программатор, но ПО решил написать сам. Начал задавать мне вопросы касательно алгоритмов записи/стирания, которые я реализовал у себя. Разумеется, что на память я уже не помню, разбирался с этим давно, но сказал, что делал строго по даташиту и у меня сразу всё заработало без проблем. Лезу в свои исходники, кидаю коллеге и... он находит там ошибку! Ошибка в таймингах процедуры стирания. Причём правильно назвать не ошибкой, а ОШИБИЩЕЙ! Ни много, ни мало, а в 1000 раз!!! В своё время я не заметил в даташите, что размерность величин разная: для алгоритма записи время "прожига" байта 100 микросекунд, а для стирания микросхемы 100 миллисекунд. Я у себя сделал в обоих алгоритмах 100 мкС.
И оно работает! Работает 100%, осечек нет. Периодически стираю/проверяю/записываю 5 шт. W27C512, купленных в разное время и разных местах.
Как такое может быть? В даташите указаны пределы: минимальное значение 95 мс, номинальное 100 мс, максимальное 105 мс. У меня в 1000 раз короче импульс стирания, и ПЗУ стирается.

У меня, честно говоря, непонятка. Вот код задержки формирования импульса записи/стирания для процессора КР580ВМ80А с тактовой частотой 2,5 МГц:


; ИМПУЛЬС СТИРАНИЯ (~100 МКС)
MVI A,70H; 0111 0000 - CE=0
STA PORT_C

; ЗАДЕРЖКА 15*15+7+7 ТАКТОВ
MVI C,15; (7 ТАКТОВ)
DCR C; (5 ТАКТОВ)
JNZ $-1; (10 ТАКТОВ)
MVI A,0F0H; 1111 0000 - CE=1 (7 ТАКТОВ)
STA PORT_C

; СНИМАЕМ НАПРЯЖЕНИЕ
MVI A,0D0H; 1101 0000 - PWR=OE=CE=1, HiPWR=0
STA PORT_C



Рассчитывал так. Один такт ВМ80А равен 1/2500000 секунды - это 0,4 микросекунды. Данный код даёт 246 тактов между подачей и снятием импульса стирания: 246*0,4=98,4 мкС.
Или я где-то глобально ошибаюсь в расчётах?