Uzix | микроблог

Радио 86РК от Сергея Киселёва

Закончил ещё одну жезезку - Радио 86РК от Сергея Киселёва (https://github.com/skiselev/radio-86rk). Как и Спекки 2010, спаял я его давно, но, чтобы довести дело до конца, не хватало наклеек на клавиатуру. Нарисовал, наклеил, делюсь.

Наклейки на JCUKEN-клавиатуру Радио 86РК

radio86-клавиатура на печать.pdf 18.8 KB

Speccy 2010

Потихоньку привожу в порядок все недоделанные, недопаянные и валяющиеся по углам железяки. Запаковал в корпус Speccy 2010. Корпус использовал Z28J - вроде бы именно такой вписан в BOM, но чтобы впихнуть в него плату потребовалось рассверливать в ней пару крепёжных отверстий. Сам корпус мне показался не очень удобным - верхняя и нижняя половинки разделены не по середине, а по диагонали, из-за чего один край платы оказывается выше другого. Так же сделал наклейки на корпус, вроде получилось симпатично, прикладываю их ниже.

Наклейки на корпус Speccy 2010

speccy2010 на печать.pdf 8.1 KB

"А что по новому Мультисаунду?"

“А что по новому Мультисаунду?” - спрашивали в комментах к предыдущему посту. С момента прошлого анонса (https://t.me/uzixls/36) минуло, страшно сказать, полтора года. Я не забросил проект (ну, не до конца забросил 😁) и всё ещё помаленьку пилю. На данный момент готово ~90% в плане схемы и разводки. Но, как и положено оставшимся 10% - они оказываются самыми несговорчивыми и трудными. В частности, осталась аналоговая часть - микшер и выходной каскад. На плате целая куча источников - и, наверное, очень желательно будет добавить к микшеру АРУ (компрессор), но сделать это правильно, и чтобы это всё влезло в оставшееся место - на это моих имеющихся знаний не хватает, пока что.

Что поменялось с момента прошлого анонса: во-первых, сильно переработал MIDI-часть. Вместо SAM2695 я взял VS1053B. Как MIDI-синтезатор он уступает SAM, но зато может работать как MP3/OGG/AAC/FLAC декодер. Тема MP3 на спектруме мне не очень интересна, но иметь такой задел для развития - приятно. Для подключения же крутого MIDI-синта я добавил разъём для установки Creative Wave Blaster или совместимых плат - понаделали их очень много, в том числе есть новодельные платы на том же самом SAM2695. Так же добавил разъём для подключения внешнего MIDI-синтезатора.

Во-вторых, заменил ПЛИС: теперь вместо MAX 3000 будет использоваться более ёмкая ACEX. А прошивку в неё будет заливать Z80. Обычно для этого ставят какую-нибудь мелкую CPLD, и я не видел проектов, где процессор, управляемый ПЛИС, сам в эту ПЛИС прошивку и загружает. Такой процесс запуска платы чем-то напоминает вытаскивание самого себя из болота за волосы :) Рискованно (не хотелось бы заказывать и паять ещё одну ревизию такой монструозной платы), но должно получиться - если я не упустил никакого важного нюанса в тоннах документации :)

Ещё из изменений - добавил FM-радио. Чип, который этим занимается, очень маленький, дешёвый и не требует почти никакой обвязки - почему бы и нет.

Убрал каналы C и D на OPL3 - в стерео они бесполезны, а квадро выход на карте я делать не планирую, да и OPL-музыки под квадро - ноль или около того.

Всё разнообразие тактовых генераторов (кроме того, что тактирует Z80 на время инициализации ПЛИС) заменил на пару Si5351A - эта микросхема вместе с одним кварцем позволяет получить три почти произвольных частоты. Теперь можно будет разгонять GS с точностью до герца :)

Добавил 3.5 мм джек для подмешивания звука от другой звуковой карты - для включения в цепочку. А чтобы регулировать громкость подмешанного звука - использовал цифровой потенциометр (господи, как же сложно было найти подходящий потенциометр с I2C и чтобы его можно было купить на али по адекватной цене!).

Добавил разъём энкодера для регулировки громкости на выходе карты. Кстати, микросхема, которая будет регулировать громкость, имеет так же трёхполосный эквалайзер, а ещё с её помощью (точнее, одним грязным хаком, который, надеюсь, сработает :)) можно сделать регулируемую стереобазу.

Что ещё? Для GS/Covox/SounDrive поставил I2S ЦАП TDA1543A вместо прежнего однобитного ЦАП, реализованного силами ПЛИС. Добавил выходной усилитель для наушников на TDA1308. При этом с платы можно будет снять звук до усилителя, например, чтобы завести в микшер Евы.

Придумал как можно реализовать смену стерео-раскладки каналов ямахи (часть музыки пишется из расчёта на расклад ABC, а часть - на ACB). Вместо дополнительной микросхемы, как это я делал раньше в Сизифе, можно средствами ПЛИС просто перенаправлять записи в регистры так, чтобы каналы B и C оказались поменяны местами.

