YM2149F Player (LGT8F328P + microSD) — это компактный автономный плеер AY/YM-музыки (файлы
.PSG) с SD-карты, воспроизводимый на настоящем звуковом чипе
YM2149F (не эмуляция, а реальное железо), разработанный
ur4qbp (Alexander Karnaukh).
Дата схемы: 16.04.2023 — судя по дате, это один из
самых ранних проектов автора.
Дата экспорта iBOM: 30.07.2024.
1. Идея устройства
Компактный портативный плеер PSG-музыки (формат записи регистровых дампов AY-чипа, классика демосцены ZX Spectrum): микроконтроллер читает файл .PSG с microSD-карты и
побитно ретранслирует записанные в нём команды записи регистров прямо на реальный YM2149F через параллельную 8-битную шину данных + управляющие сигналы BC1/BDIR — то есть звук синтезируется настоящим AY-совместимым чипом, а не программной эмуляцией.
2. Электронная начинка
| Компонент | Назначение |
|---|
| U1 — LGT8F328P (LQFP-32) | Основной микроконтроллер — китайский ATmega328-совместимый чип (Logic Green), с более высокой тактовой частотой и дополнительными периферийными блоками при полной программной совместимости с Arduino UNO/Nano |
| U2 — YM2149F (DIP-40) | Настоящий звуковой AY-совместимый чип — воспроизведение PSG |
| SD1 — TF-Card (microSD) | Хранение библиотеки .PSG-файлов, подключена по SPI (CS/MOSI/MISO/SCK) |
| OLED1 — OLED 128×32 | Дисплей интерфейса (I2C, SSD1306-совместимый — судя по использованной в прошивке библиотеке SSD1306Ascii) |
| XS1 — MicroUSB | Питание платы (5В) |
| S1, S2, S3 | Три кнопки навигации: "<<" (назад), "R" (случайное/rewind?), ">>" (вперёд) — судя по маркировке в BOM |
| R1-R4 (1к/220/470 Ом) | Резисторная лестница — все три кнопки читаются одним аналоговым входом (A6) через делитель напряжения (классический приём экономии GPIO — по уровню напряжения на АЦП определяется, какая кнопка нажата) |
| R5-R10 (2К×6) + C1,C2 (10мкФ) + OUTPUT1 (PJ-3126-5A) | Простой пассивный RC-микшер трёх каналов AY (A/B/C) в стерео/моно аудиовыход на джек |
| C3-C6, C4(100мкФ) | Развязка и сглаживание питания |
3. Логика работы прошивки (
- Инициализация AY (resetAY()): настройка пинов D0-D7 (шина данных к YM2149F), D8 (BC1), D9 (BDIR) и D2 (аппаратный RESET чипа с импульсом 100 мс)
- Чтение кнопок: через analogRead(A6) с калиброванными порогами (OK, NEXT, PREV, NOBUT) — резисторная лестница создаёт разные уровни напряжения для разных кнопок на одном пине
- Воспроизведение: построчное чтение PSG-команд из файла на SD-карте и прямая передача байт регистр/данные на шину AY через ay_out()
- Индикация громкости по каналам: на OLED отрисовываются "бар-графы" уровня громкости для каналов A/B/C (по значениям volA/volB/volC, вычисляемым как скользящее среднее записываемых в регистры 8/9/10 значений — это как раз регистры громкости AY)
- Режим случайного воспроизведения (randomize) — переключается одной из кнопок, индикатор "R" на экране
- Режим "keycodes" — сервисный режим отображения кодов нажатых кнопок (для калибровки порогов АЦП при сборке с другими номиналами резисторов)
- Используемые библиотеки: SD.h, SPI.h, Wire.h, SSD1306Ascii.h, SSD1306AsciiWire.h
4. Формат иБОМ
Файл PCB_PCB_YM2149F_Player_LGT8F328_2.html — это
Interactive HTML BOM для KiCad (ibom_version: v2.3-50-g53ae), а не EasyEDA-плагин, как в большинстве более поздних проектов автора — значит, эта плата (в отличие от последующих EasyEDA-разработок автора) была спроектирована в
KiCad, что также согласуется с самой ранней датой схемы (2023 год, до перехода автора на EasyEDA для последующих проектов).
5. Сводная статистика BOM
| Категория | Количество |
|---|
| Резисторы (R) | 10 (1к×2, 220×1, 470×1, 2К×6) |
| Конденсаторы (C) | 6 (100нФ×3, 10мкФ×2, 100мкФ×1) |
| Кнопки (S) | 3 |
| Активные ИМС (U) | 2 (LGT8F328P, YM2149F) |
| Разъёмы (SD1, XS1, OUTPUT1) | 3 |
| Дисплей (OLED1) | 1 |
6. Итог
Это компактный автономный плеер AY/PSG-музыки — идейно близкий родственник "цифрового магнитофона" TZXDuino, но заточенный конкретно под
проигрывание регистровых PSG-дампов на настоящем чипе YM2149F, а не на воспроизведение аудио-образов кассет. Судя по дате (2023) и инструментарию (KiCad, а не EasyEDA), это один из первых проектов автора в этой серии, предшествующий более позднему переходу на EasyEDA-разработки (ZX Easy Audio, ZX OPL3, клавиатурные адаптеры и т.д.) — интересный "нулевой" пункт в хронологии его творчества.
Файлы для загрузки
| Название файла / Папка | Описание | Yandex.Диск |
|---|
| LGT8F328P.zip | Исходный код прошивки для LGT8F328P (Arduino sketch LGT8F328P.ino, 584 строки) | Ссылка на Яндекс.Диск |
| PCB_PCB_YM2149F_Player_LGT8F328_2.html | Интерактивная спецификация компонентов (Interactive HTML BOM для KiCad) | Ссылка на Яндекс.Диск |
| Schematic_YM2149F_Player_LGT8F328_microSD.png | Принципиальная электрическая схема в формате PNG (изображение) | Ссылка на Яндекс.Диск |
| Gerber | Гербер печатной платы | - |
| Скачать все файлы | Все файлы находятся в одном архиве | Ссылка на Яндекс.Диск |
Полезные ссылки проекта: