Подключение GS к Дельта-С(75ИС)
|
|
Black_Cat | Дата: Суббота, 18.02.2023, 19:40 | Сообщение # 21 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Цитата SKV ( ) Под "круговым буфером" я имел в виду "окружающий": Z80 был полностью отделён от Дельты буфером 4*1533АП6 по линиям D0..7, A0..15, [MREQ, M1, RD, WR]. 20 лет назад я собрал этот же окружающий буфер на 4*555АП6 и тоже не смог запустить. Но тогда у меня был слабый блок питания на КРЕН, я списывал на него. Зачем? У тебя что, что-то плохо работало? Буферирование - это мера вынужденная, когда по другому уже никак. Его делают не от хорошей жизни, и уж точно не впрок - шоб було. На Спектруме, почти без негативных последствий можно буферировать только шину данных. Буферирование адресов, и тем более шины управления может привести к проблемам с NemoBus.
Цитата SKV ( ) Схема из статьи "Слотовая система из подручного хлама" ("Чёрная ворона" №5):http://zxdn.narod.ru/hardware/bc05slot.htm УжОс!! Надеюсь ты не повторял этот бред? :)
P.S. И Боже вас всех сохрани, не повторяйте схемы из старой спектрумовской прессы! Лучше изучите вопрос и сами всё разработайте. :)
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Суббота, 18.02.2023, 19:40 | Сообщение # 22 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Да, нестабильно работала моя перепаханная в 128К Дельта + Бета Диск, в лихие 90-е не хватало ни компонентов, ни денег, ни знаний, ни опыта, чтобы понять причину. Блоки питания делали на КРЕНках, у которых номинальный ток 1А. Попалась мне известная статья от НТК+ про буферизацию, с тех пор и держал в уме эту идею.
А о нежелательности буферизации я с тобой согласен, т.к. обе мои попытки отделить Z80 провалились. Теперь рассматриваю эту меру только в применении к внешним устройствам. Осциллограф показывает плохие фронты на шине данных и у основного Z80, и на внутренней шине данных GS. На шине адреса фронты крутые.
Схему из "Чёрной вороны" пока не повторял. Ты имеешь в виду, что тебе не нравится идея с состоянием FF, и надо сделать логику включения буфера данных от арбитра IORQ?
|
|
| |
Black_Cat | Дата: Суббота, 18.02.2023, 19:40 | Сообщение # 23 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Цитата SKV ( ) Ты имеешь в виду, что тебе не нравится идея с состоянием FF, и надо сделать логику включения буфера данных от арбитра IORQ? Шина NemoBus затем и существует чтоб исключить конфликты . Чтоб небыло конфликтов, надо всего лишь правильно проектировать устройства в соответствии со спецификацией шины NemoBus, а не городить бредятину из костылей и подпорок. Правильно спроектированные устройства принципиально не могут создавать конфликты. Вот оригинальный GS спроектирован с нарушениями спецификации шины, и если эти ошибки не исправить, то возможны конфликты. И их надо устранять не горожением бреда на шине, а устранением самих ошибок в GS.
Цитата SKV ( ) Осциллограф показывает плохие фронты на шине данных и у основного Z80, и на внутренней шине данных GS. На шине адреса фронты крутые. Буферизацию данных можно делать несколькими способами. Как понимаю, ты пробовал классический, когда между процессором и всем остальным ставится буфер. Для КМОП Z80 это не имеет смысла, т.к. у него нагрузочная способность едва ли не лучше чем у самого буфера, поэтому для компов с NemoBus и рекомендуются КМОП процы, хотя для нМОП, возможно, такой способ и имел бы смысл. Недостатком этого способа является то, что мы практически не получаем выигрыша по коэффициенту разветвления, да ещё приходится городить плату-переходник в панельку процессора с установленными на ней процом и буферами.
В твоём случае проще разделить данные компьютера от данных NemoBus. В этом случае коэф. разветвления увеличивается в дважды, а нагрузка на процессор почти не увеличивается. Буфер конечно лучше ставить на мамке, чтоб не увеличивать ёмкостную нагрузку на проц, но при достаточно коротких проводах можно поставить и на плате NemoBus. Буфер АП6 брать 555 или попробовать 1531, 1530 серии. Переключать направления с помощью исключающего ИЛИ на входы которого подаются RD/ и BUSAK/, таким образом чтоб при захвате шины со стороны NemoBus, направление передачи буфера менялось на противоположное.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Суббота, 18.02.2023, 19:40 | Сообщение # 24 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Цитата Black_Cat ( ) На открытие буфера подать ноль, а вот переключение направления делается с помощью исключающего ИЛИ на входы которого подаются RD/ и BUSAK/, таким образом чтоб при захвате шины со стороны NemoBus, направление передачи буфера менялось на противоположное. Спасибо за ценную и доходчивую информацию, ряд нюансов я не знал. Про буфер данных я давно размышляю, что кроме Z80, нагрузку шины принимают и ROM, и RAM, и все порты чтения. Поэтому шину надо делить буфером так, чтобы образовались два сегмента (внутренний и внешний), как ты и написал.
Но вот по управлению АП6: включаем её на приём по RD, а ответить может память или порт на мамке. Необходимо включать буфер на приём не просто по RD, а по RD + {[IORQ не равно OUT IORQ] или DOS}. У меня за предполагаемым буфером в слотах Beta Disk, GS, Z-Controller. А также думал, не вынести ли за буфер Kempston, AY и порт 7FFD, которые у меня все на дополнительной плате. Порт 7FFD не стоит выносить, наверное?
Сообщение отредактировал SKV - Среда, 15.02.2023, 21:32 |
|
| |
Black_Cat | Дата: Суббота, 18.02.2023, 19:40 | Сообщение # 25 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Да, верно, там ЕЩЁ сложнее будет с открытием буфера, где-то так: ((CSR/ (+) RDR/) or (IORQ/ (+) IORQG/) or RD/)/
Добавлено (16.02.2023, 02:48) ---------------------------------------------
Цитата SKV ( ) А также думал, не вынести ли за буфер Kempston, AY и порт 7FFD, которые у меня все на дополнительной плате. Порт 7FFD не стоит выносить, наверное? Ну. в концепции Спектрума порождённой Альтвассером, порты мамки обязаны иметь наинизший приоритет. Но никто не запрещает дублировать какие-то порты внутренних периферийных устройств в устройствах NemoBus. У тебя например rd#FE дублируется даже два раза - в Sinclair Joystick и ZC :)
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Суббота, 18.02.2023, 20:12 | Сообщение # 26 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Цитата Black_Cat ( ) Арбитр можно сделать проще, т.к. спецификация NemoBus допускает подключение к IORQGE одного и того же слота любого количества устройств, если они между собою не конфликтят по дешифрации. В твоём случае http://www.nedopc.org/forum/viewtopic.php?f=35&t=21927 , Синклер джойстики и GS не конфликтуют. И в дешифрации джойстиков А11, А12 лишние, т.к. они и так подаются на джойстики: Валерий, спасибо за отделение темы, это просилось. И за то, что вникаешь в мои доработки. Но ты ошибаешься, полагая, что у меня присутствует третий порт #FE специально для Синклер-джойстиков. Это всё тот же единственный порт #FE на материнской плате Дельты, где джойстики подключены параллельно клавиатуре. Изображённая мной диодная сборка это штатный кусок схемы Дельты. Поэтому в твоей схеме Z-Controller будет перехватывать IORQ по пути в материнскую плату. Моя идея в том, чтобы разблокировать именно порт на материнской плате.
Сообщение отредактировал SKV - Суббота, 18.02.2023, 21:09 |
|
| |
Black_Cat | Дата: Суббота, 18.02.2023, 21:40 | Сообщение # 27 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Я правильно понял, что ты используешь Синклер джойстик и PC клавиатуру? И кстати, как у тебя формируется IORQGE BDI? Арбитр у тебя на плате NemoBus разведён?
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Воскресенье, 19.02.2023, 12:13 | Сообщение # 28 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Правильно, PC-клавиатура на ZC и Синклер-джойстики на штатном порту FE мамки. В моей схеме в момент нажатия любой кнопки джойстиков отключается весь ряд клавиш с цифрами у РС-клавиатуры.
IORQGE BDI это сигнал /DOS (инвертирующий выход ТМ2). Он равен единице при активации BDI.
Арбитр 1531ЛЛ1 разведён на плате со слотами, там же микросхемы перехвата джойстиков, за исключением первой ЛА2. -- Спасибо за учёт замечаний в схеме GS. Ты бы не хотел ещё контакты расширителя переименовать? Либо к стандарту расширителя 2МВ (нижний нечётные, верхний чётные). Либо, что на мой вкус самое удобное, к старому стандарту Мучкина: верхний А1..18, нижний В1..18. Сейчас сделано по принципу обхода микросхемы, против часовой стрелки - разъёмы так вроде не нумеруются.
Сообщение отредактировал SKV - Воскресенье, 19.02.2023, 12:28 |
|
| |
Black_Cat | Дата: Понедельник, 20.02.2023, 00:46 | Сообщение # 29 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Цитата SKV ( ) IORQGE BDI это сигнал /DOS (инвертирующий выход ТМ2). Он равен единице при активации BDI. А BDI под NemoBus? Т.е. его можно переставлять?
Цитата SKV ( ) Ты бы не хотел ещё контакты расширителя переименовать?Либо к стандарту расширителя 2МВ (нижний нечётные, верхний чётные). Либо, что на мой вкус самое удобное, к старому стандарту Мучкина: верхний А1..18, нижний В1..18. Сейчас сделано по принципу обхода микросхемы, против часовой стрелки - разъёмы так вроде не нумеруются. Да, микросхемная нумерация для PLD непривычна, при сквозной нумерации 1-36 обычно используется нумерация типа змейка. Кстати, тот, кто рисовал схему, был более технически грамотен нежели аффтары, и думал что аффтары нумеровали разъём именно змейкой, и тем самым добавил ещё больше неразберихи в нумерацию на схеме :) . Если переделывать, то более интуитивной является нумерация змейкой - это стандартная нумерация для PLD разъёмов. Нумерация по сторонам более наглядна, но интуитивно не понятно где какая сторона. И ещё надо учитывать при обоих методах, что для папы и мамы стороны меняются местами.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Понедельник, 20.02.2023, 11:47 | Сообщение # 30 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Цитата Black_Cat ( ) А BDI под NemoBus? Т.е. его можно переставлять? Нельзя. У меня все 3 слота разные: 1) Бета диск - вариант "НТК+", разъём ГРПМ1 2) GS - метрический разъём 3) ZC - дюймовый разъём
При наличии GS в слоте после входа в DOS по экрану начинали бежать точки. Этот эффект пропал, когда я заменил основной процессор с Z80A на Z80C0010PEC (вынул из GS, поставив Z80C0020PEC).
При наличии GS в слоте через несколько минут после запуска софта, использующего GS, начинает отваливаться ZC - перестают работать различные кнопки на РС-клавиатуре.
Всё это я связываю с длинной шиной. Приступаю к её укорачиванию.
Сообщение отредактировал SKV - Понедельник, 20.02.2023, 12:14 |
|
| |
Black_Cat | Дата: Понедельник, 20.02.2023, 17:53 | Сообщение # 31 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Имхо, ты слишком перестраховался с арбитрированием. Арбитрирование нужно если есть пересечение по дешифрации. У тебя такое пересечение есть только у Кемпстона, что устраняется добавлением сигналов DOS/&IODOS/ в его дешифрацию. Так что BDI вполне можно было уравнять по приоритету с мамкой, уменьшив задержку IORQ/. Можно было бы и ещё улучшить дешифрацию, но глобально не очень нужно, т.к. у тебя всё равно свободных слотов нет.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Понедельник, 20.02.2023, 18:27 | Сообщение # 32 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Это ценная идея, можно переделать разводку IORQ под мою конфигурацию. Считаешь, что задержка IORQ в моей конфигурации слотов может давать критические последствия? GS я доработал по твоей схеме для учёта сигнала RD.
|
|
| |
Black_Cat | Дата: Понедельник, 20.02.2023, 18:39 | Сообщение # 33 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| По идее, задержка не должна быть критической, но если есть возможность, лучше убрать. На Фениксе, например, и BDI и ZC на мамке с равным приоритетом, но с чуть более сложной дешифрацией чем у тебя.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Суббота, 06.05.2023, 17:05 | Сообщение # 34 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Валерий, ещё ошибка. 1) На RAM DD14, DD15 перепутаны местами ноги 1 и 26: в реальности A13 = 1 нога, A14 = 26 нога. 2) Не показан конденсатор 47 nF (номинал в моём GS) между GND и ногой 26 Z80 (Reset). На монтажной схеме это C21A = 100 nF.Добавлено (08.05.2023, 17:26) --------------------------------------------- Как я понимаю, этот конденсатор нужен в случае раздельного сброса GS. В противном случае его лучше выпаять.
Сообщение отредактировал SKV - Понедельник, 08.05.2023, 16:22 |
|
| |
Black_Cat | Дата: Воскресенье, 14.05.2023, 09:17 | Сообщение # 35 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Спасибо, исправлено.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Среда, 17.05.2023, 10:06 | Сообщение # 36 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Конденсатор C21A для раздельного сброса GS разработчики предусмотрели, а сопутствующий резистор 10K подтяжки Reset к +5V отсутствует. Так что не запускается GS в исходной схеме с раздельным сбросом.
Если для подтяжки шины данных применить резисторную сборку 9х10К, то в ней как раз остаётся один свободный резистор для подтяжки Reset.
Сообщение отредактировал SKV - Среда, 17.05.2023, 15:12 |
|
| |
Black_Cat | Дата: Среда, 17.05.2023, 17:37 | Сообщение # 37 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Честно говоря, этот конденсатор не нужен вообще, и ставили его вовсе не из соображений раздельного сброса. Для раздельного сброса надо иметь возможность разрывать соединение со сбросом на шине, а этого нет. Этот конденсатор прилепили исключительно затем, что на некоторых компах на формирователе сброса стояли конденсаторы порядка 0,1 мкФ, и их задержки явно не хватало, поэтому вместо того, чтобы выправить кривую схемотехнику на мамке, разработчики GS прилепили кондёр на GS. На современных компах с грамотной схемотехникой он не нужен, поэтому на схеме он обозначен, как необязательный.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Пятница, 19.05.2023, 20:59 | Сообщение # 38 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Но однако же в приложенном к плате руководстве на первой странице Stinger пишет: "...загрузить свой любимый модуль, сбросить Спектрум, загрузить ассемблер и творить под любимую музыку." Поэтому я и считал, что раздельный сброс предусмотрен схемой.
Z-Player использует эту функцию и обеспечивает подхват воспроизводимого в фоне мода. Эту же возможность декларирует Excellent Tracker. *** Вижу, ты удалил свою доработку перемножителя. Пришёл к выводу, что она неработоспособна? Ход с высвобождением DD38:4 за счёт сигнала RAM1 великолепен.
Сообщение отредактировал SKV - Суббота, 20.05.2023, 15:37 |
|
| |
Black_Cat | Дата: Суббота, 20.05.2023, 17:04 | Сообщение # 39 |
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
| Цитата SKV ( ) Stinger пишет: "...загрузить свой любимый модуль, сбросить Спектрум, загрузить ассемблер и творить под любимую музыку."Поэтому я и считал, что раздельный сброс предусмотрен схемой. Сбросить можно по разному, скорее всего имелся ввиду не аппаратный сброс, а программный через RST0 или RANDOMIZE USR 0.
Добавлено (20.05.2023, 17:14) ---------------------------------------------
Цитата SKV ( ) Вижу, ты удалил свою доработку перемножителя. Пришёл к выводу, что она неработоспособна? Она просто не нужна, от щелчка при включении можно избавиться гораздо проще.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
SKV | Дата: Четверг, 25.05.2023, 21:10 | Сообщение # 40 |
10h
Группа: Пользователи
Сообщений: 30
Статус: Offline
| Похоже, я нашёл разгадку головоломки своего GS. И похоже, что это принципиальная проблема схемы GS, поэтому выношу вопрос сюда.
Тактовый генератор на трёх элементах 1533ЛН1 формирует синусоиду размахом не более 3,5V, работая в линейном режиме. Это я наблюдаю у себя и в GS, и на материнской плате Дельты.
В Спектрумах частота генератора 14МГц, необходимая для видеоконтроллера, проходит далее через делители на триггерах ТМ2 и счётчиках (которые принимают лог. «1» от 2V), и достигает тактового входа Z80 уже с максимально возможным в ТТЛ размахом 5V.
Казалось бы, тактовый вход Z80 тоже работает на стандартных ТТЛ-допусках. Но ничего подобного! Согласно даташитов на ТТЛ, CMOS&NMOS варианты Z80, все эти процессоры имеют тактовый «0» ниже 0,4V и тактовую «1» выше 4,4V, и соответственно минимальную амплитуду 4V.
Резистор подтяжки этого сигнала к +5V ничего не даёт, т.к. сигнал просто поднимается над GND в диапазон 0,5..4V (в недопустимую зону уже и снизу), сохраняя ту же слабую амплитуду 3,5V.
Симптомы, в которых недостаточный размах Clock проявляется в моём GS: 1) При рестарте Z80 не в состоянии верно определить количество страниц в тесте памяти, выдавая каждый раз их разное количество. При дополнительном втыкании расширителя находит 0 страниц - но если впаять на плату электролит 470мкФ, то находятся все 62 страницы. 3) Разные экземпляры Z80 ведут себя в этом граничном режиме по-разному. 4) Острая чувствительность к касанию ножек Z80 щупом осциллографа (касание тактового входа увеличивает устойчивость, касание большинства выходов останавливает работу). 5) Нестабильность Z80 резко возрастает при небольшом снижении напряжения питания (на пару десятых вольта). На Спектруме с слегка повышенным напряжением выше +5V (даташит допускает до 5,5V для CMOS-версии) данный GS может запускаться (в этом случае мой GS исправно работал на базовой памяти, но втыкание расширителя его убивало). 6) Хаотичное поведение Z80 вследствие пропусков тактовой частоты при любой значительной вычислительной загрузке в виде обмена с плеерами и запуска модов. При этом слабая вычислительная загрузка исполняется безупречно: тесты портов, воспроизведение сэмплов. Z-Player определяет различные значения Clock (3,10,12 МГц), а также определяет классическую плату как ZXM-GS вследствие отсутствия ответа после команды отключения через несуществующий в GS-Classic порт.
Сейчас я в поисках схемотехнического решения по увеличению размаха Clock до полной амплитуды. А также очень любопытно, на каком размахе работают GS у других владельцев.
Прикладываю осциллограмму Clock, в генераторе 3 резистора по 470 Ом. Эксперименты показали, что работает одинаково на одном и двух резисторах, охваченных кварцем. Номинал резисторов на выходной размах не влияет (360, 470, 680). Конденсатор в разрыв между элементами намертво останавливает генератор (1000 пФ, 47 пФ). Резистор подтяжки пропорционально смещает выходную синусоиду вверх над уровнем GND (360, 470), не влияя на размах. --- Update. Участники чата предложили решение в виде замены 1533ЛН1 на серию 1531(F) или на КМОП-серии ACT, HCT, AC, HC с изменением обрамления. Удивительно, что изучая схемы (монтажную и принципиальную) и многолетние обсуждения по сборке-наладке GS, я ни разу не натолкнулся на поднятие этого вопроса.
Сообщение отредактировал SKV - Четверг, 25.05.2023, 22:51 |
|
| |
|