Убрал рояль из DIP-переключателей в углу платы, теперь плата будет настраиваться полностью программно – а, значит, нужно будет написать конфигуратор. Оставлена только кнопка для загрузки в безопасном режиме - со всеми отключенным фичами, с дефолтной прошивкой (да, прошивку ПЛИС/GS можно будет обновлять по Nemo Bus).

Вот так обстоят сейчас дела с новым МС (название под вопросом - может назвать КомбайнСаунд? :) ). Фух, почти час писал, но, вроде бы, ничего важного не упустил :)

Что на данный момент на плате: Бипер, Covox, TSFM, GS 2Мб, SAA1099, SounDrive, MIDI, SID, OPL3, MP3, FM радио

ZX MIDI Player v3.0

На днях спаял себе звуковую карту NeoGS ревизии CM, и по этому поводу - новый релиз MIDI-плеера с поддержкой этой карты.

  • Добавлена поддержка проигрывания MIDI через NeoGS с чипом VS1053;
  • Добавлена поддержка чтения карты памяти на NeoGS;
  • Добавлена настройка номера чипа TurboSound;
  • Добавлена настройка джойстика Kempston;
  • Исправлена навигация кнопкой “вниз” в списке файлов если в папке больше чем 255 файлов;
  • Исправлена совместимость Z-Controller с VDAC2;
  • Изменён порядок назначения букв дискам - теперь IDE диски располагаются перед SD/MMC.

https://github.com/UzixLS/zx-midiplayer/releases/tag/3

zxmidip3.trd 640.0 KB

Interface1bis

Interface1bis - новодельный аддон для фирменного ZX Spectrum, умеет загружать софт с SD-карты/USB/Ethernet, позволяет подключать Kempston джойстик, PS/2 клавиатуру и мышь, а так же с помощью подключенного по USB ПК печатать на принтер. Довольно навороченная штука и в аппаратном, и в программном плане, но всё же она уступает (для меня по крайней мере) DivMMC — нет поддержки TRD, нет поддержки FAT на SD-карте (файлы нужно заливать через специальную утилиту), да и сама карта недоступна из существующего спектрумовского софта. Ну и простота устройства DivMMC мне по душе куда больше чем россыпь микроконтроллеров и ПЛИС в Interface1bis :) Но если кто-то заинтересовался — подробнее об этой штуке можно почитать тут: https://microsin.net/adminstuff/others/zx-spectrum-interface1bis.html

Попробую немного рабочего написать...

Попробую немного рабочего написать - не всё же про ретро железки :)

Есть такой производитель микроконтроллеров Artery, и есть у него такая штука SPIM - которая, в теории, берёт на себя все нюансы работы с флеш-памятью - настраиваем тип микросхемы и поехали. Но вот на практике…

Столкнулся с багой в программе - включаю SPIM, читаю одну ячейку и получаю не то значение, которое там записано. Перечитываю через некоторое время - уже правильный байт. Хм… Напаяв МГТФ-паука и подрубив логический анализатор вижу, что этот SPIM срезает углы где можно и где нельзя.

После включения он пишет в два регистра статуса значение 0x02 для настройки QSPI и защиты от записи. Запись именно 0x02 в первый регистр не имеет смысла т.к. первые два бита в нём только для чтения. Ну да ладно - срезали угол, но результат тот же, ок. Но дальше полагается ожидать окончания записи (tW 10-15мс для W25Q128FV) - до этого момента микросхема не принимает почти никакие команды. А вот это сделать забыли и шпарят команды сплошным потоком. Упс.

Запустил дендюху...

Запустил дендюху. Не всё гладко, пришлось порезать пару дорожек и запаять пару перемычек - но работает! И вроде даже и картинка красивая, и звук без помех. Сначала никак не хотела запускаться - цветной экран и всё тут. Но достаточно было вспомнить древний ритуал продувания и вставки не до конца картриджа - и поехало :)

Так и не смог найти в продаже подходящую кнопку включения - вероятно, придётся всё же раздербанить капельный новодельный клон. Ну а дальше - добывать всякие картриджи и выуживать косяки.

Throwback Operator

Throwback Operator - проект плеера VGM-файлов на базе железного чипа OPL3 (его младшая совместимая версия - OPL2 - использовалась в знаменитой карте AdLib). Автор проекта Aidan Lawrence.

Простой и приятный, его сборка заняла у меня буквально пару часов. Вместо микроконтроллера STM32 отлично заработал китайский аналог GD32. Я немного доработал плату под себя - заменил MiniUSB на Type C и кварц в корпусе HC49 на 3225.

Ссылка на оригинальный проект: https://github.com/AidanHockey5/Throwback_Operator

Ссылка на мою модификацию (вдруг кому-то будет полезна): https://github.com/UzixLS/Throwback_Operator