Прикоснемся к магии или как я вступил в ряды MISTического общества.
Ниже предложен рецепт приготовления деликатеса, позволяющего Вам попробовать различные 8 и 16-битные приставки и компьютеры. Основное же блюдо для меня miniMIG - аппаратный эмулятор Амига с графикой OCS/AGA/RTG и CPU до 68020 в 20 раз быстрее стандартной A600.
В свои студенческие годы после ZX-Spectrum (Пентагон-128 с дисководом) я прикоснулся к волшебному миру Амига, сначала A600, затем A1200, аксели от 030-40MHz до PPC603+040. И вот, совсем недавно я узнал о Apollo Vampire (цена конечно кусачая) решил поискать что-нибудь подобное. Нашел несколько вариантов, но самый интересный, на мой взгляд, проект MIST доделанный Павлом Рябцовым. Проштудировал ветку Сборка, настройка платы MiST v 1.31 , заказал на сайте CHIPkin печатную плату и немного деталей. Остальное было куплено на Али и "Чип и Дип", по мере прибытия деталей, начал сборку, о чем и хочу рассказать вам. Если Вы являетесь таким же OLD-фагом старых компьютеров, как и я, пожалуйста, приготовьтесь к прочтению.
1. Собираем цепь питания и индикации. Устанавливаем на плату силовые микросхемы IC1 LM3940IS-3.3, IC2 1117-2.5V, IC4 1117-1.2V, электролиты C4, C6, C7, C10, C19, C22, также можете накидать парочку блокировочных конденсаторов на 100n. Припаяем цепь индикации красный LED3, зеленый LED2, желтый LED1 светодиоды и токоограничивающие резисторы R3, R7, R45 на 220 Ом к ним. Питание я подавал на con jack DC +5V уж больно microUSB по мне хлипенькие, кнопку поставил 6 контактную, хотя видел и вариант с угловой на два. Не забудьте припаять 0 резистор R1 с обратной стороны платы или кинуть "соплю" на контакты. При подключении питания и включении кнопки должен засветиться зеленый светодиод. Проверьте напряжения со стабилизаторов 3.3V, 2.5V, 1.2V. Вот что у меня получилось :
2. Запаиваем IC7 AT91SAM7S256 и все что нужно для её запуска транзистор T1 IRLML6402, резисторы R20, R46-R50, R72, R76, R78, R80, R82-R85, конденсаторы C33, C42-C48, C57-C64 . В конце припаяем кварцевый резонатор Q3 18.432MHz, кнопки S2-S4, двойной dip переключатель S5, разъем SV3 для вывода отладочной информации, гнездо ARM JTAG SV4 и перемычку JP1. Разъем microUSB я подобрать не смог, припаял провода от сломанного кабеля, уже позже примерил miniUSB - место именно под него.
Теперь можно приступить к программированию ARM, для этого установим SAM-BA v2.18 (for Windows) качаем с сайта www.microchip.com. Первое включение на 5сек провести с замкнутой перемычкой JP1, в это время должен проинициализироваться USB загрузчик и при повторном включении без перемычки в диспетчере устройств появится новый USBSerial/COMxx порт. Запустите программу SAM-BA, выберите нужный COM порт, тип процессора и жмите Connect.
В следующем окне сначала выбираем Erase all flash жмем Execute, затем выберите файл прошивки поновее и нажмите кнопку Send File. Подробнее читайте мануал HowToInstallTheFirmware, там же найдете о программировании через JTAG.
Все вышеперечисленное у меня получилось лишь на второй плате с МК rev. D, заказанным из магазина "Чип и Дип", первую плату с контроллером rev. C заказанным с Алика я тоже потом завел, замкнув вывод ERASE с 3V3 на 5сек. Возможно контроллер был б.у. поэтому и потребовались подобные фокусы.
3. Пора паять обвязку SD карты резисторы R77, R79, R81, дроссель L1, заодно контроллер USB U1 MAX3421E, резистор R65, конденсаторы C36, C40, C41 и резонатор Q2 12MHz. Не забываем припаивать конденсаторы на 100nF, вот что у меня получилось :
Подключите к SV3 USB-COM адаптер типа такого :
Если у вас все запаяно правильно и установлена карта, в терминалке увидите :
Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
Version ATH201126
SDHC card detected
spiclk: 24 MHz
usb_init
max3421e_init()
Chip revision: 13
busprobe()
usb_reset_state
...
У меня упорно выдавался "Chip revision: ff" на второй плате, пока я не прозвонил все ноги. Оказалось не пропаял одну из землянных ног MAX3421E.
4. Раз все нормально, распаиваем USB HUB IC6 TUSB2046B, резисторы R51, R53, R55, R56, R66-R75, конденсаторы C35, C37, C38, C39, C49-C56. Обратите внимание, что номинал C38, C39 100pF, в BOM листе с сайта zx-pk.com ошибка, они там указаны 100nF, с такой ёмкостью USB HUB работать не будет. Также вместо резисторов R57-R64 в моем варианте платы место под резисторные сборки на 4 резистора по 15КОм с первым общим. Исправленный список деталей смотрите в полезных ссылках. В конце установим кварц Q1 6MHz, термопредохранитель R54 на 1.1A и двухэтажные USB гнезда :
5. Теперь, самое интересное, FPGA IC5 EP3C25E144. Здесь поаккуратней, на одной плате у меня был непропай с нее на CAS ОЗУ, пришлось любоваться графическими артефактами, пока не прозвонил все ноги. Необходимый минимум для ее запуска генератор OSC1 на 27MHz, дроссель L1, резисторы R4-R6, R8-R10, R12-R15, как обычно конденсаторы по питанию на 100nF.
C обратной стороны платы припаяйте мощным жалом подложку и блокировочные конденсаторы, без пропайки подложки у меня корка зашивалась с ошибкой.
Если FPGA рабочая и не перемаркировка, в дебажном выводе читаем лог про FPGA:
FPGA bitstream file opened, file size = 385575
[************************]
FPGA bitstream loaded
FPGA configured in 1918 ms
ident = a3
Identified MiST core
Код ident зависит от корки, для TurboGFX он равен a4, главное чтобы не было ошибок.
6. Теперь можно запаять память IC3 первоначальный вариант MT48LC16M16A2 (у одного человека увидел H57V2562GTR-75C). SDRAM заказал с префиксом 75D, так как увидел на схеме такую строчку :
SDRAM model is MT48LC16M16A2, speed variant -75 (tAC=6ns, tOH=3ns)
Последние корки MiniMIG c марта 2021г уже поддерживают 64Mb на борту MIST-а, необходимо обновить Firmware версии не ранее 210330 и дописать в mist.ini строчку :
[mist]
...
sdram64=1
...
Пришлось сдувать MT48LC16M16A2 и запаивать MT48LC32M16A2-75 (можно ISSI IS42S16320D-6TL), но оно того стоит :
7. Распаиваем видео DAC однопроцентные резисторы R22-R42 и на синхро R16, R17 и конечно X2 узкий VGA разъем. С первой платой я возился неделю, почему нет видео, хотя по логам все ОК, оказалось пожалел пасты на строчный резистор.
8. Допаиваем оставшиеся блокировочные конденсаторы и аудиотракт резисторы R18, R19, R43, R44 и конденсаторы C28, C29, C31, C34 и линейный выход X1. Наушники тоже работают, домашняя специфика позволяет слушать только через Sennheiser, Infinity пока простаивают без дела. Насчет конденсаторов C30, C32 прочитал на форуме что без них "звук повеселее", на одной плате я их не запаял, действительно стало побольше высоких частот. Однозначно сказать не могу, решать Вам, попробуйте оба варианта.
9. Если Вам не нужны часы, пропустите этот пункт. Обозначу минусы : верхний левый USB теперь работает как источник питания (для колонок), кривая схема использует мост USB-I2C на базе Attiny45, оригинальная схема Till Harbaum :
При установке времени из WorkBench Амиги пишутся неправильные значения 90 часов или месяц. При записи времени из Атари в Амиге часы показывают корректное время. Если еще не передумали, начнем с рассыпухи, резисторы из BOM R201 - R205, RSQW, стабилитроны на 3,6V D2011, D202, конденсаторы C201, C202, микросхему DS1307 можно заменить на M41T56, которая нормально работает даже без батарейки, припаиваем часовой на 32768Hz и кварц для Atiny45 на 12MHz :
Дальше запаиваем панельку из цангового разъема (микросхемы стоят бутербродиком одна над другой) и вертикальный держатель батарейки CR2032 :
Теперь необходимо запрограммировать Attiny45, покупайте в DIP корпусе, при заказе глянул на плату, увидел планар и заказал в SOP корпусе, пришлось покупать панельку на программатор и паять переходник на плату :
Сперва прошиваем в Attiny файл ATTiny45.hex и только потом устанавливем фюзы Hi - 0x5f / Lo - 0xdf иначе больше программатор USBasp ее не увидит.
Осталось скачать корку от Atari ST и установить там время. Иногда показывает неправильное время из Амижной, помогает перезагрузка.
10. Если Midi Вам не нужен, осталось припаять термопредохранитель R52 на 0.2A и разъемы X3,X5 папа DR9 для оригинальных джойстика и мыши.
Если же решились послушать MIDI, припаиваем IC101 74LVC14D, опторазвязку 6N138 и мелочевку D101 диод 1N4148WS, резисторы R101 - R107, два MIDI разъема (как на советском магнитофоне). Конденсаторы по питанию C101 и C102 были установлены ранее. В итоге получилось так :
Послушать звук мне удалось из нескольких игр ATARI ST через MIDI-USB адаптер в программе "Aria Maestosa" на wintel.
Осталось залить амижную корку с ROM и другими необходимыми файлами и полюбоваться на картинку :
Последний раз подобное я видел около 20 лет назад, смахнул скупую слезу и пошел качать образы HDD для эмулятора. Использовать для каждого девайса свою флешку - неудобно, я пользуюсь коркой Sorgelig's startup menu для выбора систем через core менеджер. С ним у меня не заработали TurboGFX и Амижная, но под последнюю я и планировал отдельную карту. Очень порадовал ZX, игру Target Renegade с General Sound я чуть-ли не прошел до конца.
Если у Вас ошибка при загрузке FPGA, советую припаять разъем JTAG SV1 и через ByteBlaster с помощью Quartus 13 прошить последовательно уроки с 1 по 4, подробнее почитайте раздел SOC в MIST developer tutorials, возможно это наведет Вас на путь истинный. Обязательно переведите ползунок 1 переключателя S5 в "ON" перед подключением.
Полезные ссылки :
- Обещанная ссылка на исправленный BOM list.
- Сайт разработчиков MiST - FPGA retro gaming .
- Статья FPGA MiST Guide на сайте arekuse.net.
- Архив SD Amiga на сайте MEGA.
Есть у меня идея - заменить Atmel на STM32, автоматически выкинутся часы и возможно MAX3421E. Если у Вас есть мысли по этому поводу, милости просим.
Адрес для контактов : imax9@narod.ru
Если вам понравились мои работы и вы желаете поддержать сайт - сделайте дотацию.
При копировании статьи – обязательна ссылка на авторство и источник. Без разрешения автора копирование запрещено.
© Максим Ильин 2021г.