mirror of
https://github.com/fruit-bat/pico-zxspectrum.git
synced 2025-04-19 00:04:01 +03:00
GPIO PWM
This commit is contained in:
parent
e22bc4cd6c
commit
0eac75f694
@ -20,9 +20,14 @@ foreach(target
|
||||
${zxspectrum_hdmi_src}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_ear_in_pio}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_pwm_pio}
|
||||
)
|
||||
|
||||
endforeach()
|
||||
|
||||
add_executable(ZxSpectrumBreadboardHdmiKbd1PinAudio
|
||||
@ -38,7 +43,7 @@ set(zxspectrum_hdmi_defines
|
||||
DVI_N_TMDS_BUFFERS=3
|
||||
DVI_1BPP_BIT_REVERSE=1
|
||||
# Tell FATFS we want to find files
|
||||
FF_USE_FIND=1
|
||||
FF_USE_FIND=1
|
||||
# Configure the SPI sd card to use SPI0
|
||||
SDCARD_PIN_SPI0_CS=5
|
||||
SDCARD_PIN_SPI0_SCK=2
|
||||
@ -57,6 +62,8 @@ set(zxspectrum_hdmi_640x480x60Hz_defines
|
||||
DISPLAY_HEIGHT_PIXELS=480
|
||||
# The default interrupt source
|
||||
ZX_SPECTRUM_INT_SRC=SyncToCpu
|
||||
# Speaker pin audio (@252MHz 252000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=42000
|
||||
)
|
||||
|
||||
set(zxspectrum_hdmi_720x540x50Hz_defines
|
||||
@ -71,6 +78,8 @@ set(zxspectrum_hdmi_720x540x50Hz_defines
|
||||
DISPLAY_HEIGHT_PIXELS=540
|
||||
# The default interrupt source
|
||||
ZX_SPECTRUM_INT_SRC=SyncToDisplay
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
set(zxspectrum_hdmi_720x576x50Hz_defines
|
||||
@ -85,6 +94,8 @@ set(zxspectrum_hdmi_720x576x50Hz_defines
|
||||
DISPLAY_HEIGHT_PIXELS=576
|
||||
# The default interrupt source
|
||||
ZX_SPECTRUM_INT_SRC=SyncToDisplay
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
set(zxspectrum_hdmi_nespad_defines
|
||||
@ -101,7 +112,7 @@ target_compile_definitions(ZxSpectrumBreadboardHdmiAudio PRIVATE
|
||||
${zxspectrum_hdmi_640x480x60Hz_defines}
|
||||
${zxspectrum_hdmi_nespad_defines}
|
||||
EAR_PIN=11
|
||||
PICO_HDMI_AUDIO
|
||||
PICO_HDMI_AUDIO
|
||||
# Enable the PS/2 keyboard
|
||||
USE_PS2_KBD
|
||||
)
|
||||
@ -111,7 +122,7 @@ target_compile_definitions(ZxSpectrumBreadboardHdmiAudio720x540x50Hz PRIVATE
|
||||
${zxspectrum_hdmi_720x540x50Hz_defines}
|
||||
${zxspectrum_hdmi_nespad_defines}
|
||||
EAR_PIN=11
|
||||
PICO_HDMI_AUDIO
|
||||
PICO_HDMI_AUDIO
|
||||
# Enable the PS/2 keyboard
|
||||
USE_PS2_KBD
|
||||
)
|
||||
@ -121,7 +132,7 @@ target_compile_definitions(ZxSpectrumBreadboardHdmiAudio720x576x50Hz PRIVATE
|
||||
${zxspectrum_hdmi_720x576x50Hz_defines}
|
||||
# ${zxspectrum_hdmi_nespad_defines}
|
||||
# EAR_PIN=11
|
||||
PICO_HDMI_AUDIO
|
||||
PICO_HDMI_AUDIO
|
||||
# Enable the PS/2 keyboard
|
||||
USE_PS2_KBD
|
||||
)
|
||||
@ -167,7 +178,7 @@ target_compile_definitions(ZxSpectrumBreadboardHdmiKbd1PinAudio PRIVATE
|
||||
PCS_COLS=80
|
||||
PCS_ROWS=30
|
||||
# Tell FATFS we want to find files
|
||||
FF_USE_FIND=1
|
||||
FF_USE_FIND=1
|
||||
# Single pin audio for now
|
||||
SPK_PIN=20
|
||||
# 21 is also free
|
||||
@ -177,7 +188,7 @@ target_compile_definitions(ZxSpectrumBreadboardHdmiKbd1PinAudio PRIVATE
|
||||
SDCARD_PIN_SPI0_CS=28
|
||||
SDCARD_PIN_SPI0_SCK=22
|
||||
SDCARD_PIN_SPI0_MOSI=26
|
||||
SDCARD_PIN_SPI0_MISO=27
|
||||
SDCARD_PIN_SPI0_MISO=27
|
||||
USE_KEY_MATRIX
|
||||
)
|
||||
|
||||
@ -233,7 +244,7 @@ set (zxspectrum_pico_dv_defines
|
||||
)
|
||||
|
||||
set (zxspectrum_pico_dv_i2saudio_defines
|
||||
# Configure the I2S audio
|
||||
# Configure the I2S audio
|
||||
PICO_AUDIO_I2S=1
|
||||
PICO_AUDIO_I2S_PIO=pio1
|
||||
PICO_AUDIO_I2S_PIO_FUNC=GPIO_FUNC_PIO1
|
||||
@ -252,11 +263,11 @@ foreach(target
|
||||
${zxspectrum_hdmi_src}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_audio_i2s_pio}
|
||||
)
|
||||
|
||||
target_link_libraries(${target}
|
||||
target_link_libraries(${target}
|
||||
${zxspectrum_common_libs}
|
||||
${zxspectrum_hdmi_libs}
|
||||
)
|
||||
@ -294,7 +305,7 @@ target_compile_definitions(ZxSpectrumPicoDv_HdmiAudio_720x576x50Hz PRIVATE
|
||||
########################################################################
|
||||
|
||||
# cmake -DPICO_COPY_TO_RAM=0 -DPICO_SDK_PATH=../../pico-sdk -DPICO_BOARD=adafruit_feather_rp2040 ..
|
||||
# make -j4 ZxSpectrumAdafruitFeatherHdmi
|
||||
# make -j4 ZxSpectrumAdafruitFeatherHdmi
|
||||
foreach(target
|
||||
ZxSpectrumAdafruitFeatherHdmi
|
||||
)
|
||||
@ -320,10 +331,10 @@ set(zx_spectrum_adafuit_feather_hdmi_defines
|
||||
DVI_N_TMDS_BUFFERS=3
|
||||
DVI_1BPP_BIT_REVERSE=1
|
||||
# Tell FATFS we want to find files
|
||||
FF_USE_FIND=1
|
||||
FF_USE_FIND=1
|
||||
# Configure the SPI sd card to use SPI0
|
||||
SDCARD_PIO=pio1
|
||||
SDCARD_PIO_SM=1
|
||||
SDCARD_PIO_SM=1
|
||||
SDCARD_PIN_SPI0_CS=13
|
||||
SDCARD_PIN_SPI0_SCK=10
|
||||
SDCARD_PIN_SPI0_MOSI=11
|
||||
@ -348,7 +359,7 @@ target_compile_definitions(ZxSpectrumAdafruitFeatherHdmi PRIVATE
|
||||
# Waveshare - RP2040 - PicoZero
|
||||
########################################################################
|
||||
|
||||
foreach(target
|
||||
foreach(target
|
||||
ZxSpectrumPiZero_640x480x60Hz
|
||||
ZxSpectrumPiZero_720x576x50Hz
|
||||
)
|
||||
@ -384,7 +395,7 @@ set (ZxSpectrumPiZero_defines
|
||||
SDCARD_PIN_SPI0_SCK=18
|
||||
SDCARD_PIN_SPI0_MOSI=19
|
||||
SDCARD_PIN_SPI0_MISO=20
|
||||
# HDMI audio
|
||||
# HDMI audio
|
||||
PICO_HDMI_AUDIO
|
||||
)
|
||||
|
||||
@ -434,7 +445,7 @@ set(murmulator_common_defines
|
||||
SDCARD_PIN_SPI0_MOSI=3
|
||||
SDCARD_PIN_SPI0_MISO=4
|
||||
# Use the alternate volume map
|
||||
AY8912_ALT_VOL_MAP
|
||||
AY8912_ALT_VOL_MAP
|
||||
# Tape audio in
|
||||
EAR_PIN=22
|
||||
# Enable the PS/2 keyboard
|
||||
@ -460,7 +471,7 @@ set(murmulator_hdmi_audio_defines
|
||||
PICO_HDMI_AUDIO
|
||||
)
|
||||
|
||||
foreach(target
|
||||
foreach(target
|
||||
ZX-MURMULATOR_HDMI_PWM_AUDIO_640x480x60Hz
|
||||
ZX-MURMULATOR_HDMI_PWM_AUDIO_720x576x50Hz
|
||||
ZX-MURMULATOR_HDMI_HDMI_AUDIO_640x480x60Hz
|
||||
@ -482,13 +493,17 @@ foreach(target
|
||||
${zxspectrum_ear_in_pio}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_audio_i2s_pio}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_pwm_pio}
|
||||
)
|
||||
|
||||
# create map/bin/hex file etc.
|
||||
pico_add_extra_outputs(${target})
|
||||
|
||||
pico_add_extra_outputs(${target})
|
||||
|
||||
endforeach()
|
||||
|
||||
target_compile_definitions(ZX-MURMULATOR_HDMI_HDMI_AUDIO_640x480x60Hz PRIVATE
|
||||
@ -568,7 +583,7 @@ set(murmulator2_common_defines
|
||||
SDCARD_PIN_SPI0_MOSI=7
|
||||
SDCARD_PIN_SPI0_MISO=4
|
||||
# Use the alternate volume map
|
||||
AY8912_ALT_VOL_MAP
|
||||
AY8912_ALT_VOL_MAP
|
||||
# Tape audio in
|
||||
EAR_PIN=22
|
||||
# Enable the PS/2 keyboard
|
||||
@ -587,7 +602,7 @@ set(murmulator2_pwm_audio_defines
|
||||
)
|
||||
|
||||
set (zxspectrum_murmulator2_i2saudio_defines
|
||||
# Configure the I2S audio
|
||||
# Configure the I2S audio
|
||||
PICO_AUDIO_I2S=1
|
||||
PICO_AUDIO_I2S_PIO=pio1
|
||||
PICO_AUDIO_I2S_PIO_FUNC=GPIO_FUNC_PIO1
|
||||
@ -600,7 +615,7 @@ set(murmulator2_hdmi_audio_defines
|
||||
PICO_HDMI_AUDIO
|
||||
)
|
||||
|
||||
foreach(target
|
||||
foreach(target
|
||||
ZX-MURMULATOR2_HDMI_PWM_AUDIO_640x480x60Hz
|
||||
ZX-MURMULATOR2_HDMI_PWM_AUDIO_720x576x50Hz
|
||||
ZX-MURMULATOR2_HDMI_HDMI_AUDIO_640x480x60Hz
|
||||
@ -622,17 +637,17 @@ foreach(target
|
||||
${zxspectrum_ear_in_pio}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_audio_i2s_pio}
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_pwm_pio}
|
||||
)
|
||||
|
||||
# create map/bin/hex file etc.
|
||||
pico_add_extra_outputs(${target})
|
||||
|
||||
pico_add_extra_outputs(${target})
|
||||
|
||||
pico_enable_stdio_usb(${target} 0)
|
||||
pico_enable_stdio_uart(${target} 1)
|
||||
|
||||
@ -649,7 +664,7 @@ target_compile_definitions(ZX-MURMULATOR2_HDMI_HDMI_AUDIO_720x576x50Hz PRIVATE
|
||||
${murmulator2_common_defines}
|
||||
${murmulator2_hdmi_audio_defines}
|
||||
${zxspectrum_hdmi_720x576x50Hz_defines}
|
||||
${zxspectrum_murmulator2_hdmi_nespad_defines}
|
||||
${zxspectrum_murmulator2_hdmi_nespad_defines}
|
||||
)
|
||||
|
||||
target_compile_definitions(ZX-MURMULATOR2_HDMI_PWM_AUDIO_640x480x60Hz PRIVATE
|
||||
@ -657,8 +672,6 @@ target_compile_definitions(ZX-MURMULATOR2_HDMI_PWM_AUDIO_640x480x60Hz PRIVATE
|
||||
${murmulator2_pwm_audio_defines}
|
||||
${zxspectrum_hdmi_640x480x60Hz_defines}
|
||||
${zxspectrum_murmulator2_hdmi_nespad_defines}
|
||||
# Speaker pin audio (@252MHz 252000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=42000
|
||||
)
|
||||
|
||||
target_compile_definitions(ZX-MURMULATOR2_HDMI_PWM_AUDIO_720x576x50Hz PRIVATE
|
||||
@ -666,8 +679,6 @@ target_compile_definitions(ZX-MURMULATOR2_HDMI_PWM_AUDIO_720x576x50Hz PRIVATE
|
||||
${murmulator2_pwm_audio_defines}
|
||||
${zxspectrum_hdmi_720x576x50Hz_defines}
|
||||
${zxspectrum_murmulator2_hdmi_nespad_defines}
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
target_compile_definitions(ZX-MURMULATOR2_HDMI_I2S_AUDIO_640x480x60Hz PRIVATE
|
||||
@ -716,7 +727,7 @@ set(olimex_pc_hdmi_audio_defines
|
||||
PICO_HDMI_AUDIO
|
||||
)
|
||||
|
||||
foreach(target
|
||||
foreach(target
|
||||
ZxSpectrumOlimexPcHdmiAudio640x480x60Hz
|
||||
ZxSpectrumOlimexPcHdmiAudio720x576x50Hz
|
||||
)
|
||||
@ -731,8 +742,8 @@ foreach(target
|
||||
)
|
||||
|
||||
# create map/bin/hex file etc.
|
||||
pico_add_extra_outputs(${target})
|
||||
|
||||
pico_add_extra_outputs(${target})
|
||||
|
||||
pico_enable_stdio_usb(${target} 0)
|
||||
pico_enable_stdio_uart(${target} 1)
|
||||
|
||||
|
@ -122,6 +122,8 @@ set(zxspectrum_zx_lcd_640x480x60Hz_defines
|
||||
ZX_SPECTRUM_INT_SRC=SyncToCpu
|
||||
# TODO work what this is
|
||||
PICO_SCANVIDEO_MAX_SCANLINE_BUFFER_WORDS=700
|
||||
# Speaker pin audio (@250MHz 250000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=41666
|
||||
)
|
||||
|
||||
set(zxspectrum_zx_lcd_720x576x50Hz_defines
|
||||
@ -138,11 +140,13 @@ set(zxspectrum_zx_lcd_720x576x50Hz_defines
|
||||
ZX_SPECTRUM_INT_SRC=SyncToDisplay
|
||||
# TODO work what this is
|
||||
PICO_SCANVIDEO_MAX_SCANLINE_BUFFER_WORDS=800
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
set(picomputer_zx_lcd_common_defines PRIVATE
|
||||
${picomputer_common_defines}
|
||||
PICO_PIO_PWM_AUDIO
|
||||
PICO_PIO_PWM_AUDIO
|
||||
PICO_AUDIO_PWM_PIO=pio1
|
||||
SPK_PIN=7
|
||||
PICOMPUTER_PICOZX
|
||||
@ -193,7 +197,7 @@ foreach(target
|
||||
${CMAKE_CURRENT_LIST_DIR}/st7789_lcd.pio
|
||||
)
|
||||
|
||||
pico_generate_pio_header(${target}
|
||||
pico_generate_pio_header(${target}
|
||||
${zxspectrum_pwm_pio}
|
||||
)
|
||||
|
||||
@ -213,16 +217,12 @@ target_compile_definitions(ZxSpectrumPicomputerZxLcd_720x576x50Hz PRIVATE
|
||||
${picomputer_zx_lcd_common_defines}
|
||||
${zxspectrum_zx_lcd_720x576x50Hz_defines}
|
||||
LCD_MIRROR_X
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
target_compile_definitions(ZxSpectrumPicomputerZxLcd_640x480x60Hz PRIVATE
|
||||
${picomputer_zx_lcd_common_defines}
|
||||
${zxspectrum_zx_lcd_640x480x60Hz_defines}
|
||||
LCD_MIRROR_X
|
||||
# Speaker pin audio (@250MHz 250000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=41666
|
||||
)
|
||||
|
||||
target_compile_definitions(ZxSpectrumPicomputerZxInverseLcd_720x576x50Hz PRIVATE
|
||||
@ -230,8 +230,6 @@ target_compile_definitions(ZxSpectrumPicomputerZxInverseLcd_720x576x50Hz PRIVATE
|
||||
${zxspectrum_zx_lcd_720x576x50Hz_defines}
|
||||
LCD_MIRROR_X
|
||||
LCD_INVERSE
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
target_compile_definitions(ZxSpectrumPicomputerZxInverseLcd_640x480x60Hz PRIVATE
|
||||
@ -239,8 +237,6 @@ target_compile_definitions(ZxSpectrumPicomputerZxInverseLcd_640x480x60Hz PRIVATE
|
||||
${zxspectrum_zx_lcd_640x480x60Hz_defines}
|
||||
LCD_MIRROR_X
|
||||
LCD_INVERSE
|
||||
# Speaker pin audio (@250MHz 250000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=41666
|
||||
)
|
||||
|
||||
target_compile_definitions(ZxSpectrumPicomputerZxILI9341Lcd_720x576x50Hz PRIVATE
|
||||
@ -248,8 +244,6 @@ target_compile_definitions(ZxSpectrumPicomputerZxILI9341Lcd_720x576x50Hz PRIVATE
|
||||
${zxspectrum_zx_lcd_720x576x50Hz_defines}
|
||||
LCD_INVERSE
|
||||
LCD_RGB
|
||||
# Speaker pin audio (@270MHz 270000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=45000
|
||||
)
|
||||
|
||||
target_compile_definitions(ZxSpectrumPicomputerZxILI9341Lcd_640x480x60Hz PRIVATE
|
||||
@ -257,6 +251,5 @@ target_compile_definitions(ZxSpectrumPicomputerZxILI9341Lcd_640x480x60Hz PRIVATE
|
||||
${zxspectrum_zx_lcd_640x480x60Hz_defines}
|
||||
LCD_INVERSE
|
||||
LCD_RGB
|
||||
# Speaker pin audio (@250MHz 250000000 / (1000 * 3 * 2))
|
||||
PICO_PWM_AUDIO_FREQ=41666
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user