User Tag List

Показано с 1 по 10 из 49

Тема: Графическая плата Вектора

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Продолжаю рисовать новую схему Вектора:



    В этой схеме я решил реализовать достаточно смелое решение -- отказался от ПЗУ и сделал ОЗУ энергонезависимым, на батарейке. Да, это вызовет проблемы с начальным стартом нового Вектора, но зато это значительно сокращает площадь плат, да и потом можно будет без дополнительных программаторов менять прошивки.

    Как я себе это представляю:
    - В микросхеме SRAM (128кБ) по адресам 10000h-1FFFFh располагается ОЗУ Вектора, а в 00000h-0FFFFh будет располагаться та самая область с прошивкой, причём в первых 32кБ будет обычная прошивка, а в верхней памяти -- загрузчик для неё (ещё требуется его написать).
    - Запускаем на Векторе некую программку, она зацикливается в ожидании нажатия клавиши и в это время убираем перемычку JP1 -- Вектор начинает работать с областью ПЗУ, как с основной памятью и выполняет программу загрузчика.
    - Грузим содержимое ПЗУ в первые 32кБ памяти (через магнитофонный вход или через ПУ). После загрузки возвращаем перемычку JP1 и перезапускаем Вектор по БЛК-ВВОД.
    Собственно, всё... Единственная проблема будет -- записать прошивку в микросхему SRAM после первой сборки (или замены батарейки), но, думаю, это не сложно будет сделать ардуиной.

    Кстати, дополнительный плюс такого решения: если на Векторе будет запущена программа, которая умеет рестартовать по БЛК-СБРОС, то она сохранится со всеми данными при выключении питания.

    Есть ещё особенность работы с памятью в этой схеме: данные в верхние 32кБ Вектором будут писаться одновременно и в свою, и в память графической платы, а читаться только из своей памяти.

    В итоге вся схема разместилась на двух платках 100х100мм: одна с процессором, памятью и обвязкой, а вторая с м/с ввода-вывода, таймером ВИ53, портом ПУ и двумя джойстиками -- всё остальное, кроме ВУ. Собственно, выход ВУ сделать тоже не проблема, почти все необходимые сигналы уже есть, но возникают определённые сомнения... Для работы с историческими КД нужно сделать RAS/CAS, а также схему регенерации памяти, но много ли таких девайсов осталось? Для всего остального эти сигналы не нужны и сейчас гораздо проще будет сделать платку с КД на SRAM, даже с двумя... Поэтому, думаю, сначала протестить эту новую схему, а потом уже дополнить её платой с ВУ, если будет нужно.

    Да, ещё один момент -- клавиатура. Пока что она сделана в полном соответствии с Векторовской (только разъём в два ряда, для компактности), дальше нужно будет либо делать известный переходник на PS/2 на атмеге, либо полностью повторять плату клавиатуры Вектора.

    Архив со схемой, разводкой двух плат и двумя гербер-архивами для их изготовления плат: CPUVektor3.7z -- новая схема тут
    Последний раз редактировалось Improver; 01.04.2021 в 15:48. Причина: убрал неактуальную схему

    Этот пользователь поблагодарил Improver за это полезное сообщение:

    svofski(27.05.2020)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Запускаем на Векторе некую программку, она зацикливается в ожидании нажатия клавиши и в это время убираем перемычку JP1 -- Вектор начинает работать с областью ПЗУ, как с основной памятью и выполняет программу загрузчика.
    - Грузим содержимое ПЗУ в первые 32кБ памяти (через магнитофонный вход или через ПУ). После загрузки возвращаем перемычку JP1 и перезапускаем Вектор по БЛК-ВВОД.
    Как запускаем, как грузим? Я дико извиняюсь, но проц тебе так просто шину данных не отдаст. Лучше HOLD привязать к нулю через резистор, и пусть ардуина рулит этим сигналом (и получает HLDA). Тогда ардуина сама сможет загрузить что угодно и куда угодно.

  4. #3

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Как запускаем, как грузим? Я дико извиняюсь, но проц тебе так просто шину данных не отдаст. Лучше HOLD привязать к нулю через резистор, и пусть ардуина рулит этим сигналом (и получает HLDA). Тогда ардуина сама сможет загрузить что угодно и куда угодно.
    Начальную запись можно делать проще, прошивать при выключенной схеме. Для этого на плате сделал точку подключения +5В только на м/с памяти и перемычку JP2 для подачи сигнала СЕ2. Выводы СЕ1, ОЕ и WE будут и так на нуле. Думаю, сработает...

    А потом всё будет работать, как обычная программа в памяти Вектора, без всяких дополнительных ардуин.
    Последний раз редактировалось Improver; 27.05.2020 в 12:41.

  5. #4

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    прошивать при выключенной схеме
    А проц не обидится, если +5В будет идти на него через шину адреса, а не через VCC, да к тому-же без +12В?

  6. #5

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    А проц не обидится, если +5В будет идти на него через шину адреса, а не через VCC, да к тому-же без +12В?
    Хм... А он так умеет? Т.е. запитываться по шине адреса? Я таких экспериментов не ставил...

    Цитата Сообщение от b2m Посмотреть сообщение
    Как запускаем, как грузим?
    Уточню ещё по этому моменту, как это может выглядеть. Делаем и запускаем на Векторе программку, работающую с адреса 08000h такого вида:
    Код:
    08000h: DI
    08001h: JMP 08000h
    Она зацикливается и работает до отключения перемычки JP1, как отключили перемычку -- банк памяти заменяется на предназначенный для ПЗУ и оттуда, с указанного адреса, запускается загрузчик, начинающийся с четырёх NOP-ов (чтобы не конфликтовал с той программкой). Дальше всё, как написал ранее...

  7. #6

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,308
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Лучше HOLD привязать к нулю через резистор, и пусть ардуина рулит этим сигналом (и получает HLDA). Тогда ардуина сама сможет загрузить что угодно и куда угодно.
    Вот может быть лучше так? Я единственное что не знаю, у какой ардуины есть столько I/O, чтобы без особых переделок столько линий потянуть?

    После переноса ivagor-ом джойстиков на порт 2e/2f для Шадков у меня сложилось впечатление, что обработка джойстика почти во всех играх на Векторе однотипная и при желании относительно безболезненно патчится с одного на другое. Главное, чтобы они были. Что до разъемов -- стандарт Atari (Sega его расширение для нескольких кнопок) это правда де-факто стандарт и таких геймпадов и джоев на любой барахолке до сих пор наверное пруд пруди.

    Надеюсь, что схема получит долгую и счастливую жизнь и какую-то более позднюю инкарнацию можно будет собрать. Мелочи типа типоразмера разъемов можно и переразвести.

    Шальная мысль -- а если сделать 4 слоя, физически не получится все чипы утрамбовать в одну 100х100 ? =) Какая то часть площади как раз освободится от межплатных разъемов.
    Больше игр нет

  8. #7

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,066
    Спасибо Благодарностей отдано 
    584
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Вот может быть лучше так? Я единственное что не знаю, у какой ардуины есть столько I/O, чтобы без особых переделок столько линий потянуть?
    Я думаю над вариантом использования расширителя портов PCF8575 или MCP23017 для подключения шины адреса на ардуину. Ещё вариант -- собрать шестнадцатиразрядный счётчик и с ардуины просто подавать на него такты для полного перебора адресов. В любом случае, это решаемо даже в виде макета, "на соплях".

    Цитата Сообщение от svofski Посмотреть сообщение
    Что до разъемов -- стандарт Atari (Sega его расширение для нескольких кнопок) это правда де-факто стандарт и таких геймпадов и джоев на любой барахолке до сих пор наверное пруд пруди.
    Это вот такая у них схема?

    Цитата Сообщение от svofski Посмотреть сообщение
    Шальная мысль -- а если сделать 4 слоя, физически не получится все чипы утрамбовать в одну 100х100 ? =) Какая то часть площади как раз освободится от межплатных разъемов.
    Не, там только ВМ80+2хВВ55 почти всю плату займут... Это надо будет очень сильно трамбовать.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 198
    Последнее: 26.04.2020, 13:05
  2. Ответов: 23
    Последнее: 15.04.2019, 17:16
  3. Графическая библиотека
    от alone в разделе Программирование
    Ответов: 81
    Последнее: 31.01.2016, 20:37

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •