Привет,Denn!
У меня есть еще один программатор по моей схеме, правда неполноценный,
только пишет и читает. В нем я поставил вместо ИР82 - 74HC573, все нормально
и пишет и читает.
Привет,Denn!
У меня есть еще один программатор по моей схеме, правда неполноценный,
только пишет и читает. В нем я поставил вместо ИР82 - 74HC573, все нормально
и пишет и читает.
VladimirS, у меня стоит 74HCT374 (функциональный аналог нашей ИР23).
Схему твою посмотрел, в общем-то практически тоже самое, что в общем-то не удивительно, т.к. вариантов для манёвров тут не много.
Честно говоря, я предполагал, что могут возникнуть трудности с прошиванием (там разные напряжения, скорости их подачи, определённые алгоритмы), а уж проблемы с банальным считыванием на такой простой системе - это для меня вообще нонсенс.
Попробую резюмировать аппаратные нюансы. Итак, младшая половина адреса у меня формируется ТТЛ-уровнями, а старшая - КМОП. У микрухи 74HCT374 заявлено, что она совместима с ТТЛ. Но факт остаётся фактом, напряжения лог. "0" и лог. "1" отличаются. Выход данных у Winbonda - КМОП, приёмник данных (ВВ55А) - ТТЛ.
Есть ещё нюанс.. поскольку напряжение питания на ПЗУ подаётся через диод (это нужно для развязки источников при подаче напряжения программирования), то оно не 5 Вольт, а меньше и реально составляет 4,67 Вольт (с КРЕНки выходит 4,95в + падение на диоде). При этом питание на ВВ55-ой и на Ирке полные 5 Вольт, т.е. фактически лог. "1" на старших адресных входах ПЗУ больше, чем её питание! Не знаю может ли это как-то влиять, но по д/ш всё укладывается в допустимый разброс.
Если допустить, что проблема в нестыковке КМОП-ТТЛ, то почему тогда у VladimirS в двух аналогичных аппаратных вариантах всё работает, а у меня нет?
Последний раз редактировалось Denn; 19.06.2015 в 16:14.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Для кмоп-ттл надо резисторы подтяжки ставить...
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
BYTEMAN, можно поподробнее, плз?
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Вот кусок кода, который читает 32 Кб данных из ПЗУ:
Code
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
[свернуть]
Сомневаюсь, что в нём бага, но мало ли...
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Согласовывать надо. Ну и шоттки в питание (+ что мешает "скомпенсировать" падение на диоде теми же диодами в выводе стабилизации кренок?).
В питании и так Шоттка стоит (SR106). Насчёт "скомпенсировать" - а оно надо? До +4.5 Вольт обязана работать ПЗУха.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
ПЗУха то работает, но если она ТТЛ, она не протянет тебе лог.1. Т.е. по своим меркам она тянет, там же от Vcc будет считаться, а ты со своими честными 5V со стороны ВВ55 уже не замечаешь. Хотя, я всякое делал, были разные капризные экземпляры.
А, еще я со странностями ВВ55 сталкивался, что его ножки не могли протянуть некоторые ТТЛ входы. И ЕМНИП тут тоже у кого-то было, и вроде как помогла установка дубовой 82С55, которая уже CMOS, в отличии от 8255/ВВ55 которые nMOS. Как уже было тут сказано, я бы подтянул выводы ВВ55 к +5В (как данные так и адрес, выход регистра подтягивать не надо).
А я бы посоветовал попробовать поменять ВВ55А на другую. И лучше попробовать несколько. У меня были случаи, когда ВВ-шка себя вела неадекватно. Ещё написать тест, выдавать в порт А значение случайное, с порта Б читать (сделать соединения ессно на плате), проверить, что на выводах то, что и нужно, что нет запзадываний отдельных разрядов.
Скрытый текст
Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
ZX Evolution Rev B.
Color 48 + Beta Disk Interface +FDD+YM2149F
Орель-08БК
Pentagon-48 (недоссобранный кем-то)
Pentagon-128 (полуубитый)
Кворум-128 (в ремонте)
Магик-05 (в ремонте)
Robotron 1715
Корвет ПК8020 и ПК8010
Amstrad CPC 464
Amstrad CPC 6128[свернуть]
Denn А не проще A и B порты использовать для адреса без всяких защелок , C для данных ,CE на землю ,OE дергать любым свободным битом (например портом магнитофона или бипером) ,хотя бы для проверки чтения.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)