User Tag List

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 49

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

  1. #21

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    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. #22

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

    По умолчанию

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

  3. #23

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

    По умолчанию

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

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

  4. #24

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

    По умолчанию

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

  5. #25

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

    По умолчанию

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

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

  6. #26

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

    По умолчанию

    Новый современный Вектор, особенно модульный на дешевых маленьких платах -- нужный проект!

    Мои коментарии:

    Нельзя ли сделать сразу одну большую память вместе с КД? Внешний квас -- это всегда был костыль, но в свое время он был необходим из-за дороговизны памяти. Может быть можно использовать накопленный опыт разработки устройств для Вектора и возможности современной схемотехники, чтобы сделать сразу большую память в одной микросхеме?

    Как бутстрапить Ардуиной пока не до конца понятно. Чтобы не думать не гадать, нужно посадочное место для страпона, куда ее можно прицепить перманентно -- я бы точно предпочел такой вариант, потому что батарейка сядет и иди вспоминай как там что загружается через 10 лет. Ардуина сможет бутстрапить хоть при каждом включении. Кстати, в некоторых устройствах бывает двойная батарейка, во время замены основной ее прикрывает другая.

    Кстати, современные батарейки больше не текут? Тут конечно нет риска потерять драгоценную историческую Амигу, но все же интересно.

    Ставить разъемы DIN5 на современную плату не очень практично. В 2020 году это значит искать собственно разъемы и паять ненужные переходники, не говоря уже о месте на плате, которое они съедают. Может быть можно придумать на плате двойные посадочные места под 3.5мм джеки?

    ВУ получается нужен фактически только для дисковода-твердодиска. В идеале эта часть тоже была бы еще одним слоем бутерброда и не требовала разъемов-динозавров. Тем более, что если память реализована в основной микросхеме, нужна только часть Комбодевайса для дисков и есть смысл его упростить, переделать, переразвести.

    J1 и J2 это джойстики как на Векторе-06ц.02? Было бы просто запредельно удобно иметь джойстики разведенными на плате под DB9 под контроллеры Atari/Sega. На схеме не обозначен тип разъемов, но символы как-то подозрительно похожи на DIN, поэтому я беспокоюсь.

    - - - Добавлено - - -

    Цитата Сообщение от Improver Посмотреть сообщение
    Хм... А он так умеет? Т.е. запитываться по шине адреса? Я таких экспериментов не ставил...
    Я думаю, что b2m имеет ввиду, что если прошивать бут при выключенном питании, проц окажется в ситуации, когда напряжение на ножках шины выше плюса напряжения питания (будет 0В). И такая ситуация даже у современных защищенных микросхем может быть ататат.
    Больше игр нет

  7. #27

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Нельзя ли сделать сразу одну большую память вместе с КД?
    Можно, и, наверно, даже нужно, но два момента мне не дали это сделать сразу: первый -- маловато места для схемы управления, надо бы ещё пару-тройку корпусов где-то разместить рядом с памятью... И второй -- схема ещё не протестирована, такие внедрения лучше побить на этапы.

    Цитата Сообщение от svofski Посмотреть сообщение
    Как бутстрапить Ардуиной пока не до конца понятно. Чтобы не думать не гадать, нужно посадочное место для страпона, куда ее можно прицепить перманентно
    Тоже можно сделать, в следующих версиях.

    Цитата Сообщение от svofski Посмотреть сообщение
    Кстати, в некоторых устройствах бывает двойная батарейка, во время замены основной ее прикрывает другая.
    А это можно сделать уже сейчас, добавить ещё один диод и разъём не трудно.

    Цитата Сообщение от svofski Посмотреть сообщение
    Может быть можно придумать на плате двойные посадочные места под 3.5мм джеки?
    Думаю, это не проблема. У меня "магнитофон" на ардуино сразу с разъёмом DIN, мне как раз было бы удобнее иметь его, а не джеки, для совместимости со старым Вектором, но если думать не только о себе, то два джека было бы многим удобнее.

    Цитата Сообщение от svofski Посмотреть сообщение
    J1 и J2 это джойстики как на Векторе-06ц.02?
    Да. У меня таких джойстиков нет, сделал для совместимости с разъёмами DIN, как в 02-м. Кстати, вопрос: а много ли программ под Вектор поддерживало эти джойстики? Мне помнится, джойстики для ПУ были более распространены. Может лучше будет сделать один разъём с подключением джойстика параллельно кнопкам клавиатуры? С ним любая программа будет работать...

    Цитата Сообщение от svofski Посмотреть сообщение
    Было бы просто запредельно удобно иметь джойстики разведенными на плате под DB9 под контроллеры Atari/Sega.
    У меня и таких джойстиков нет, но тоже можно будет переделать.

    Цитата Сообщение от svofski Посмотреть сообщение
    если прошивать бут при выключенном питании, проц окажется в ситуации, когда напряжение на ножках шины выше плюса напряжения питания (будет 0В). И такая ситуация даже у современных защищенных микросхем может быть ататат.
    А это может быть проблемой. Пока вижу один выход из ситуации -- ставить процессор в панельку и вынимать на время первой прошивки.
    Последний раз редактировалось Improver; 27.05.2020 в 14:34. Причина: дополнил вопрос про джойстики

  8. #28

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

    По умолчанию

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

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

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

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

  9. #29

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    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 почти всю плату займут... Это надо будет очень сильно трамбовать.

  10. #30

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Не, там только ВМ80+2хВВ55 почти всю плату займут... Это надо будет очень сильно трамбовать.
    Чипы с двух сторон, ноги с одной стороны вперемешку с ногами с другой стороны? Ну это так, в этом нет большого практического смысла, уж точно не для удобства наладки. Просто было бы ржачно иметь такой ультракомпактный Вектор-06ц.

    Расширитель портов итд, это сразу становится не "просто загрузить какой-нибудь ардуиной", уж проще ПЗУ.

    А не бывает SRAM, которая с одной стороны параллельная, а с другой SPI? Вряд ли конечно.

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

    - - - Добавлено - - -

    Цитата Сообщение от Improver Посмотреть сообщение
    Это вот такая у них схема?
    Вроде да, кстати MSX то же самое https://www.msx.org/wiki/General_Purpose_port
    Почему-то на этой странице написано, что Сега не то. Но у меня Сега и то, проверено и в Сеге и в C64 и в MSX и в Шадках.
    Больше игр нет

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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