TZXDuino-Compact — это компактная плата-эмулятор кассетного магнитофона для ретрокомпьютеров (ZX Spectrum и др.), позволяющая загружать программы с SD-карты через аудиовыход вместо реальной магнитофонной ленты.
Репозиторий: github.com/lostretrotapes/TZXDuino-Compact. README в репозитории не заполнен, поэтому разбор построен на содержимом файлов проекта и общем контексте семейства TZXDuino.
1. Содержимое репозитория
| Файл/папка | Назначение |
|---|
gerbers/ | Производственные Gerber-файлы платы |
images/ | Фотографии/иллюстрации платы |
ino/ | Исходный код прошивки (Arduino-скетч) |
TZXDuino Compact v1.01.sch / .lib / .net / .pro / .cmp / .kicad_pcb | Полный проект в KiCad (старого формата, с отдельными .sch/.lib, т.е. KiCad 4/5) — схема, библиотека символов, netlist, PCB-файл, файл соответствия компонентов (.cmp) |
TZXDuino_Compact_v1.00_BOM.txt | Перечень компонентов (см. ниже) |
TZXDuino_Compact_v1.01.pdf | Экспортированный чертёж/схема в PDF (48.4 КБ) |
Обрати внимание на расхождение версий: PCB/схема помечены как
v1.01, а BOM — как
v1.00 (то есть BOM мог не успеть обновиться после правки платы на одну ревизию).
2. Идея устройства (общий принцип семейства TZXDuino)
TZXDuino — открытый проект (изначально Andrew Beer & Duncan Edwards, затем множество форков: CASduino, MaxDuino, ArduiTape, Digiwavuino) — эмулятор кассетного плеера: считывает
.TZX/.TAP/.CDT/.O/.P/.UEF файлы с SD-карты и конвертирует их в аудиосигнал, подаваемый на вход "MIC/EAR" ретрокомпьютера — то есть полностью заменяет физический магнитофон, но воспроизводит цифровые образы программ. Эта конкретная реализация —
"Compact"-вариант: в отличие от классического TZXDuino на модуле Arduino Nano, здесь
ATmega328P распаян прямо на плате (аналогично коммерческому "TZXDuino-mini"), что делает устройство компактнее и дешевле.
3. Электронная начинка (по BOM v1.00)
| Компонент | Назначение |
|---|
| IC1 — ATMEGA328P-P (DIP-28) | Основной микроконтроллер — воспроизведение звука из TZX/TAP, управление интерфейсом |
| X1 — кварц/резонатор 16 МГц | Тактирование ATmega328P (стандартная частота для Arduino-совместимых прошивок) |
| DS1 — OLED-дисплей 128×64 I2C | Экран интерфейса (список файлов, статус воспроизведения) |
| MOD1 — Catalex Micro-SD модуль | Чтение файлов с SD-карты по SPI |
| J1 — USB Mini-B (SMD) | Питание/прошивка (через внешний USB-UART программатор, так как выделенного USB-UART чипа в BOM нет) |
| J2 — разъём аудио-джек 3.5мм | Выход на вход "EAR" магнитофонного входа ретрокомпьютера |
| S1-S5 — 5× тактовые кнопки | Управление (навигация по списку файлов, play/stop, вверх/вниз — по аналогии с классическим TZXDuino) |
| P1 — 1×2 пин-хедер | Доп. разъём (вероятно, управление двигателем ленты — Motor Control, как в оригинальной схеме, используется некоторыми моделями Amstrad CPC) |
| D1 — 1N4001 | Защитный диод (вероятно, от переполюсовки на входе питания) |
| D2 — LED 3мм | Индикатор питания/статуса |
| R1 — 330 Ом | Токоограничение для LED |
| C1, C2 — 22 пФ | Обвязка кварцевого резонатора X1 |
| C3 — 10 мкФ | Сглаживание питания |
| C4, C5 — 100 нФ | Развязка по питанию |
| C6 — 10 нФ | Фильтр (вероятно, в звуковом тракте перед выходным джеком) |
| Доп. разъёмы: 1× 6-контактный и 1× 4-контактный Dupont-гнездо | Вероятно, для подключения OLED-дисплея и SD-модуля отдельными шлейфами, либо для внешних периферийных подключений |
. Типовая распиновка ATmega328P в проектах этого семейства
Хотя точный .ino для этой конкретной "Compact"-версии не показан построчно в открытом доступе, устройства этого класса (включая близкие форки на голом ATmega328) стандартно используют следующую схему подключения:
- D9 — аудиовыход (ШИМ через таймер, на разъём J2)
- D10/D11/D12/D13 — SPI к SD-карте (CS/MOSI/MISO/SCK)
- A4/A5 (SDA/SCL) — I2C к OLED-дисплею
- A0-A3, D7 — пять кнопок управления (UP/DOWN/STOP/PLAY/ROOT), подтянуты к GND
- D6 — управление двигателем ленты (Motor Control, опционально, для некоторых Amstrad CPC — соответствует разъёму P1 из BOM)
5. Формат проекта
Файлы схемы (.sch, .lib, .net, .pro, .cmp) указывают на
KiCad старого поколения (4.x/5.x), где схема и PCB-проект (.kicad_pcb) хранились раздельно от общего файла проекта — то есть плата разрабатывалась не в EasyEDA (как у предыдущих проектов от UR4QBP), а в классическом KiCad.
6. Итог
TZXDuino-Compact — это компактная плата-редакция классического открытого проекта TZXDuino: вместо готового модуля Arduino Nano всё сведено на одну небольшую печатную плату с ATmega328P в DIP-корпусе напрямую, OLED-дисплеем 128×64 по I2C, SD-картой через модуль Catalex, пятью кнопками управления и аудиовыходом на 3.5мм джек. Это функциональный аналог коммерческого "TZXDuino-mini" — прошивка полностью совместима с оригинальным открытым кодом TZXDuino/Arduitape, а сама плата — просто более компактная и дешёвая аппаратная реализация той же идеи "цифрового магнитофона" для ZX Spectrum и совместимых машин.
Файлы для загрузки
Полезные ссылки проекта:
- Оригинальный проект TZXDuino — информация доступна в сообществе
- Репозиторий проекта — GitHub