Первый опыт сборки ZX Cube: "Пентагон в кубе"
Идею ZX куба я довольно долго вынашивал и пытался переразвести разные Спектрум-совместимые ПК (Ленинград-2, Дельта-С, Пентагон) в подобном форм-факторе, чтобы понять - насколько можно произвести декомпозицию разных схем, чтобы их можно было бы "подружить" и как-то взаимозаменять. В итоге я всё-таки понял, что нельзя так просто взять и все платы свести по всем сигналам даже для достаточно крупных блоков. Всё-таки, та же память бывает организована по разному: есть более "оригинальные" варианты с быстрой и медленной памятью или более привычный отечественным спектрумистам вариант с одинаковыми банками памяти. Видео-часть жёстко прибита к таймингам системы и нельзя сказать, что есть стандартный набор сигналов, которыми можно было бы обмениваться "видеокарте" с остальной частью спектрум-совместимого ПК.
Поэтому пришлось остановиться на 4-х основных платах, которые не работают без одной из них - это процессор и ПЗУ, тайминги, память и видеочасть. Всё остальное уже не "прибито" к таймингам и может быть подвешено на более-менее стандартную шину, типа ZX BUS, Nemo BUS. Поэтому я бросил идею сделать одну единую шину для Куба, чтобы все платы были бы взаимозаменяемы от любого другого проекта. Понятно, что нужна общая шина для всех плат, но нужна шина, которая бы связывала бы несколько плат вместе, чтобы можно было бы разводить не только платы, ограниченные квадратом 100 на 100 мм, но и многоэтажные, чтобы можно было бы разделить одну плату на несколько частей, но связать их своей отдельной шиной, не связанной с другими платами. После этого я бросил разводить сразу несколько машин и сосредоточился на одной - Пентагоне (просто потому что он у меня есть и я мог проверять все сигналы на нём).
В итоге я развёл полный набор: во-первых, полный аналог схемы Пентагона 1991 года, чётко ей соответствующий, а, во-вторых, доработанную схему, на основе тех опытов, которые я проводил на своём оригинале (см. видео о моём Пентагоне об этом) и содержащую 10 плат. Об этом я написал статью "Пентагон в кубе" где и рассказал о том, что я писал тут чуть выше и о принципах формирования этих самых плат. Надо сразу оговорить то, что какие-то вещи были сделаны просто потому, что у меня уже были соответствующие компоненты, например, тот же адаптер RGB2HDMI или аппаратное и программное обеспечение для обеспечения PS/2 и USB. Я эти компоненты протестировал со своим Пентагоном и был уверен в работоспособности этих решений и не стал что-то ещё больше "улучшать", чтобы не получить нерабочие платы. Очень не хотелось ошибиться и внедрять непроверенные решения. Тот же Ковокс и его совмещение с AY я сначала обкатал на "макетке" в Ленинграде-2.
Но это была только теоретическая часть. Пришло время собирать разбросанные камни, ну и собирать платы в реально работающее устройство. Сами платы я заказал в NextPCB (сейчас они тоже уже не обслуживают граждан РФ), и с доставкой 5 комплектов из 10 плат мне обошлись в 77 долларов (6700 рублей на тот момент), т.е. комплект плат для сборки получился по себестоимости где-то в 1300 рублей - не так уж и дорого для 100000 мм2 (0,1 м2). Кроме этого пришлось приобрести набор для сборки Пентагона (только без платы и ВГ93) где-то за 3 с чем-то тысячи - тоже недорого. Из-за того, что часть микросхем дублируются на разных платах, их пришлось докупать поштучно - это обошлось ещё примерно в 2 тысячи. Ну и хоть не самое главное, но основное - это сквозные коннекторы для плат, иначе всё было бы бесполезным. Я решил сэкономить: заказал на Алиэкспресс только половину нужных коннекторов для сборки основного ядра - ну а вдруг не взлетит? С этим я казалось бы прогадал - этот товар с Али пропал и я не смог его больше найти. Зато нашёл другие - и вот они гораздо лучше: чуть толще, хоть и длиннее. С первыми коннекторами я попал в непростую ситуацию - когда я уже всё спаял, то оказалось что они вроде как вставляются-то вроде плотно, но, как правило, один-два штырька плохо контачили: контакт либо вообще отсутствовал, либо становился плавающим. Пришлось наносить припой на все ряды этих штырьков, чтобы они с гарантией контачили. Со вторыми коннекторами таких проблем не возникало. С длиной тоже интересно - первые штырьки чуть короче, но оставляют пару миллиметров запаса, чего хватило для вентиляционных отверстий. У вторых - длина ещё больше, куб вытягивается в высоту ещё сильнее, зато пропадают слишком жесткие требования на высоту портов платы. Когда я рассчитывал по размеру первоначальных коннекторов, мне пришлось делать вырезы в платах, чтобы они не упирались в нижестоящие и из-за этого не все платы можно свободно тасовать по всему кубу. Поэтому более высокие коннекторы имеют свои плюсы и минусы.
Сами платы собирались без проблем и я, не торопясь, за час мог спокойно запаять одну платку и проверить её в работе. Правда до первой проверки пришлось подождать, потому что надо было собрать как минимум, 5 плат - 4 платы ядра Пентагона и плату с коннектором питания - она же "прокладка" над платой с видеочастью, потому что на ней высокие порты MiniDIN и RCA. Но после первого запуска стало сразу понятно, что без "косячков" не обошлось, поэтому надо провести работу надо ошибками и дальше я буду описывать те проблемки, с которыми столкнулся и что сделал для их исправления. Это касается только первого заказа "Пентагона в кубе": один комплект я сам собрал, остальные 4 тоже разошлись, так что это больше мне на память и для этих четверых :)
1. Плата с процессором, ПЗУ, а также интерфейсом принтера (потому как на основе схемы оригинального Пентагона 1991 года). При включении сразу выявлены следующие проблемы: на самой плате нет резисторных подтяжек для сигналов ПЗУ ROM2/ и DOSEN/, первый из которых переключает ПЗУ в режим поддержки 128 Спектрума (отвечает за переключение между банками ПЗУ с прошивками 48 и 128), а второй переключает ПЗУ в банк TR-DOS. При включении совместно с платой контроллера дисковода это не доставляет никаких проблем, потому что там эти сигналы и формируются, но вот если мы не хотим собирать эту плату, а пользоваться Пентагоном без дисковода, то эти подтяжки необходимы - они хотя бы позволят использовать 48 режим.
То есть 1 ногу основного ПЗУ надо подтянуть к ближайшим +5В через резистор 10 кОм, а 27 ногу к 28 ноге (тоже +5В) таким же резистором. После этого плата уже позволит запустить Пентагон, но только с ПЗУ 48 бейсика. Про включение 128 режима я упомяну в описании следующей платы.
Кроме этих пары резисторов я обнаружил уже более серьёзный просчет, который потом аукнется и на других платах. Я почему-то подумал, что сигнал OIRQ/ на схеме это аналог IORQGE/ - сигнал, который обычно подают внешние карты расширения для отключения внутреннего (для платы) сигнала IORQ/. И поэтому я его подмешивал к IORQ/ процессора, чтобы получить корректный /IORQ для платы. Но этого делать не нужно! Сигнал OIRQ/ это уже совмещенный сигнал, его не надо мешать с IORQ/ и тем более подтягивать к земле.
Поэтому на этой плате надо просто не вставлять три ноги (11, 12, 13) микросхемы обозначенной на плате как DD85,DD65 в панельку (или не запаивать). И, в свою очередь, соединить через резистор 320-500 Ом ноги 11 (IORQ/ с процессора) и 13 (IORQ/ на плату) той же микросхемы, если не подсоединять плату райзера (внешних устройств), потому что сигнал IORQ/ формируется на ней (после прохождения всех внешних устройств) и если эту плату не установить, то и IORQ/ на основную плату не придёт. Ну а дополнительный резистор R1' надо паять не на землю, а на +5В, чтобы подтянуть OIRQ/ к логической единице, а не к нулю (иначе у нас не будет работать LPT и кемпстон-джойстик).
2. Плата с логикой. Тут, в принципе, всё нормально, за исключением того, что сигнал ROM2/ (для режима 128) на ней формируется, но не выведен на основную шину. Если включать вместе с платой контроллера дисковода, то он и не нужен, поскольку там он тоже формируется, но вот без этой платы вы меню 128 Спектрума не получите.
|
|
Поэтому можно просто проводочком соединить 12 выход микросхемы DD62 с контактом ROM2/ на шине справа. В проекте я уже добавил для этого отдельный джампер.
3. Плата с памятью. Здесь вообще нет ошибок, и странно если б они вообще были, ведь к исходной схеме я добавил только джампер для выборки половинки памяти, если вместо РУ5 будет вдруг установлена РУ7 (или его импортный аналог, несколько штук которых у меня ещё есть). Поэтому этот джампер опциональный.
|
|
Сначала я вообще хотел повесить первый вход микросхем памяти на землю, но подумал - а вдруг какая-нибудь РУ7Д1 или РУ7Д2 попадётся (1 или 2 обозначают нижнюю и верхнюю половинку памяти, если ничего не напутал). Хотя РУ7Д я бы вообще не ставил в Спектрум - быстродействие у них очень низкое...
4. Плата с видеочастью. На самой плате ошибок нет, я только в EasyEDA изначально не поправил один резистор после копирования, но сейчас там уже всё верно. Для прямого подключения (одеть прямо на штырьки) адаптера RGB2HDMI нужна конкретная плата, я лично брал на Авито вот тут. Но можно и что-то другое приколхозить, наверное, я просто делал для того адаптера, что был у меня на руках.
|
|
Выход на HDMI опциональный, а так-то для стандартного использования на плате есть полноценный выход RGB в виде MiniDIN-9, в котором и синхра отдельно выведена и стерео-аудио. А также есть нормальный монохромный RCA, на полноценный PAL-кодер просто не нашлось места, при необходимости его, наверное, можно развести в виде отдельной платы, сигналы R, G, B, I, KSI, SSI и F выведены на общую шину.
5. Плата питания. Тут плата очень простая, я почему-то уделил ей мало времени и уже когда получил готовую, подумал - а что ж это я кнопочку включения не предусмотрел? Ну и зачем-то я поставил полноценный 16-контактный USB-C, хотя можно было бы обойтись и каким-нибудь 6 контактным, этот я паять замучался.
|
|
Я в итоге добавил к этой плате ещё плату зарядки для аккумулятора и сам аккумулятор, но пока что это всё крайне криво выглядит, придётся сделать хорошо и развести новую плату. Я вообще стараюсь всегда делать хорошо сразу, потому что плохо и так получается как-то само, и это как раз тот самый случай 😅 И, возможно, такая плата будет уже без всяких вырезов для портов предыдущей карты, если использовать более высокие переходные штырьки на ней.
В принципе, после собирания этих 5 платок их уже можно соединить в половину кубика и попробовать его включить. Без клавиатуры и магнитофонного входа это мало что даёт, но можно хотя бы запустить тест с 0-й банки памяти и проверить работу системы. Особенно удобно, что есть тест от LW и PLM, который позволяет переключаться между тестами нажатием кнопки сброса. Вот пример работы этого полукубика: Youtube, Telegram.
6. Плата портов ввода-вывода. А вот на этой плате придётся начать резать дорожки, хе-хе. Точнее, всего одну, но она важная для работы PS/2 адаптера. Я каким-то образом при разводке перепутал сигналы DATA и DAT (и немудрено, что при проверке пропустил).
Так что режем в одном месте (у сопротивления R3') и соединяем одним проводком. Кроме этого, можно кинуть ещё один проводок до сигнала RESET на общей шине. Изначально я не знал, будет ли корректно работать прошивка для клавиатуры и какой пин для этого потребуется, поэтому сразу делать не стал. Но теперь у меня уже есть проверенный скетч, поэтому можно кидать проводок от этого пина (MOSI):
Прошивать чип ATMEGA надо с помощью дешевого программатора (типа такого) через джамперы J1 прямо из Arduino IDE, привожу тут настройки для ATMEGA328P:

Прошивку я брал отсюда, но немного доработал, чтобы сброс был на кнопке F12 и приходил на сигнал MOSI чипа ATMEGA.
Чип CH509L прошивается прямо через впаянный USB-порт, но нужен кабель USB-A в USB-A. Прошивку можно взять тут, прошивать её надо с помощью программы WCHISPStudio: надо вставить кабель при зажатой кнопке SW1 и при следующих настройках программы прошивка произойдет автоматически:
После сборки этой платы уже можно вполне себе пользоваться Спектрумом - клавиатура уже должна работать, можно загружать игры с магнитофона и даже слушать звуки бипера. А что ещё надо? 😉 Вот пример загрузки игры с MP3-плеера: Youtube, Telegram.
7. Плата с аудио. Конечно же, нужен нормальный звук. Тут тоже обошлось без косяков, всё заработало с первого раза.
|
|
Синяя платка - это самая дешевая плата усиления звука (для Covox) работающая от 5 вольт, которую я смог найти на Алиэкспресс. Резисторы R20 и R21 подобраны под коэффициент усиления этой платы и нормальный (а не "китайский") чип AY или Yamaha.
Пример работы демки со звуком AY и барабанами в Covox: Youtube, Telegram.
8. Плата контроллера дисковода. Эта плата тоже заработала, но не без доработок. Во-первых, дополнительный диод VDNMI на шелкографии нарисован неверно, надо диод перевернуть. Но это мелочь, она влияет только на работу divMMC. И кстати. На плате есть пара джамперов. Внешний (рядом с портом для шлейфа дисковода) для включения и выключения контроллера дисковода. Если ближе к порту - контроллер работает, ближе к краю платы - контроллер отключается. Отключать его нужно как раз для работы divMMC - иначе у них будет конфликт и divMMC не будет работать. А джампер внизу в углу переключает два режима включения 0-й банки ПЗУ: в левом положении банка ПЗУ доступна из меню 128 Спектрума (например, запуск Proteus File Manager), а в правом положении автоматически при сбросе стартует программу из этой самой 0-й банки, например Fatall или Mr Gluk Reset Service.
Основная проблема оказалась с сигналом ROM2/, про который я уже ранее упоминал. То есть, если бы я даже собрал плату контроллера дисковода, то без её доработок всё равно бы ничего не заработало. Оказалось, что когда я продумывал полную отвязку контроллера дисковода от Пентагона, я никак не мог впихнуть ещё одну микросхему КР1533ЛА3, поэтому я решил, что она спокойно заменится на пару из ЛИ1 и ЛН1. Ну и, конечно же, в итоге я почему-то сигнал взял прямо с ЛИ1, а про инвертирование сигнала просто забыл. Ну тут надо порезать одну дорожку и кинуть два проводка и всё будет работать:
Вот пример работы дисковода: Youtube, Telegram. Кстати, после этого я купил и поставил для проверки эмулятор ВГ93 - тоже работает, никаких проблем пока не словил (прошивка в нём была именно для Пентагона). Так что вполне можно пользоваться, ибо оригинал КР1818ВГ93 требует +12 вольт, а сам по себе редок и дорог, поэтому я даже не стал морочится с повышайкой напряжения. Аналог (MB8877A) требует только +5В, но стоит ещё дороже, так что эмулятор в данном случае вполне себе вариант побаловаться с дисководом, не ввергая себя в большие траты.
9. Плата с джойстиками. Вот тут я начудил знатно, причем на совершенно простых вещах. Ну про косяк с OIRQ/ я уже рассказывал, тут он как раз и вылез в очередной раз, поскольку для дешифрации джойстика нужен IORQ/, но не простой, а после контроллера дисковода, т.е. OIRQ/. Пришлось резать дорожку от IORQ/ и кидать проводок с OIRQ/. Далее я просто забыл соединить направления вверх и вниз кемпстон-джойстика с микросхемой, но это устраняется парой проводков. Но затем я обнаружил, что последовательность сигналов KD0-KD4 для синклер-джойстика я вообще наоборот сделал! Для правой-то части клавиатуры они же идут наоборот, а я заложил прямую последовательность. Пришлось резать аж 4 дорожки и подпаивать напрямую KD0, KD1, KD3, KD4 (KD2 в любом случае на своём месте):
Но это ещё не всё. На микросхеме DD2 контакты 8, 9, 10 соединять не надо, ибо так работать не будет, в итоге и гребенка ZX BUS на этой плате не нужна (ну она тут и была чисто про запас). Но ещё оказалось, что у расширенного кемпстон-джойстика оказались перепутанными кнопки A с B и C с SELECT. Хорошо, что тут всего лишь надо перекрестить резисторы R5 с R6 и R9 с R10 соответственно:
И всё начинает работать, а вот и видеодоказательство: Youtube, Telegram.
10. Плата-райзер для внешних устройств. Она же - крышка куба. Всего одна микросхема, но она важна для функционирования всего компьютера, потому что с неё как раз и приходит сигнал IORQ/ для всех внутренних устройств. Без этого работать не будет, если, конечно, не соединить на первой плате (с процессором и ПЗУ) сигнал IORQ/ с процессора и IORQ/ на плате (как выше и предлагалось через резистор).
Но, как я уже упоминал, косяк с OIRQ/ добрался и досюда. Поэтому надо отрезать 11 выход микросхемы U1 от сигнала OIRQ/ и вместо него сигнал вывести на IORQ/:
Вот тогда всё нормально заработает. Сигнал IORQ/ с процессора поступит на микросхему U1 и на ZX BUS и последовательно принимая сигналы IORQGE/ с ZX BUS, NEMOBUS#1, NEMOBUS#2 и дополнительной гребенки ZX BUS выйдет в виде сигнала IORQ/ для остальной схемы, потом в контроллере дисковода превратиться в OIRQ/ и будет уже подан в контроллер печати и кемпстон-джойстик.
Я эту плату собирал не самой последней, поэтому протестировал её работу с divMMC, как только подключил клавиатуру: Youtube, telegram. Но ставить её лучше cверху, ибо разъемы должны быть всё-таки доступны снаружи, уж если они нужны. Ну и вырез на этой плате сделан как раз под порты джойстиков, ибо они здорово выпирают.
Подводим итоги
Итак, какие выводы можно сделать? Сама идея с подобным форм-фактором Спектрума оказалась вполне работоспособной, это как минимум. Кроме этого, это действительно оказалось ещё простым и удобным - и в сборке, и в тестировании, и в эксплуатации. Представьте, что вы собрали очередную плату Спектрума, и для неё не нужно покупать/печатать корпус и даже искать старую обувную коробку! При этом места этот Спектрум занимает мало - можно поставить хоть на рабочем столе, хоть рядом с ТВ. Да ещё и смотрится достаточно киберпанково:
Конкретная сборка Пентагона в таком формате меня порадовала тем, что всё что я планировал получить - я получил, т.е. не выкинул ни одной платы, все оказались работоспособными, хоть и после "напилинга". Все мелкие улучшения, которые я вносил в схему оригинального Пентагона ничего не испортили, а только улучшили. И если раньше нужно было оригинальную плату резать и мгтфить, то теперь это всё уже учтено и можно получить сразу нормальный результат. Понятное дело, что можно ещё улучшать и улучшать, но опять же преимущество проекта в том, что можно не печатать всю огромную плату и мучительно пересаживать все компоненты, а делать это по частям. Например, можно сделать вместо одного ПЗУ два и переключаться между ними. Это показалось мне полезным в оригинальном Пентагоне, где у меня сейчас есть одна ПЗУ с Proteus, а вторая, с помощью которой можно запустить iS-DOS с карты Compact Flash. Поэтому, я скорее всего сделаю подобную доработку и для этого проекта. А можно вообще собрать ядро другого Спектрума (например, того же Ленинграда) с просто менять его с ядром Пентагона, используя одни и те же верхние этажи башни куба, связанные одной только общей шиной.
Поэтому я и сам не собираюсь останавливаться конкретно только на одном проекте Пентагона в рамках Зет-Икс-в-Кубе, буду пытаться разводить и другие компьютеры, а также отдельные платы, типа NemoIDE и divMMC в этом же формате. И всех тех, кто увлекается сборкой и пайкой, призываю обратить внимание на подобный форм-фактор, попробовать собрать свой любимый Спектрум в таком формате или переразвести какую-нибудь железку, типа крутой аудиоплаты. Все мои платки для данного проекта давно уже доступны в формате EasyEDA и я сюда выложу текущие гербер-файлы, которые уже поправлены от всех вышеописанных проблем:
- PCB_ZX Cube Pentagon (дно)
- PCB_ZX Cube Pentagon CPU&ROMS 1.1
- PCB_ZX Cube Pentagon Timing 2.1
- PCB_ZX Cube Pentagon Memory 3.1
- PCB_ZX Cube Pentagon Video 4.2
- PCB_ZX Cube Pentagon Power 5.0 или PCB_ZX Cube Power 5.1
- PCB_ZX Cube Pentagon IO 6.1
- PCB_ZX Cube Pentagon Audio 7.2
- PCB_ZX Cube Pentagon BDI 8.1
- PCB_ZX Cube Pentagon Joystick 9.1
- PCB_ZX Cube Pentagon Raizer 10.1
Также я открыл проект для отдельных плат для данного форм-фактора, сюда я буду добавлять то, что разработаю дополнительно, и что может быть использовано в любой сборке. Я даже сделал разводку для платки-макетки, чтоб можно было с удобством и разрабатывать что-нибудь своё до реализации в конкретной схеме. Берите, копируйте, делитесь (и размножайтесь), никаких ограничений на этот формат нет. Новый стандарт может взлететь только с поддержкой сообщества, и я надеюсь на то, что она всё-таки появится, и начнется новый виток популярности Спектрума в нашей стране 🤗
- dukeyusupov
- 0
- 60





















