1
0
mirror of https://github.com/fruit-bat/pico-zxspectrum.git synced 2025-04-19 00:04:01 +03:00

4 pin audio

This commit is contained in:
Phil 2022-06-18 10:36:19 +01:00
parent 77a9c87055
commit 1fb8346e6d
10 changed files with 75 additions and 27 deletions

View File

@ -147,12 +147,14 @@ https://github.com/fruit-bat/tinyusb/tree/hid_micro_parser_and_hub
## Try it
Pre-built binaries can be copied directly to a Pico Pi. Connect your Pico Pi with a USB cable, while holding down the program button.
| Board | Binary |
| ------ | -------- |
| HDMI breadboard | ZxSpectrumBreadboardHdmi.uf2 |
| RetroVGA | ZxSpectrumPicocomputerVga.uf2 |
| PicomputerMax | ZxSpectrumPicocomputerMax.uf2 |
| PicomputerZX | ZxSpectrumPicocomputerZX.uf2 |
| Board | Binary | Audio |
| ------ | -------- | ----- |
| HDMI breadboard | ZxSpectrumBreadboardHdmi1PinAudio.uf2 | Digially mixed PWM audio |
| HDMI breadboard | ZxSpectrumBreadboardHdmi2PinAudio.uf2 | Buzzer pin and digially mixed AY-3-8912 PWM audio |
| HDMI breadboard | ZxSpectrumBreadboardHdmi4PinAudio.uf2 | Buzzer pin and separate PWM pins for AY-3-8912 A, B & C channles |
| RetroVGA | ZxSpectrumPicocomputerVga.uf2 | Digially mixed PWM audio |
| PicomputerMax | ZxSpectrumPicocomputerMax.uf2 | Digially mixed PWM audio |
| PicomputerZX | ZxSpectrumPicocomputerZX.uf2 | Digially mixed PWM audio |
e.g. for the HDMI breadboard wiring show above use:
```sh
@ -278,7 +280,7 @@ The following folders need to be created on the SD card:
tio -m ODELBS /dev/ttyUSB0
```
## Thanks to
[CarlK](https://github.com/carlk3/) for the super [no OS FAT FS for Pico](https://github.com/carlk3/no-OS-FatFS-SD-SPI-RPi-Pico)<br/>
[CarlK](https://github.com/carlk3/) for the super [no OS FAT FS for Pico](https://github.com/carlk3/no-OS-FatFS-SD-SST7789_Datasheet.pdfPI-RPi-Pico)<br/>
[Damien G](https://damieng.com/) for maintaining and publishing some wonderful [8-bit fonts](https://damieng.com/typography/zx-origins/)<br/>
[Wren](https://github.com/Wren6991/) for the amazing [PicoDVI](https://github.com/Wren6991/PicoDVI)<br/>
[hathach](https://github.com/hathach) for the embeded USB library [TinyUSB](https://github.com/hathach/tinyusb)<br/>
@ -288,9 +290,9 @@ tio -m ODELBS /dev/ttyUSB0
[Wren's Amazing PicoDVI](https://github.com/Wren6991/PicoDVI)<br/>
[Z80 file format documentation](https://worldofspectrum.org/faq/reference/z80format.htm)<br/>
[Fonts by DamienG](https://damieng.com/typography/zx-origins/)<br/>
http://www.breakintoprogram.co.uk/computers/zx-spectrum/screen-memory-layout<br/>
http://www.breakintoprogram.co.uk/computers/zx-spectrum/keyboard<br/>
http://www.breakintoprogram.co.uk/computers/zx-spectrum/interrupts<br/>
[breakintoprogram - Screen memory layout](http://www.breakintoprogram.co.uk/computers/zx-spectrum/screen-memory-layout)<br/>
[breakintoprogram - keyboard layout](http://www.breakintoprogram.co.uk/computers/zx-spectrum/keyboard)<br/>
[breakintoprogram - interrupts](http://www.breakintoprogram.co.uk/computers/zx-spectrum/interrupts)<br/>
http://mdfs.net/Software/Spectrum/Harston/<br/>
https://www.1000bit.it/support/manuali/sinclair/zxspectrum/sm/section1.html<br/>
https://k1.spdns.de/Vintage/Sinclair/82/Sinclair%20ZX%20Spectrum/ROMs/gw03%20'gosh%2C%20wonderful'%20(Geoff%20Wearmouth)/gw03%20info.htm<br/>
@ -300,6 +302,7 @@ http://www.zxdesign.info/cassette.shtml<br/>
https://uelectronics.info/2015/03/21/zx-spectrum-and-loaders-part-one/<br/>
https://mdfs.net/Software/Spectrum/ROMImages/<br/>
https://worldofspectrum.org/ZXSpectrum128Manual/sp128p13.html<br/>
https://cpctech.cpc-live.com/docs/ay38912/psgspec.htm<br/>
http://www.armory.com/~rstevew/Public/SoundSynth/Novelty/AY3-8910/start.html<br/>
[AY-3-8912 - manual](https://cpctech.cpc-live.com/docs/ay38912/psgspec.htm)<br/>
[AY-3-8912 - synth](http://www.armory.com/~rstevew/Public/SoundSynth/Novelty/AY3-8910/start.html)<br/>
[USB HID 1.1](https://www.usb.org/sites/default/files/hid1_11.pdf)<br/>
[ST7789 LCD driver reference](docs/ST7789_Datasheet.pdf)<br/>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
docs/ST7789_Datasheet.pdf Normal file

Binary file not shown.

View File

@ -16,12 +16,8 @@
//
// Split output from AY-3-8912
//
// #define SPK_PIN 20
// #define AY8912_A_PIN 20
// #define AY8912_B_PIN 26
// #define AY8912_C_PIN 27
// See CMakeLists.txt files for configurations
//
#ifdef BZR_PIN
#ifdef AY8912_A_PIN

View File

@ -1,28 +1,60 @@
add_executable(ZxSpectrumBreadboardHdmi
${zxspectrum_common_src}
set(zxspectrum_hdmi_src
main.cpp
tmds_encode_zxspectrum.S
tmds_encode_zxspectrum.h
hw_config.c
)
target_compile_definitions(ZxSpectrumBreadboardHdmi PRIVATE
add_executable(ZxSpectrumBreadboardHdmi1PinAudio
${zxspectrum_common_src}
${zxspectrum_hdmi_src}
)
add_executable(ZxSpectrumBreadboardHdmi2PinAudio
${zxspectrum_common_src}
${zxspectrum_hdmi_src}
)
add_executable(ZxSpectrumBreadboardHdmi4PinAudio
${zxspectrum_common_src}
${zxspectrum_hdmi_src}
)
target_compile_definitions(ZxSpectrumBreadboardHdmi1PinAudio PRIVATE
DVI_DEFAULT_SERIAL_CONFIG=${DVI_DEFAULT_SERIAL_CONFIG}
DVI_VERTICAL_REPEAT=2
DVI_N_TMDS_BUFFERS=3
DVI_1BPP_BIT_REVERSE=1
PCS_COLS=80
PCS_ROWS=30
SPK_PIN=20
)
target_compile_definitions(ZxSpectrumBreadboardHdmi2PinAudio PRIVATE
DVI_DEFAULT_SERIAL_CONFIG=${DVI_DEFAULT_SERIAL_CONFIG}
DVI_VERTICAL_REPEAT=2
DVI_N_TMDS_BUFFERS=3
DVI_1BPP_BIT_REVERSE=1
PCS_COLS=80
PCS_ROWS=30
SPK_PIN=20
BZR_PIN=21
)
target_compile_definitions(ZxSpectrumBreadboardHdmi4PinAudio PRIVATE
DVI_DEFAULT_SERIAL_CONFIG=${DVI_DEFAULT_SERIAL_CONFIG}
DVI_VERTICAL_REPEAT=2
DVI_N_TMDS_BUFFERS=3
DVI_1BPP_BIT_REVERSE=1
PCS_COLS=80
PCS_ROWS=30
# Comment BZR_PIN definition for single pin audio
BZR_PIN=21
AY8912_A_PIN=20
AY8912_B_PIN=26
AY8912_C_PIN=27
)
target_link_libraries(ZxSpectrumBreadboardHdmi
${zxspectrum_common_libs}
set(zxspectrum_hdmi_libs
libdvi
tinyusb_host
tinyusb_board
@ -30,6 +62,23 @@ target_link_libraries(ZxSpectrumBreadboardHdmi
pico_dvi_menu
)
# create map/bin/hex file etc.
pico_add_extra_outputs(ZxSpectrumBreadboardHdmi)
target_link_libraries(ZxSpectrumBreadboardHdmi1PinAudio
${zxspectrum_common_libs}
${zxspectrum_hdmi_libs}
)
target_link_libraries(ZxSpectrumBreadboardHdmi2PinAudio
${zxspectrum_common_libs}
${zxspectrum_hdmi_libs}
)
target_link_libraries(ZxSpectrumBreadboardHdmi4PinAudio
${zxspectrum_common_libs}
${zxspectrum_hdmi_libs}
)
# create map/bin/hex file etc.
pico_add_extra_outputs(ZxSpectrumBreadboardHdmi1PinAudio)
pico_add_extra_outputs(ZxSpectrumBreadboardHdmi2PinAudio)
pico_add_extra_outputs(ZxSpectrumBreadboardHdmi4PinAudio)