На прошлой странице меня немного озадачила схема формирования RD и WR стробов для ISA-словтов:
Shaos wrote:
Сигнал CS_CACHE (как и CS_ROM) приходит из Альтеры.
RA14, RA15, RA16, RA17 - тоже (интересно, что они участвуют в формировании адреса ПЗУ,
быстрой памяти и ISA).
Соответственно, этот дешифратор работает когда:
CS_CACHE=0
RA16=0 (когда оно в 1, то идёт разрешение быстрой памяти вместо исы)
RA17=1
интересно, что сигнал /RD никак не участвует в формировании стробов /MEMRx:
Code: Select all
RA14=0 /WR=0 RA15=0 -----> /MEMW1 (1000=08h должно устанавливаться через значение D0h)
RA14=0 /WR=0 RA15=1 -----> /MEMW2 (1010=0Ah должно устанавливаться через значение D2h)
RA14=0 /WR=1 RA15=0 -----> /MEMR1 (1000=08h должно устанавливаться через значение D0h)
RA14=0 /WR=1 RA15=1 -----> /MEMR2 (1010=0Ah должно устанавливаться через значение D2h)
RA14=1 /WR=0 RA15=0 -----> /IOWR1 (1001=09h должно устанавливаться через значение D4h)
RA14=1 /WR=0 RA15=1 -----> /IOWR2 (1011=0Bh должно устанавливаться через значение D6h)
RA14=1 /WR=1 RA15=0 -----> /IORD1 (1001=09h должно устанавливаться через значение D4h)
RA14=1 /WR=1 RA15=1 -----> /IORD2 (1011=0Bh должно устанавливаться через значение D6h)
Если посмотреть в схему внимательно, то можно увидеть, что сигнал /RD принимает некоторое участие в работе с ISA, а именно управляет направлением буфера данных:
Screenshot from 2021-01-11 05-07-15.png
ISA_CS получается из CS_CASH вот так:
Screenshot from 2021-01-11 05-12-43.png
т.е. ISA_CS = CS_CASH or A16
тут будет 0, если CS_CASH=0 и A16=0 (в этом случае выбрана ISA)
а сама шина данных подтянута к +5В:
Screenshot from 2021-01-11 05-08-17.png
Получается, что при вышеизложенном формировании /MEMR1/2 и /MEMW1/2 карточка ISA будет видеть следующее:
Z80_memory_rw_SprinterISA.jpg
т.е. даже если я буду маскировать /MEMR и /MEMW на плате сигналом /MREQ, всё равно в цикле
записи будет вылезать неожиданный мусорный /MEMRD

который будет приводить к конфликту на шине данных в момент перехода мусорного /MEMR в /MEMW (может быть случайно записан только что прочитанный байт) и обратно...
P.S. И это при том, что на ISA не идёт /MREQ, точнее в случае Спринтера он идёт, но как ALE...
P.P.S. 27 января 2021 года RomanRom2 таки снял осциллограммы и подтвердил, что мусорный строб чтения (фиолетовый /MEMR) в цикле записи присутствует:
Write-Read-Garbage1.png
Голубой сигнал тут это /MEMW, а синий - /MREQ (поданный на ISA-слоты как ALE)
[/b]
You do not have the required permissions to view the files attached to this post.