Найти в Дзене
RahostStudio

Эмулятор ZX-FDD. Дополнение.

В комментариях к видеообзору данного эмулятора получил небольшую порцию критики по поводу применённого мною конденсатора на пине 30 шлейфа FDD. Поэтому решил немного разобраться, почему так происходит, дисковод работает, эмулятор нет? Снял осциллограммы работы дисковода и эмулятора, и между ними есть различия. Слева осциллограмма дисковода, а справа эмулятора. У дисковода сигнал более округлый, у эмулятора более прямоугольный, но с нехилыми выбросами. Видно, что peak-to-peak у эмулятора аж 9,9 вольт. Возможно такие выбросы и не нравятся моему BDI, а он является точной копией контроллера от производителей компьютера Дельта-С и выглядит вот так: Изучая схему своего контроллера, обнаружил небольшие отличия от классического BDI в плане обработки сигнала rd_data (с которым я и борюсь). В классических схемах этот сигнал приходит на микросхему 555ТМ2, в моей же схеме сигнал приходит сначала на микросхему 555АГ4 и уже потом на ТМ2. По моему мнению сигнал эмуля не нравится АГ4, поэтому она его

В комментариях к видеообзору данного эмулятора получил небольшую порцию критики по поводу применённого мною конденсатора на пине 30 шлейфа FDD. Поэтому решил немного разобраться, почему так происходит, дисковод работает, эмулятор нет? Снял осциллограммы работы дисковода и эмулятора, и между ними есть различия. Слева осциллограмма дисковода, а справа эмулятора.

Осциллограммы.
Осциллограммы.

У дисковода сигнал более округлый, у эмулятора более прямоугольный, но с нехилыми выбросами. Видно, что peak-to-peak у эмулятора аж 9,9 вольт. Возможно такие выбросы и не нравятся моему BDI, а он является точной копией контроллера от производителей компьютера Дельта-С и выглядит вот так:

Контроллер дисковода для Дельта-С. Реплика.
Контроллер дисковода для Дельта-С. Реплика.

Изучая схему своего контроллера, обнаружил небольшие отличия от классического BDI в плане обработки сигнала rd_data (с которым я и борюсь). В классических схемах этот сигнал приходит на микросхему 555ТМ2, в моей же схеме сигнал приходит сначала на микросхему 555АГ4 и уже потом на ТМ2. По моему мнению сигнал эмуля не нравится АГ4, поэтому она его дальше не пропускает. И когда я подставлял конденсаторы на 30-й пин, то у сигнала уменьшались выбросы и он, скорее всего, становился приемлемым для микросхемы. Ну а если в паре с эмулятором подключен обычный дисковод, то этот конденсатор уже изменяет форму сигнала дисковода и, соответственно, тот перестаёт работать. Так что критика правильная, конденсатор не решение проблемы.

Решил сигнал rd_data пропустить через логические элементы, под рукой нашлась микросхема 155ЛА3, использовал 2 её элемента по такой схеме:

Вместо ЛА3 можно использовать ЛН1
Вместо ЛА3 можно использовать ЛН1

Микросхему положил на спину и подпаялся проводами, выглядит так:

Микросхема на плате контроллера. Приклеена на термоклей
Микросхема на плате контроллера. Приклеена на термоклей

После такого включения осциллограммы исправились в лучшую сторону! Слева дисковод, справа эмулятор:

Теперь нормально!
Теперь нормально!

Теперь сигналы почти идентичны, и микросхеме АГ4 они пришлись по вкусу, дисковод и эмулятор работают в паре без проблем. Почти. По отдельности они работают, но вот при попытке скопировать файлы с эмулятора на дискету опять получил ошибку! При копировании на осциллографе получалась какая-то мешанина сигналов, как будто эмуль и дисковод вместе начинали что то слать в БДИ. И здесь снова на помощь пришел Evgeny Ugryumov. Он немного поправил код эмулятора, и всё стало работать чётко. Спасибо, Евгений! Обновлённый код можно скачать ниже.

Пока делал данную доработку, подумал, может, надо было поставить ЛА3 не на плату контроллера, а на эмулятор?.. Ведь дисковод до этого работал нормально. Но, во-первых неохота было уже переделывать, во-вторых, места на плате эмулятора не осталось (хотя при желании можно было вкорячить, пришлось бы только перебрать его почти весь). В общем, оставил как есть, главное - работает!

Смотрите так же видео по данной доработке:

Первую часть с этапами сборки читайте здесь:

Продолжение: