Skip to content

Commit

Permalink
RP2350 added by @dee
Browse files Browse the repository at this point in the history
-DPICO_PLATFORM=rp2350
  • Loading branch information
xrip committed Jan 20, 2025
1 parent e3b2d83 commit 7857ec8
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 8 deletions.
45 changes: 44 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -funroll-loops -ffast-math -feliminate-u

pico_sdk_init()

set(OUTPUT_DIR "${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}")
set(OUTPUT_DIR "${CMAKE_SOURCE_DIR}/bin/${PICO_PLATFORM}/${CMAKE_BUILD_TYPE}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${OUTPUT_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${OUTPUT_DIR}")
Expand Down Expand Up @@ -93,9 +93,17 @@ ENDIF()
IF(NOT I2S)
target_compile_definitions(${PROJECT_NAME} PRIVATE AUDIO_PWM_PIN=26)
ELSEIF(I2S_CS4334)
target_compile_definitions(${PROJECT_NAME} PRIVATE
AUDIO_DATA_PIN=26
AUDIO_CLOCK_PIN=27
)
target_compile_definitions(${PROJECT_NAME} PRIVATE I2S_CS4334)
SET(BUILD_NAME "${BUILD_NAME}-I2S-CS4334")
ELSE()
target_compile_definitions(${PROJECT_NAME} PRIVATE
AUDIO_DATA_PIN=26
AUDIO_CLOCK_PIN=27
)
SET(BUILD_NAME "${BUILD_NAME}-I2S-TDA1387")
ENDIF()

Expand All @@ -122,6 +130,40 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
tinyusb_device
)

if (PICO_PLATFORM EQUAL "rp2350-arm-s")
target_compile_definitions(${PROJECT_NAME} PRIVATE
# 16MB flash
PICO_FLASH_SIZE_BYTES=16777216

# SDCARD
SDCARD_PIN_SPI0_CS=5
SDCARD_PIN_SPI0_SCK=6
SDCARD_PIN_SPI0_MOSI=7
SDCARD_PIN_SPI0_MISO=4

# PS2KBD
PS2KBD_GPIO_FIRST=2

# NES Gamepad
NES_GPIO_CLK=20
NES_GPIO_DATA=26
NES_GPIO_LAT=21

# VGA 8 pins starts from pin:
VGA_BASE_PIN=12

# HDMI 8 pins starts from pin:
HDMI_BASE_PIN=12

# TFT
TFT_CS_PIN=12
TFT_RST_PIN=14
TFT_LED_PIN=15
TFT_DC_PIN=16
TFT_DATA_PIN=18
TFT_CLK_PIN=19
)
else()
target_compile_definitions(${PROJECT_NAME} PRIVATE
# 16MB flash
PICO_FLASH_SIZE_BYTES=16777216
Expand Down Expand Up @@ -154,6 +196,7 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE
TFT_DATA_PIN=12
TFT_CLK_PIN=13
)
endif()

target_link_options(${PROJECT_NAME} PRIVATE -Xlinker --print-memory-usage --data-sections)
pico_add_extra_outputs(${PROJECT_NAME})
4 changes: 2 additions & 2 deletions drivers/audio/audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ i2s_config_t i2s_get_default_config(void) {
i2s_config_t i2s_config = {
.sample_freq = 44100,
.channel_count = 2,
.data_pin = 26,
.clock_pin_base = 27,
.data_pin = AUDIO_DATA_PIN,
.clock_pin_base = AUDIO_CLOCK_PIN,
.pio = pio1,
.sm = 0,
.dma_channel = 0,
Expand Down
21 changes: 16 additions & 5 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@
#define ENABLE_SDCARD 1
#define USE_PS2_KBD 1
#define USE_NESPAD 1
#ifndef OVERCLOCKING
#define OVERCLOCKING 270
#endif


/* C Headers */
#include <cstdio>
Expand Down Expand Up @@ -644,9 +642,20 @@ uint16_t frequencies[] = { 378, 396, 404, 408, 412, 416, 420, 424, 432 };
uint8_t frequency_index = 0;

bool overclock() {
hw_set_bits(&vreg_and_chip_reset_hw->vreg, VREG_AND_CHIP_RESET_VREG_VSEL_BITS);
#if PICO_RP2350
volatile uint32_t *qmi_m0_timing=(uint32_t *)0x400d000c;
vreg_disable_voltage_limit();
vreg_set_voltage(VREG_VOLTAGE_1_40);
sleep_ms(10);
*qmi_m0_timing = 0x60007204;
set_sys_clock_khz(frequencies[frequency_index] * KHZ, false);
*qmi_m0_timing = 0x60007303;
return true;
#else
hw_set_bits(&vreg_and_chip_reset_hw->vreg, VREG_AND_CHIP_RESET_VREG_VSEL_BITS);
sleep_ms(33);
return set_sys_clock_khz(frequencies[frequency_index] * KHZ, true);
#endif
}

bool save() {
Expand Down Expand Up @@ -736,6 +745,8 @@ const MenuItem menu_items[] = {
{ "Colors: %s", ARRAY, &color_mode, &toggle_color, 1, { "NO ", "YES" } },
{ "Shift lines %s", ARRAY, &tv_out_mode.cb_sync_PI_shift_lines, nullptr, 1, { "NO ", "YES" } },
{ "Shift half frame %s", ARRAY, &tv_out_mode.cb_sync_PI_shift_half_frame, nullptr, 1, { "NO ", "YES" } },
#endif
#ifdef VGA
#endif
{},
{
Expand All @@ -746,7 +757,7 @@ const MenuItem menu_items[] = {
{ "Reset to ROM select", ROM_SELECT },
{ "Return to game", RETURN }
};
#define MENU_ITEMS_NUMBER (sizeof(menu_items) / sizeof (MenuItem))
#define MENU_ITEMS_NUMBER count_of(menu_items)


void menu() {
Expand Down

0 comments on commit 7857ec8

Please sign in to comment.