Recent Changes - Search:

Главная страница

Загрузки

Домашний WiFi роутер

Проекты

Статьи

Брошенные проекты

GitHub

SourceForge

edit SideBar

Союз-НеонПК-1116

Союз-НеонПК-11/16

Сборка клона последнего советского компьютера.

Начало

Сборку Союза я начал примерно в 2019 году. Очень долгое вряемя собирались необходимые детали. Пришлось даже купить прогамматор, чтобы прошить необходимые ПЛМ-ки. Поскольку достать микросхемы ПЗУ 1801РР1 не представляется возможным, немалое количество времени заняло исготовление замены на базе проекта РЕмулятор за STM32. Также, был приобретен раздолбаный УКНЦ ради корпуса и клавиатуры. Пришлось изрядно попотеть, чтобы их отреставрировать. Теперь корпус ждет вырезание дополнительных отверстий под разъемы и покраску.

Разумеется, когда плата была собрана - ничего не заработало. Единственное, что сигналы синхронизации на монитор шли корректные и какой-то мусор на экране я увидел. Плата была отложена на год и только сейчас я решил все-таки ее запустить. К сожалению, селаь это не так просто, так как компьютер был спроектирован на пределе тогдашних технических возможнастях и неработать может все что угодно:

  • ЦПУ запускается на повышенной частоте: 8МГц вместо 5МГц. Не каждый экземпляр может работать на такой скорости.
  • очень низкое качество ПЛМ-ок. Мало того, что программируется процентом 70%, так и успешно запрограммированные могут работать некорректно. Кроме того, частота 14МГц для них великовата: чипы греются как бешенные, поэтому некоторые экземпляры могу вести себя корректно в статическом режиме, но выдавать ошибки в динамическом.
  • ПЗУ эмулируется на STM32. Во первых, для запуска STM нужно время, которое может оказаться больше времени сброса ЦПУ. Поэтому, когда процессор обращается за первой инструкцией, ответа он может не дождаться. Во вторых, хотя эмулятор и был проверен на программаторе, не факт, что он успешно заработает на шине Н1806ВМ2.
  • невозможно отдельно протестировать СБИС переферии. Их много, они старые и вполне могут быть нерабочими.

Поэтому, я решил, собирать и тестировать компьютер по частям. Вместо процессора я подключил контроллер ATmega16 с кучей выводов и реализовал протокол шины Н1806ВМ2 для одиночного чтения/записи - этого должно хватить. Теперь, поскоьку я уверен в работе контроллера, я могу тестировать все блоки машины по частям:

  1. Cамое простое - ПЗУ. У нее очень простая схема выборки и для нее не нужно ничего настраивать. Однако, это единственная кастомная деталь, и в ее правильной реализации я до конца не уверен.
  2. CSR решистры контроллера ОЗУ и видеоадаптера. Сами устройства здесь пока не тестируются. Мне важно понять, работают ли схемы доступа к этим регистрам и не испорчен ли микросхемы статической памяти.
  3. Контроллер ОЗУ и схема маппинга. Попробую настроить оперативную память и потестировать ее чем-то похожим на Memtest86.
  4. Самое интересное - видеоадаптер. Настроить видео в самом промтом режиме и вывести тестовую картинку. Затем, проверить как работают другие режимы и окна.
  5. Проверка переферии. Всю переферию проверить не получится. Остановлюсь пока на контроллере прерываний, часах RTC и клавиатуре.

Всего вышеперечисленного уже бужет достаточно, чтобы запуститься. Проверку дисковых контроллеров, параллельного и последовательного портов, контроллера мышки, звуковых генераторов можно будет сделать позже.

После того, как основная переферия заработает, можно будет приступить к подбору процессора. У меня на данный момент имеются два копруса Н1806ВМ2, но неизвестно, выдержат они 8МГц или нет. По словам продавца: вероятность 50%. Возможно, имеет смысл проверить процессор отдельно перед монтажом, но я не знаю, как это сделать.

26.07.2021

Подключил Atmega16 вместо ЦПУ. ToDo: добавить фотографию

ПортСигналНаправлениеПримечание
PORTADATA/ADDR loIN/OUT 
PORTBDATA/ADDR hiIN/OUT 
 
PORTC[0]~RPLYIN 
PORTC[1]~DOUTOUT 
PORTC[2]~SYNCOUT 
PORTC[3]~DINOUT 
PORTC[4]~WTBTOUT 
PORTC[5]~ARINНе исп.
PORTC[6]~ACLOINНе исп.
PORTC[7]~DCLOINНе исп.
 
PORTD[2]~INITOUT(???)
PORTD[3]~VIRQIN 
PORTD[4]~HALTIN 
PORTD[5]~SELOUT 

Тест показал странную вещь: при чтении из ПЗУ зануляется младший байт данных, но адрес при этом передается нормально. Пришлось выпаивать все микросхемы, кроме ПЗУ, которые находились на младших битах (а это - практически вся перефирия), но проблема осталась. Оказалось, что всему виной резисторная сборка RN1, которая подтягивает шину данных к земле. Самое интересное, что на оригинальной плате ее нет, а на новодельной схеме отмечено, что данная детать припаивалась навесным монтажом. Отсюда возникает три вопроса:

  1. зачем вообще добавили эти резисторы;
  2. почему их добавили только на половину шины;
  3. как наличие этих резисторов влияют на GPIO порты микроконтроллера STM32.

Хочу подключиться осциллографом к одной из линий адреса/данных и посмотреть, что там проиходит.

16.04.2022

Увы, проект пришлось закрыть. Год по нему ничего не делал, и даже как-то не тянуло. Остатки железа продал: может новому хозяину повезет больше.

Ссылки

Edit - History - Print - Recent Changes - Search
Page last modified on July 12, 2022, at 11:40 PM