PS/2 to ZX Keyboard v2 (STM8S003F3P6 + MT8816AP, DB15) — это вторая, обновлённая версия предыдущего проекта (PS2_KB_ATmega48_MT8816AP_DB15) от
Alexander Karnaukh (UR4QBP). Та же идея (PS/2 → аппаратная коммутация матрицы через MT8816AP), но на другом микроконтроллере и с расширенным функционалом.
Дата схемы: 15.09.2024.
Ревизия: 1.0.
1. Ключевое отличие от версии на ATmega
- Микроконтроллер заменён с AVR (ATmega48/88/168/328) на STM8S003F3P6 (STM8, 8-битный, TSSOP-20) — более дешёвый и доступный чип (STM8S003F3 — один из самых массовых и «копеечных» МК на рынке)
- Программирование — через SWIM (фирменный однопроводной debug-интерфейс STM8), разъём XS3 "PROG" (RST/GND/AX3-SWIM), а не ISP/SPI как у AVR-версии
- XS4 "UART" — добавлен отдельный UART-выход (TX) для отладки/логирования
2. Конструктив платы
- Размер: ≈40.8 × 36.3 мм — чуть компактнее первой версии
- Кварцевый резонатор не распаян отдельно — STM8S003F3 использует внутренний RC-генератор (в отличие от AVR-версии с внешним кварцем 16 МГц)
- Предохранитель FU1 (0.2A) — полимерный самовосстанавливающийся предохранитель на линии +5В (защита от КЗ при неправильном подключении к материнке) — этого не было в версии на ATmega
- Светодиод LED1 "KB ACTIVE" — теперь подписан явно (индикация активности клавиатуры)
3. Расширенная функциональность — второй выходной разъём
В отличие от первой версии (только XP1, 15 контактов на стандартную матрицу 5×8), здесь добавлен
XS2 — дополнительный 6-контактный разъём с сигналами
F10_1, F11_1, F12_1, F10_0, F11_0, F12_0. Эти линии заведены на дополнительные, «лишние» координаты кроссбара MT8816 (X10-X15/Y5-Y7, не используемые стандартной матрицей 5×8) — то есть добавлена возможность вывести
отдельные «прямые» сигналы для F10/F11/F12 (Pause/Magic/Reset — как в «Дельтагоне», где такая же раскладка F10/F11/F12 использовалась для PAUSE/MAGIC/RESET). Это позволяет использовать функциональные клавиши PS/2-клавиатуры для прямого управления сервисными кнопками платы (сброс, пауза, магия), а не только для эмуляции матрицы.
4. Электронная начинка
| Компонент | Корпус | Назначение |
|---|
| U1 — STM8S003F3P6 | TSSOP-20 | Основной контроллер: приём PS/2, декодирование, управление MT8816 |
| U2 — MT8816AP1 | QFP-44 | Аналоговый кроссбар-коммутатор (как и в версии 1) |
| FU1 | 0.2A | Самовосстанавливающийся предохранитель питания |
| C1 — 1мкФ на VCAP | — | Обвязка внутреннего стабилизатора ядра STM8 (характерная для этой серии) |
| R2 — 1кОм + LED1 | — | Индикатор активности |
| R1 — 10кОм | — | Подтяжка NRST |
5. Разъёмы
- PS2_KB (MINI-DIN6) — вход PS/2
- XP1 "ZX KEYBOARD" (15 pin) — основной выход на матрицу 5×8 (KD0-KD4, KA0-KA7)
- XS2 (6 pin) — дополнительные F10/F11/F12 (парный выход ×2 на каждую клавишу, возможно для дублирования на два разных разъёма материнской платы)
- XS3 "PROG" (3 pin, SWIM) — программирование STM8
- XS4 "UART" (2 pin) — отладочный UART
6. Прошивка
- ps2_kb_zx_stm8s.hex — 19 725 байт (Intel HEX), скомпилированная прошивка под STM8S003F3P6. В этот раз (в отличие от AVR-версии) исходный код (.c/.ino) в архиве отсутствует — только готовый бинарник.
7. По фотографиям
На фото хорошо видно: крупный QFP-44
MT8816AP (маркировка "J.A 15101.KC..."), справа от него — mini-DIN6 разъём PS/2, слева — выходной разъём (обрезан на фото, но виден краевой 8-пиновый ряд), синий электролитический конденсатор C1 у VCAP, и подписи на плате
"PROG RST GND SWIM",
"FU1",
"UART TX GND" — полностью соответствуют схеме.
8. Сравнение с версией на ATmega48/88/168/328
| Параметр | v1 (ATmega) | v2 (STM8S003F3P6) |
|---|
| МК | AVR, TQFP-32, внешний кварц 16МГц | STM8, TSSOP-20, внутренний RC-генератор |
| Программирование | ISP (SPI) | SWIM |
| Размер платы | 43.2×39.0 мм | 40.8×36.3 мм |
| Защита питания | Нет | Полимерный предохранитель 0.2А |
| Доп. выходы F10/F11/F12 | Нет | Есть (XS2) |
| Отладочный UART | Нет | Есть (XS4) |
| Исходный код в архиве | Есть (Arduino .ino) | Нет (только .hex) |
| Индикация | LED без подписи | LED "KB ACTIVE" |
9. Итог
Это логичное развитие первого PS/2-переходника: автор перешёл на более дешёвый и доступный STM8S003F3 (классический «чип за копейки» для хобби-проектов), добавил защиту по питанию и — что важнее всего — расширил функциональность выделенными линиями для служебных клавиш F10/F11/F12, что явно рассчитано на совместную работу с платами вроде «Дельтагона», где такая раскладка (PAUSE/MAGIC/RESET) уже реализована программно.
Файлы для загрузки
Полезные ссылки проекта: