Spectrum - начало
Давно хотел собрать свой spectrum, но всегда что-то меня останавливало. Сложно найти ОЗУ РУ5/РУ7, хотя на али можно нарыть зарубежные аналоги, много рассыпной логики, большая печатная плата и тд и тп.
А с недавнего времени я увлёкся ПЛИС. Немного поигравшись со светодиодами, счётчиками и тому подобным, я решил, что надо сделать что-то более серьёзное. И вот тогда я опять вспомнил про spectrum.
В сети я нашёл реализацию 48К машины на "софтовом" процессоре, но меня это не устроило по нескольким причинам. Во первых хотелось поиграть с настоящим "железным" Z80, во вторых, тот проект был на VHDL, а я уже пристрастился к Verilog, а в третьих - спортивный интерес и желание потешить своё эго.
Поэтому на небезизвестном китайском сайте были заказаны несколько процессоров Z80 и ОЗУ SRAM (быстрая с временем доступа 10ns). В качестве ПЗУ я сразу планировал использовать флешку от биоса старой материнки (там параллельная флеш память, в моём случае W29C020 на 2 мегабита). Всю остальную логику я решил реализовать в ПЛИС с одним небольшим НО. Логические уровни современных плис (за исключением некоторых CPLD Xilinx) максимум 3,3 вольта, а в спектруме - пятивольтовая логика. Поэтому ещё были куплены преобразователи уровней типа lvc16245 (16-разрядная АП6 или хх245 с раздельным питанием А и Б входов/выходов, если по простому).
Когда все детали были у меня в руках, начался процесс изучения принципиальной схемы и принципа работы ZX и самого Z80, благо информации в сети полно.
Затем я нарисовал и сделал первый вариант печатной платы (к сожалению, не сохранилась для истории, хотя тоже была работоспособной).
Накидал блок-схему своей задумки:
После долгих мучений, испытаний, проб и ошибок - наконец то получил заветную на "1982 research ..... LTD".
От первого успеха - радости не было предела.
В итоге получилась голая машина 48К с кучей штырьков для подключения периферии.
Потом последовала череда переделок-доработок.
В итоге получилось сие творение (зажигалка исключительно для оценки масштаба):
Это последний, точнее крайний вариант платы, который не обошёлся без ошибок. Размеры 150х100 мм, не считая выпирающей части платы ПЛИС.
Данный вариант - машина 128К с раздельным видео ОЗУ (реализовано на встроенных в плис ячейках M9K), VGA выходом с разрешением 640х480 (основная область 512х384б остальное бордюр, для этого пришлось сделать встроенный скандаблер). Мне удалось реализовать порт FE (не всё), порт 7FFD. Из порта FE реализован магнитофон, порт клавиатуры. С бордюром пока не сложилось, точнее, если включить бордюр, то он работает, но почему-то его цвета накладываются на атрибуты основного изображения.
Также я реализовал на отдельной плате порт AY-3-8910 (пока не проверил, так как не получил сами сопроцессоры) + бипер, эмулятор PS/2 клавиатуры без WAIT-ов на CPLD и stm32 - всё собственные разработки (конечно, кое-что подсмотрел).
Из особенностей - нестандартная частота процессора (~3,9 Mhz) из-за пиксельклока VGA, хотя пробовал и на 3,5 Mhz, но разрешение VGA ух очень экзотичное, что-то вроде 700х420. При том INT не выходит за пределы нормы, что было проверено соответствующей программой.
Дальше, если будет интересно, буду публиковать схемы, платы, прошивки и сырцы.
Также нужна помощь знатоков, не могу справиться с бордюром, точнее не могу отловить глюк.
Жду коментарии, адекватную критику, предложения и пожелания.
Комментарии
Трекбэков
Всего трекбэков 0
Ссылка трекбэка: