From c91f3233175594ccf100c92a9b2b97800db6405c Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 19 Apr 2025 09:41:59 +0200 Subject: [PATCH 1/2] Add definition for the Waveshare RP2350-USB-A board --- .../include/boards/waveshare_rp2350_usb_a.h | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/boards/include/boards/waveshare_rp2350_usb_a.h diff --git a/src/boards/include/boards/waveshare_rp2350_usb_a.h b/src/boards/include/boards/waveshare_rp2350_usb_a.h new file mode 100644 index 000000000..617ad80a5 --- /dev/null +++ b/src/boards/include/boards/waveshare_rp2350_usb_a.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +// ----------------------------------------------------- +// NOTE: THIS HEADER IS ALSO INCLUDED BY ASSEMBLER SO +// SHOULD ONLY CONSIST OF PREPROCESSOR DIRECTIVES +// ----------------------------------------------------- + +#ifndef _BOARDS_WAVESHARE_RP2350_USB_A_H +#define _BOARDS_WAVESHARE_RP2350_USB_A_H + +pico_board_cmake_set(PICO_PLATFORM, rp2350) + +// For board detection +#define WAVESHARE_RP2350_USB_A + +// --- RP2350 VARIANT --- +#define PICO_RP2350A 1 + +// --- UART --- +#ifndef PICO_DEFAULT_UART +#define PICO_DEFAULT_UART 0 +#endif +#ifndef PICO_DEFAULT_UART_TX_PIN +#define PICO_DEFAULT_UART_TX_PIN 0 +#endif +#ifndef PICO_DEFAULT_UART_RX_PIN +#define PICO_DEFAULT_UART_RX_PIN 1 +#endif + +// --- WS2812 --- +#ifndef PICO_DEFAULT_WS2812_PIN +#define PICO_DEFAULT_WS2812_PIN 16 +#endif + +// --- I2C --- +#ifndef PICO_DEFAULT_I2C +#define PICO_DEFAULT_I2C 1 +#endif +#ifndef PICO_DEFAULT_I2C_SDA_PIN +#define PICO_DEFAULT_I2C_SDA_PIN 6 +#endif +#ifndef PICO_DEFAULT_I2C_SCL_PIN +#define PICO_DEFAULT_I2C_SCL_PIN 7 +#endif + +// --- SPI --- +#ifndef PICO_DEFAULT_SPI +#define PICO_DEFAULT_SPI 0 +#endif +#ifndef PICO_DEFAULT_SPI_SCK_PIN +#define PICO_DEFAULT_SPI_SCK_PIN 2 +#endif +#ifndef PICO_DEFAULT_SPI_TX_PIN +#define PICO_DEFAULT_SPI_TX_PIN 3 +#endif +#ifndef PICO_DEFAULT_SPI_RX_PIN +#define PICO_DEFAULT_SPI_RX_PIN 4 +#endif +#ifndef PICO_DEFAULT_SPI_CSN_PIN +#define PICO_DEFAULT_SPI_CSN_PIN 5 +#endif + +// --- PIO USB --- +#ifndef PICO_DEFAULT_PIO_USB_DP_PIN +#define PICO_DEFAULT_PIO_USB_DP_PIN 12 +#endif + +// --- FLASH --- +#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1 + +#ifndef PICO_FLASH_SPI_CLKDIV +#define PICO_FLASH_SPI_CLKDIV 3 +#endif + +pico_board_cmake_set_default(PICO_FLASH_SIZE_BYTES, (2 * 1024 * 1024)) +#ifndef PICO_FLASH_SIZE_BYTES +#define PICO_FLASH_SIZE_BYTES (2 * 1024 * 1024) +#endif + +// Drive high to force power supply into PWM mode (lower ripple on 3V3 at light loads) +#define PICO_SMPS_MODE_PIN 23 + +pico_board_cmake_set_default(PICO_RP2350_A2_SUPPORTED, 1) +#ifndef PICO_RP2350_A2_SUPPORTED +#define PICO_RP2350_A2_SUPPORTED 1 +#endif + +#endif From 78cc514670596207b378e4db18fee619a4b176a2 Mon Sep 17 00:00:00 2001 From: Tom Date: Sun, 20 Apr 2025 00:44:09 +0200 Subject: [PATCH 2/2] Set XOSC startup delay multiplier for the RP2350-USB-A --- src/boards/include/boards/waveshare_rp2350_usb_a.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/boards/include/boards/waveshare_rp2350_usb_a.h b/src/boards/include/boards/waveshare_rp2350_usb_a.h index 617ad80a5..9bc67eb83 100644 --- a/src/boards/include/boards/waveshare_rp2350_usb_a.h +++ b/src/boards/include/boards/waveshare_rp2350_usb_a.h @@ -17,6 +17,11 @@ pico_board_cmake_set(PICO_PLATFORM, rp2350) // For board detection #define WAVESHARE_RP2350_USB_A +// On some samples, the xosc can take longer to stabilize than is usual +#ifndef PICO_XOSC_STARTUP_DELAY_MULTIPLIER +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 +#endif + // --- RP2350 VARIANT --- #define PICO_RP2350A 1