Пентагон в кубе
В этой статье я хочу представить ни много ни мало, а целый новый форм-фактор для плат Спектрум-совместимых ПК (который, конечно же, не сможет заместить другие форм-факторы, да и цели такой и не ставилось). Просто мне захотелось решить одну проблемку, возникающую при сборке очередной "доски" - куда это добро поместить? Можно, конечно, использовать старую газетку или ящик от обуви, но вообще-то хочется более аккуратного обращения с техникой и получения от неё удовольствия, в том числе и эстетического.
Поскольку у меня было несколько Спектрумов, в том числе и оригинальные модели, то сталкиваться с этой проблемой мне пришлось неоднократно. Для ZX Spider 128 я покупал реплику "резинки": корпуса от оригинального ZX Spectrum 48. Хорошо, что тогда товары из-за рубежа ещё можно было спокойно заказывать. Затем он же переехал в корпус от органайзера (даже дисковод впихнул туда же). И потом тот же многострадальный Спайдер оказался в корпусе от отечественного БПК Дельта-С 02 (сама плата там оказалась гнилая и я её пустил на эксперименты). Тут же, кстати, можно вспомнить, что кроме корпуса нужна ещё и клавиатура. То бишь мало сунуть плату в коробку - надо либо цеплять стандартную механическую клавиатуру, либо мудрить с переходниками на PS/2. Именно поэтому просторный корпус с хорошей клавиатурой от Дельта-С столь ценится любителями Спектрум-совместимых компьютеров, что даже появились проекты типа Дельтагона: Пентагона в корпусе от Дельты. Ну и другие модели отечественных Спектрумов тоже периодически страдают от подобного каннибализма. То есть проблема-то как бы существует, а я сам за несколько лет сделал несколько корпусов из пластиковых органайзеров, последний был для Ленинграда-2:
Существуют, конечно, корпуса стандартных и распространенных форм-факторов: всякие там micro-ATX, mini-ATX и даже mini-ITX. Проблема опять-таки в том, что не все платы туда спокойно помещаются и их можно удобно эксплуатировать. Понятно, что есть платы изначально заточенные под конкретный форм-фактор, тогда да - всё нормально, за исключением того, что вы получаете очередной ящик, который и денег стоит и не похож на ретро-ПК - а это сразу минус 100 очков к ностальгичности. Да, у меня есть ZX Evolution, собранный в корпусе mini-ITX, и он смотрится классно, но это, по сути, новодел, и к нему претензий на ретро-вид и не было изначально. А вот Пентагон в такой корпус запихнуть - ну такое.
В общем, начал я решать проблему методами ТРИЗ и фактически сразу вышел на идеальный конечный результат - это когда системы нет, а её функции выполняются. То есть - а что если сама плата будет так организована, чтобы корпус появился сам собой и служил нужной цели - защищать внутренности и иметь нормальный эстетический вид?
А ведь если вместо одной платы сделать несколько, расположить их многоэтажно и соединить по контуру сквозными коннекторами - то получится единая конструкция, с шинной структурой, которую можно легко надстраивать новыми этажами, без необходимости ограничений на слоты расширения (количество, расположение, размер). А эти коннекторы по сути и станут боковыми стенками и сформируют тот самый корпус (плюс нижняя и верхняя плата, формирующие дно и крышку). В итоге все компоненты внутри и защищены от внешнего воздействия, наружу выведены порты ввода/вывода, а сам компьютер может иметь неограниченные возможности расширения на общей шине.
Далее я перешел к возможной технической реализации. Надо было понять - возможно ли вообще сделать из Спектрума многоэтажную реализацию в виде нескольких плат (возможно ли вообще разместить достаточно компонент на этих платах, чтобы влезть в их минимальное количество) и можно ли это сделать недорого. Поэтому начал я с определения размера плат и способа их соединения, потому что это как раз максимально влияло на стоимость готового изделия. Я сразу сориентировался на дешевые коннекторы типа таких:
Преимущество у этого вида коннектора, на самом деле, ровно одно - он сразу и "мама" и "папа", т.е. не надо мудрить с разными отверстиями для верхнего и нижнего коннектора - он совмещается в одном и получается сквозная шина. Минусов у таких коннекторов тоже можно найти: например, если они длинные, то их непросто совместить, особенно если их несколько на плате, и если их постоянно дёргать - то они будут ушатываться и загибаться, да и контакт может стать не очень качественным (и что сложно будет протестировать). Но поскольку это всё умозрительно и исходя из опыта использования не очень длинных коннекторов, то может всё не так уж и плохо. Может наоборот сцепление будет таким, что платы невозможно будет без ножа разъединить.
Платы я, конечно же, выбрал двуслойные 100 на 100 мм, просто потому что при больших размерах сильно увеличивается стоимость производства. Поэтому надо было прикинуть - сколько примерно корпусов микросхем можно запихать на одну плату и возможно ли после этого сделать авторазводку в два слоя (вручную разводить я даже и не думал) и влезут ли все нужные сигналы на одинарную шину по контуру (при этом было понятно, что одна стенка точно будет для разъемов).
Вообще изначально я мечтал о том, чтобы прям все платы были взаимозаменяемыми. Однако, проведя немного времени за сравнением разных моделей Спектрумов я выяснил, что это нереально сделать просто из-за разных схем организации памяти: 48/128, с раздельным/общем полем и т.п. Видеочасть тоже зачастую бывает сложно связана с таймингами компьютера и нельзя просто выделив несколько сигналов, несущих один и тот же смысл, "порезать" по ним схему. С другой же стороны, разместить на одной платке 10 на 10 см сразу и процессорную часть, и память, и видеогенератор нереально. Значит надо их всё-таки резать, но вот шина для них должна быть специфична в зависимости от модели и совместима она будет только с похожими моделями (например, Ленинград и Дельта-С 02 на 52 микросхемах). Тогда логично было бы эту шину вынести на отдельный коннектор и использовать для него сквозные коннекторы только в нужных местах - для сбора "неделимой части" Спектрума. Ну и было понятно, что нужна общая шина для всех плат, на неё я реши вынести все сигналы, которые и так есть на внешней шине типа ZX BUS или NemoBUS, но прибавив к ним всё что будет необходимо или может пригодиться для вывода наружу.
В итоге получилась умозрительная многоэтажная конструкция из плат 10 на 10 см, с коннекторами по краям платы: по "верхней" стороне, где будет свободное место от входов/выходов, коннекторы использовать только для питания и земли, стороны слева и справа использовать в качестве общей шины, а нижнюю сторону в качестве специализированной шины для связки двух и более плат общими сигналами, по которым будет производится "резка" принципиальной схемы. Всего плат (со всеми "допами") я насчитал примерно 10 штук. А при учете высоты самой платы в 2 мм и высоты коннектора в 8 мм, получится аккуратный кубик с гранями по 10 см.
Далее я сел уже конкретно разводить Пентагон по платам. Покумекав со схемой, удалось разобрать её на несколько взаимосвязанных частей, причем часть из них оказалась крепко связанная друг с другом - это процессор, ПЗУ, память и видеоконтроллер. Их можно было друг от друга отделить, но как я писал раньше, связывали их специфические сигналы, которые отличались от каждой модели Спектрума, поэтому я их выводил на отдельную шину и повезло, что они вообще в неё влезли. В итоге получилось 4 минимальные платы:
1) CPU & ROMS: содержат в себе процессор, ПЗУ для компьютера, ПЗУ для принтера и, собственно, логику для принтера. В панели входов/выходов содержит только кнопку сброса и двурядную панель для подключения принтера (аналогичную той, которая ставилась на платы для LPT-порта). Версия 1.0 точно повторяет схему Пентагона 1991 года. В версии 1.1 добавлены дополнительные посадочные места для блокировочных конденсаторов (как и для остальных плат), сделан по другому сигнал IORQ/, который теперь формируется из сигнала IORQ/ от процессора и сигнала с шины IORQGE/ (внешнего IORQ/) через ЛЛ1.
2) Timing: основная часть логики, формирующая сигналы для памяти и видеоконтроллера. Версия 2.0 точно повторяет схему Пентагона 1991 года.
3) Memory: это просто чипы памяти + КП11. Версия 3.0 точно повторяет схему Пентагона 1991 года. В версии 3.1 изменение ровно одно - добавлен джампер для выбора верхней или нижней части памяти (1 пин микросхем), если используются чипы РУ7 или импортные аналоги.
4) Video: часть логики, отвечающая за формирование видеосигналов. Версия 4.0 точно повторяет схему Пентагона 1991 года, только видеовыход сделан в формате MiniDIN-9, на который выведено +5В (для переключения в режим RGB) и стерео-аудиовыход. В версии 4.1 добавлено формирование черно-белого композитного видеосигнала (ибо в Пентагоне синхросмесь не содержит в себе данных для видеовыхода), а в версии 4.2 добавлено подключение переходника RGB2HDMI (он у меня просто есть, поэтому просто сделал гребенку для его подключения). Если кому-то надо - можно просто развести этот переходник на плате, благо там деталей немного.
В итоге минимальный набор достаточный для запуска компьютера и получения хоть какой-то информации на экране будет занимать 4 платы. И выглядеть это должно как-то так:
Там где пропущены боковые стенки - это просто я 3D-моделей для 35-пинового коннектора не нашел, так-то там должны быть сплошные стенки. И вот на этом 3D-представлении прекрасно виден "косяк" с использованием таких невысоких соединителей плат: порты ввода/вывода могут быть высотой до 13-15 мм, тогда как коннектор даёт нам 8-9 мм. То есть придётся этот как-то купировать, если не найти каких-то более высоких аналогов. Именно поэтому пятой платой мне пришлось вснунуть отдельную плату для питания компьютера.
5) Power: содержит три входа питания. Слева USB Type-C с 2 резисторами для получения с него 5В. Справа - microUSB (ну вдруг заваляется зарядка для старого телефона). Посередине разъем питания ATX специально заведен для получения +12В со стандартного компьютерного блока питания. Если кто обратил внимание на плату видео, то станет понятно, что этот разъем размещается как раз над переходником RGB2HDMI, а вырезы в плате сделаны над выходами видеоплаты:
Вообще, на этой плате подразумевалось размещение ещё и повышайки с 5 до 12 вольт, но пока руки не дошли и есть опасения с размещением такой горячей штучки прям внутри корпуса без охлаждения. Поэтому есть вариант обойтись вообще без 12 вольт, если в контроллере дсисковода использовать импортный аналог ВГ93.
6) I/O: порты клавиатуры, спикера, входа и выхода с/на магнитофон. В версии 6.0 всё соответствует схеме Пентагона 1991, а вот в версии 6.1 плата уже добита переходником с матричной клавиатуры на PS/2 через матрицу MT8816AE, и с него уже через микросхему CH559L на USB:
Кто-то может сказать, что через CH559L можно сразу было бы сделать поддержку USB, но я вот в этом что-то не уверен, а такую цепочку которая предложена выше я уже тестировал и с ней всё хорошо. Из-за высоты коннекторов разместить порт PS/2 некуда, да он мне и не особо нравится - не подключить к нему беспроводную клавиатуру, а вот к USB можно и нужно. Также можно подключить и внешнюю клавиатуру Спектрума, но нужно будет подключать его через переходник, аналогично подключению в ZX Evolution.
7) Audio: чисто стерео-аудиовыход. В версии 7.0 подразумевается обычный AY, в версии 7.1 туда же добавлен Covox с усилителем, а в версии 7.2 я таки добил ещё и до TurboSound'а от NedoPC:
8) BDI: контроллер дисковода. Версия 8.0 точно повторяет схему Пентагона 1991 года, версия же 8.1 доработана сразу в нескольких местах: была сделана защита от отсутствия 12В для ВГ93 (на двух диодах), защита сигнала Magic от внешнего NMI/, добавлен внешний переключатель для отключения BDI (например, если воткнуть DivMMC, у которого нет сигнала его работы), так же реализована возможность переключения в нулевой банк ПЗУ и выбора - переключать ли в него по сбросу или при выборе в начальном меню Спектрума.
9) Joystick: тут просто два порта для джойстиков - Синклер и Кемпстон. В версии 9.0 Кемпстон самый стандартный, на 3 микросхемах, а вот в версии 9.1 реализована схема подключения обычного геймпада от Сеги с полноценной демодуляцией всех сигналов и поддержкой 3 кнопок, а не только одной для огня. Ну и плюс к этому добавлена на свободное место гребенка коннектора ZX BUS для подключения платы боком (у меня, например, DivMMC есть с такой гребенкой) или вывода шлейфа наружу для какого-нибудь тестирования.
10) Raiser: подразумевался как верхняя крышка с подключением уже имеющихся плат форматов ZX BUS (один краевой, одна гребенка) и NemoBUS (два слота, но не все сигналы заведены, а только аналогичные ZX BUS). Предусмотрена приоритетная раздача IORQ/ на разъемы и ввод IORQGE/ с них через микросхему ЛЛ1.
В итоге, как я и предполагал и получилось 10 плат, которые должны собраться в кубик. В общем-то можно уже заказывать и собирать, у меня даже набор микросхем уже подготовлен, но терзают смутные сомнения в наличии ошибок коммутации. Я уже пару раз пробегался с бумажкой по всем сигналам и пару раз таки обнаруживал ошибочки. Было бы крайне полезно пробежаться ещё разок, но никак не могу выбрать для этого столько времени. Если б кто посмотрел свежим взглядом со стороны - было б очень здорово. Сам проект в EasyEDA Std я сделал доступным для всех, так что можно смотреть и копировать себе. Это, кстати, позволит любому сделать свою плату расширения или вообще сделать комплект плат для другой модели Спектрума. Самое приятное в этом будет то, что нужно поменять только основу из 4 плат, остальные же платы (контроллера дисковода, аудио, клавиатуры, джойстиков) можно будет использовать и от Пентагона. Чем и хорош подобный дизайн - можно попробовать как будут стыковаться разные варианты реализации той или иной функциональности.
P.S. Короче - смотрите, проверяйте, предлагайте, критикуйте. Конструктивная критика, предложения и замечания однозначно приветствуются. А если будут желающие попробовать самим собрать и проверить концепцию - тоже пишите.
- dukeyusupov
- 0
- 310