From e38f71080d0c0cbf35cc2191a1058cc8801926d9 Mon Sep 17 00:00:00 2001 From: Phil Date: Sat, 7 Dec 2024 12:25:44 +0000 Subject: [PATCH] MURMULATOR2 --- CMakeLists.txt | 4 +- docs/MURMULATOR2.md | 2 +- src/CMakeLists.txt | 8 +-- src/hdmi/CMakeLists.txt | 1 - src/vga/CMakeLists.txt | 114 +++++++++++++++++++++++++++++++++++----- src/vga/main.cpp | 1 + 6 files changed, 111 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0acfb9b..42aa6a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,9 @@ pico_sdk_init() add_compile_definitions(PICO_MCU="${PICO_PLATFORM}") add_compile_options(-Wall) -add_definitions(-DHID_PROTOCOL_DEFAULT=HID_PROTOCOL_REPORT) + +add_compile_definitions(HID_PROTOCOL_DEFAULT=HID_PROTOCOL_REPORT) +add_compile_definitions(PICO_FLASH_SPI_CLKDIV=6) set(DVI_DEFAULT_SERIAL_CONFIG "pico_sock_cfg" CACHE STRING "Select a default pin configuration from common_dvi_pin_configs.h") diff --git a/docs/MURMULATOR2.md b/docs/MURMULATOR2.md index fb5f9ac..ce48468 100644 --- a/docs/MURMULATOR2.md +++ b/docs/MURMULATOR2.md @@ -1,5 +1,5 @@ -### MURMULATOR platform +### MURMULATOR2 platform diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 09d868e..588797b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -139,10 +139,10 @@ add_dependencies(ZX-MURMULATOR2 ZX-MURMULATOR2_HDMI_HDMI_AUDIO_720x576x50Hz ZX-MURMULATOR2_HDMI_I2S_AUDIO_640x480x60Hz ZX-MURMULATOR2_HDMI_I2S_AUDIO_720x576x50Hz -# ZX-MURMULATOR2_VGA_PWM_AUDIO_640x480x60Hz -# ZX-MURMULATOR2_VGA_PWM_AUDIO_720x576x50Hz -# ZX-MURMULATOR2_VGA_I2S_AUDIO_640x480x60Hz -# ZX-MURMULATOR2_VGA_I2S_AUDIO_720x576x50Hz + ZX-MURMULATOR2_VGA_PWM_AUDIO_640x480x60Hz + ZX-MURMULATOR2_VGA_PWM_AUDIO_720x576x50Hz + ZX-MURMULATOR2_VGA_I2S_AUDIO_640x480x60Hz + ZX-MURMULATOR2_VGA_I2S_AUDIO_720x576x50Hz ) if ((${PICO_BOARD} STREQUAL "pico") OR (${PICO_BOARD} STREQUAL "pico2")) message("Relevant target: ZX-MURMULATOR2") diff --git a/src/hdmi/CMakeLists.txt b/src/hdmi/CMakeLists.txt index 400abc9..e636b51 100644 --- a/src/hdmi/CMakeLists.txt +++ b/src/hdmi/CMakeLists.txt @@ -124,7 +124,6 @@ target_compile_definitions(ZxSpectrumBreadboardHdmiAudio720x576x50Hz PRIVATE PICO_HDMI_AUDIO # Enable the PS/2 keyboard USE_PS2_KBD - PS2KBD_CLK6_DAT ) target_compile_definitions(ZxSpectrumBreadboardHdmi1PinAudio PRIVATE diff --git a/src/vga/CMakeLists.txt b/src/vga/CMakeLists.txt index 73205cb..02d84aa 100644 --- a/src/vga/CMakeLists.txt +++ b/src/vga/CMakeLists.txt @@ -192,6 +192,10 @@ foreach(target ZX-MURMULATOR_VGA_PWM_AUDIO_720x576x50Hz ZX-MURMULATOR_VGA_I2S_AUDIO_640x480x60Hz ZX-MURMULATOR_VGA_I2S_AUDIO_720x576x50Hz + ZX-MURMULATOR2_VGA_PWM_AUDIO_640x480x60Hz + ZX-MURMULATOR2_VGA_PWM_AUDIO_720x576x50Hz + ZX-MURMULATOR2_VGA_I2S_AUDIO_640x480x60Hz + ZX-MURMULATOR2_VGA_I2S_AUDIO_720x576x50Hz ) add_executable(${target} @@ -217,6 +221,10 @@ foreach(target ${zxspectrum_ear_in_pio} ) + pico_generate_pio_header(${target} + ${zxspectrum_audio_i2s_pio} + ) + pico_enable_stdio_usb(${target} 0) # create map/bin/hex file etc. @@ -312,17 +320,6 @@ foreach(target endforeach() -foreach(target - ZX-MURMULATOR_VGA_I2S_AUDIO_640x480x60Hz - ZX-MURMULATOR_VGA_I2S_AUDIO_720x576x50Hz -) - -pico_generate_pio_header(${target} -${zxspectrum_audio_i2s_pio} -) - -endforeach() - target_compile_definitions(ZX-MURMULATOR_VGA_PWM_AUDIO_640x480x60Hz PRIVATE ${ZX-MURMULATOR_VGA_defines} ${ZX-MURMULATOR_VGA_PWM_Audio_defines} @@ -345,4 +342,97 @@ target_compile_definitions(ZX-MURMULATOR_VGA_I2S_AUDIO_720x576x50Hz PRIVATE ${ZX-MURMULATOR_VGA_defines} ${ZX-MURMULATOR_VGA_I2S_Audio_defines} ${zxspectrum_vga_720x576x50Hz_defines} -) \ No newline at end of file +) + +#======================================================== +# ZX MURMULATOR2 +#======================================================== +set(ZX-MURMULATOR2_VGA_defines + MURMULATOR + # Configure the SPI sd card to use SPI0 + SDCARD_PIN_SPI0_CS=5 + SDCARD_PIN_SPI0_SCK=6 + SDCARD_PIN_SPI0_MOSI=7 + SDCARD_PIN_SPI0_MISO=4 + #VGA 222 vith VSYNC + VGA_ENC_RGB_222 + VGA_VSYNC + PICO_SCANVIDEO_COLOR_PIN_COUNT=6u + PICO_SCANVIDEO_DPI_PIXEL_RCOUNT=2u + PICO_SCANVIDEO_DPI_PIXEL_GCOUNT=2u + PICO_SCANVIDEO_DPI_PIXEL_BCOUNT=3u + PICO_SCANVIDEO_DPI_PIXEL_RSHIFT=4u + PICO_SCANVIDEO_DPI_PIXEL_GSHIFT=2u + PICO_SCANVIDEO_DPI_PIXEL_BSHIFT=0u + PICO_SCANVIDEO_COLOR_PIN_BASE=12u + # Use the alternate volume map + AY8912_ALT_VOL_MAP + # Tape audio in + EAR_PIN=22 + # Enable the PS/2 keyboard + USE_PS2_KBD + PS2KBD_CLK2_DAT + # Pins for dual NES joypads, pio1 SM ? + NESPAD_DATA_PIN_BASE=26 + NESPAD_CLK_PIN_BASE=20 + NESPAD_PIO=pio1 + NESPAD_IRQ=PIO1_IRQ_0 + NESPAD_ENABLE +) + +set(ZX-MURMULATOR2_VGA_PWM_Audio_defines + # Speaker pin audio + SPK_PIN=10 + # Buzzer audio out + # BZR_PIN=10 + # STEREO AY audio + AY8912_ABC_STEREO + # Left chanel audio out + AY8912_A_PIN=9 + # Right chanel audio out + AY8912_C_PIN=11 +) + +set (ZX-MURMULATOR2_VGA_I2S_Audio_defines + # Configure the I2S audio, pio1 SM ? + PICO_AUDIO_I2S=1 + PICO_AUDIO_I2S_PIO=pio1 + PICO_AUDIO_I2S_PIO_FUNC=GPIO_FUNC_PIO1 + PICO_AUDIO_I2S_DATA=9 + PICO_AUDIO_I2S_BCLK=10 +) + +foreach(target + ZX-MURMULATOR2_VGA_PWM_AUDIO_640x480x60Hz + ZX-MURMULATOR2_VGA_PWM_AUDIO_720x576x50Hz + ZX-MURMULATOR2_VGA_I2S_AUDIO_640x480x60Hz + ZX-MURMULATOR2_VGA_I2S_AUDIO_720x576x50Hz +) + pico_enable_stdio_uart(${target} 1) + +endforeach() + +target_compile_definitions(ZX-MURMULATOR2_VGA_PWM_AUDIO_640x480x60Hz PRIVATE + ${ZX-MURMULATOR2_VGA_defines} + ${ZX-MURMULATOR2_VGA_PWM_Audio_defines} + ${zxspectrum_vga_640x480x60Hz_defines} +) + +target_compile_definitions(ZX-MURMULATOR2_VGA_PWM_AUDIO_720x576x50Hz PRIVATE + ${ZX-MURMULATOR2_VGA_defines} + ${ZX-MURMULATOR2_VGA_PWM_Audio_defines} + ${zxspectrum_vga_720x576x50Hz_defines} +) + +target_compile_definitions(ZX-MURMULATOR2_VGA_I2S_AUDIO_640x480x60Hz PRIVATE + ${ZX-MURMULATOR2_VGA_defines} + ${ZX-MURMULATOR2_VGA_I2S_Audio_defines} + ${zxspectrum_vga_640x480x60Hz_defines} +) + +target_compile_definitions(ZX-MURMULATOR2_VGA_I2S_AUDIO_720x576x50Hz PRIVATE + ${ZX-MURMULATOR2_VGA_defines} + ${ZX-MURMULATOR2_VGA_I2S_Audio_defines} + ${zxspectrum_vga_720x576x50Hz_defines} +) + diff --git a/src/vga/main.cpp b/src/vga/main.cpp index f56fe8e..d740510 100644 --- a/src/vga/main.cpp +++ b/src/vga/main.cpp @@ -349,3 +349,4 @@ int main(){ main_loop(); } +