From 7517bb0c1ab92a2ad168eb634fbe5ba68a004aa5 Mon Sep 17 00:00:00 2001 From: David Richmond Date: Thu, 24 Apr 2025 06:07:40 +0000 Subject: [PATCH 1/2] Added initial support for the waveshare rp2350 usb-a board Board details can be found at: https://www.waveshare.com/rp2350-usb-a.htm --- .../boards/waveshare_rp2350_usb/board.c | 17 +++++++ .../waveshare_rp2350_usb/mpconfigboard.h | 15 ++++++ .../waveshare_rp2350_usb/mpconfigboard.mk | 12 +++++ .../pico-sdk-configboard.h | 9 ++++ .../boards/waveshare_rp2350_usb/pins.c | 50 +++++++++++++++++++ 5 files changed, 103 insertions(+) create mode 100644 ports/raspberrypi/boards/waveshare_rp2350_usb/board.c create mode 100644 ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.h create mode 100644 ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.mk create mode 100644 ports/raspberrypi/boards/waveshare_rp2350_usb/pico-sdk-configboard.h create mode 100644 ports/raspberrypi/boards/waveshare_rp2350_usb/pins.c diff --git a/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c b/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c new file mode 100644 index 0000000000000..6834d2ad64f6e --- /dev/null +++ b/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c @@ -0,0 +1,17 @@ +// This file is part of the CircuitPython project: https://circuitpython.org +// +// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries +// +// SPDX-License-Identifier: MIT + +#include "supervisor/board.h" + +#include "shared-bindings/digitalio/DigitalInOut.h" +#include "shared-bindings/usb_host/Port.h" +#include "hardware/gpio.h" + +// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here. + +void board_init(void){ + common_hal_usb_host_port_construct(&pin_GPIO12, &pin_GPIO13); +} diff --git a/ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.h b/ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.h new file mode 100644 index 0000000000000..f4c53a8aff83e --- /dev/null +++ b/ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.h @@ -0,0 +1,15 @@ +// This file is part of the CircuitPython project: https://circuitpython.org +// +// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries +// SPDX-FileCopyrightText: Copyright (c) 2024 Cooper Dalrymple +// +// SPDX-License-Identifier: MIT + +#pragma once + +#define MICROPY_HW_BOARD_NAME "Waveshare RP2350-USB-A" +#define MICROPY_HW_MCU_NAME "rp2350" + +#define MICROPY_HW_NEOPIXEL (&pin_GPIO16) + +#define CIRCUITPY_USB_HOST_INSTANCE 1 diff --git a/ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.mk b/ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.mk new file mode 100644 index 0000000000000..4494b1c3e1f60 --- /dev/null +++ b/ports/raspberrypi/boards/waveshare_rp2350_usb/mpconfigboard.mk @@ -0,0 +1,12 @@ +USB_VID = 0x2E8A +USB_PID = 0x10B1 +USB_PRODUCT = "RP2350-USB-A" +USB_MANUFACTURER = "Waveshare Electronics" + +CHIP_VARIANT = RP2350 +CHIP_PACKAGE = A +CHIP_FAMILY = rp2 + +EXTERNAL_FLASH_DEVICES = "W25Q16JVxQ" + +CIRCUITPY__EVE = 1 diff --git a/ports/raspberrypi/boards/waveshare_rp2350_usb/pico-sdk-configboard.h b/ports/raspberrypi/boards/waveshare_rp2350_usb/pico-sdk-configboard.h new file mode 100644 index 0000000000000..110195b779498 --- /dev/null +++ b/ports/raspberrypi/boards/waveshare_rp2350_usb/pico-sdk-configboard.h @@ -0,0 +1,9 @@ +// This file is part of the CircuitPython project: https://circuitpython.org +// +// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries +// +// SPDX-License-Identifier: MIT + +#pragma once + +// Put board-specific pico-sdk definitions here. This file must exist. diff --git a/ports/raspberrypi/boards/waveshare_rp2350_usb/pins.c b/ports/raspberrypi/boards/waveshare_rp2350_usb/pins.c new file mode 100644 index 0000000000000..1f80afab9663f --- /dev/null +++ b/ports/raspberrypi/boards/waveshare_rp2350_usb/pins.c @@ -0,0 +1,50 @@ +// This file is part of the CircuitPython project: https://circuitpython.org +// +// SPDX-FileCopyrightText: Copyright (c) 2021 Scott Shawcroft for Adafruit Industries +// +// SPDX-License-Identifier: MIT + +#include "shared-bindings/board/__init__.h" + +static const mp_rom_map_elem_t board_module_globals_table[] = { + CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS + + // 0-10 are wired up to the header + { MP_ROM_QSTR(MP_QSTR_GP0), MP_ROM_PTR(&pin_GPIO0) }, + { MP_ROM_QSTR(MP_QSTR_GP1), MP_ROM_PTR(&pin_GPIO1) }, + { MP_ROM_QSTR(MP_QSTR_GP2), MP_ROM_PTR(&pin_GPIO2) }, + { MP_ROM_QSTR(MP_QSTR_GP3), MP_ROM_PTR(&pin_GPIO3) }, + { MP_ROM_QSTR(MP_QSTR_GP4), MP_ROM_PTR(&pin_GPIO4) }, + { MP_ROM_QSTR(MP_QSTR_GP5), MP_ROM_PTR(&pin_GPIO5) }, + { MP_ROM_QSTR(MP_QSTR_GP6), MP_ROM_PTR(&pin_GPIO6) }, + { MP_ROM_QSTR(MP_QSTR_GP7), MP_ROM_PTR(&pin_GPIO7) }, + { MP_ROM_QSTR(MP_QSTR_GP8), MP_ROM_PTR(&pin_GPIO8) }, + { MP_ROM_QSTR(MP_QSTR_GP9), MP_ROM_PTR(&pin_GPIO9) }, + { MP_ROM_QSTR(MP_QSTR_GP10), MP_ROM_PTR(&pin_GPIO10) }, + + // 26-29 are wired to the header, also as analog + { MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) }, + { MP_ROM_QSTR(MP_QSTR_GP26), MP_ROM_PTR(&pin_GPIO26) }, + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) }, + + { MP_ROM_QSTR(MP_QSTR_GP27_A1), MP_ROM_PTR(&pin_GPIO27) }, + { MP_ROM_QSTR(MP_QSTR_GP27), MP_ROM_PTR(&pin_GPIO27) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) }, + + { MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) }, + { MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) }, + + { MP_ROM_QSTR(MP_QSTR_GP29_A3), MP_ROM_PTR(&pin_GPIO29) }, + { MP_ROM_QSTR(MP_QSTR_GP29), MP_ROM_PTR(&pin_GPIO29) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) }, + + // 12 & 13 are pio USB P and N respectively + { MP_ROM_QSTR(MP_QSTR_USB_HOST_DATA_PLUS), MP_ROM_PTR(&pin_GPIO12) }, + { MP_ROM_QSTR(MP_QSTR_USB_HOST_DATA_MINUS), MP_ROM_PTR(&pin_GPIO13) }, + + // RGB LED on 16 + { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO16) }, + { MP_ROM_QSTR(MP_QSTR_GP16), MP_ROM_PTR(&pin_GPIO16) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); From 5572f0e49aba1dd324af5ea69b784683836de27b Mon Sep 17 00:00:00 2001 From: David Richmond Date: Thu, 8 May 2025 07:41:33 +0000 Subject: [PATCH 2/2] fixed formatting on board.c --- ports/raspberrypi/boards/waveshare_rp2350_usb/board.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c b/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c index 6834d2ad64f6e..7beb58abe285f 100644 --- a/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c +++ b/ports/raspberrypi/boards/waveshare_rp2350_usb/board.c @@ -12,6 +12,6 @@ // Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here. -void board_init(void){ - common_hal_usb_host_port_construct(&pin_GPIO12, &pin_GPIO13); +void board_init(void) { + common_hal_usb_host_port_construct(&pin_GPIO12, &pin_GPIO13); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy