Tang9k Speccy — это ещё один клон ZX Spectrum, реализованный на отладочной плате Sipeed Tang Nano 9k (FPGA Gowin GW1NR-LV9). Прошивка находится в стадии активной разработки.
Реализованное аппаратное обеспечение
| Компонент | Описание |
|---|---|
| Видеовыход | HDMI, разрешение 720×576 (49 Гц) |
| Звук | Аналоговый звуковой выход |
| Клавиатура | USB-клавиатура |
| CPU | Мягкое ядро Z80 (T80a) |
| Накопитель | DivMMC с ESXDOS 0.8.9 |
| Звук | Turbosound (2× AY-3-8910) + Soundrive |
Инструкция по запуску
- Установите инструмент openFPGALoader.
- Загрузите образ ПЗУ (rom/rom-tang9k-speccy.rom) во внешнюю SPI Flash:
Код:openFPGALoader -b tangnano9k --external-flash rom/rom-tang9k-speccy.rom - Загрузите битовый поток во внутреннюю Flash:
Код:openFPGALoader -b tangnano9k -f impl/pnr/tang9k-speccy.fs - Подключите USB-клавиатуру (сигналы +5V, GND, D+ и D- через резисторы 33 Ом).
- Подготовьте SD-карту (FAT32) с ESXDOS 0.8.9.
Советы по HDMI
Некоторые мониторы и телевизоры не показывают изображение через HDMI-разъём Tang Nano. В этом случае необходимо добавить паяльную перемычку вместо R1 (подробнее).Управление
| Клавиша | Действие |
|---|---|
| F1 | Pentagon 128 с ESXDOS 0.8.9 |
| F2 | Pentagon 1024 с Z-Controller |
| F3 | Retroleum DiagRom |
| F4 | Тестовая прошивка (RAGE umbrella) |
| F10 | Сброс CPU |
| F11 | NMI |
| F12 | Reset |
| F5/F6 | Перемещение INT по горизонтали (отладка) |
| F7/F8 | Перемещение INT по вертикали (отладка) |
Планируемое
| Задача | Описание |
|---|---|
| Рефакторинг видео | Переработать видеоконтроллер по классической схеме со скандаблером |
| RTC и EEPROM | Добавить I2C RTC и опционально I2C EEPROM |
| ESP8266 | Поддержка через ZXUNO UART / AY UART / ZiFi UART |
| Мышь | USB-мышь как Kempston mouse |
| Геймпад | USB-геймпад как Kempston джойстик |
| Видеорежимы | Дополнительные режимы (Timex hires, ULA+ и др.) |
| Магнитофон | Tape in/out |
| Плата расширения | Создать дополнительную плату (материнскую?) для расширенной периферии |
Распиновка
| Контакт | Сигнал | Контакт | Сигнал |
|---|---|---|---|
| 38 | SD CS | 63 | — |
| 37 | SD SI | 86 | — |
| 36 | SD SCK | 85 | — |
| 39 | SD SO | 84 | — |
| 25 | USBK D- | 83 | — |
| 26 | USBK D+ | 82 | — |
| 27 | DAC R | 81 | — |
| 28 | DAC L | 80 | — |
| 29 | WIFI TX | 79 | — |
| 30 | WIFI RX | 77 | — |
| 33 | WIFI CTS | 76 | — |
| 34 | USBM D- | 75 | HDMI D2P |
| 40 | USBM D+ | 74 | HDMI D2N |
| 35 | USBJ D- | 73 | HDMI D1P |
| 41 | USBJ D+ | 72 | HDMI D1N |
| 42 | TAPEIN | 71 | HDMI D0P |
| 51 | TAPEOUT | 70 | HDMI D0N |
| 53 | BEEPER | 5V | 5V |
| 54 | I2C SDA | 48 | — |
| 55 | I2C SCL | 49 | — |
| 56 | 32KHZ | 31 | — |
| 57 | SQW | 32 | — |
| 68 | HDMI CKN | GND | GND |
| 69 | HDMI CKP | 3V3 | 3V3 |
Файлы для загрузки
| Название файла / Папка | Описание | GitHub | Yandex.Диск |
|---|---|---|---|
| docs (папка) | Документация и фото | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| impl (папка) | Файлы реализации (битовый поток) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| rom (папка) | Образ ПЗУ для SPI Flash | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| src (папка) | Исходные коды ядра (VHDL, Verilog) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| tools (папка) | Вспомогательные инструменты | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| Скачать все фото | Все фото находятся в одном архиве | Ссылка на Яндекс.Диск | |
| Скачать все файлы | Все файлы находятся в одном архиве | Ссылка на GitHub | Ссылка на Яндекс.Диск |
Полезные ссылки проекта:
- Обсуждение HDMI (eevblog) — https://www.eevblog.com/forum/fpga/fpga-to-hdmi-variants/msg4613152/#msg4613152
- Репозиторий проекта — GitHub