-
Notifications
You must be signed in to change notification settings - Fork 935
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SparkFun ThingPlus RP2350 #2038
Open
sfe-SparkFro
wants to merge
2
commits into
raspberrypi:develop
Choose a base branch
from
sparkfun:add_sparkfun_thingplus_rp2350
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
/* | ||
* Copyright (c) 2024 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 | ||
// ----------------------------------------------------- | ||
// Board definition for the SparkFun RP2350 Thing Plus | ||
// | ||
// This header may be included by other board headers as "boards/sparkfun_thingplus_rp2350.h" | ||
|
||
// pico_cmake_set PICO_PLATFORM=rp2350 | ||
// pico_cmake_set PICO_CYW43_SUPPORTED = 1 | ||
|
||
#ifndef _BOARDS_SPARKFUN_THINGPLUS_RP2350_H | ||
#define _BOARDS_SPARKFUN_THINGPLUS_RP2350_H | ||
|
||
// For board detection | ||
#define SPARKFUN_THINGPLUS_RP2350 | ||
|
||
// --- 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 | ||
|
||
// --- LED --- | ||
// no PICO_DEFAULT_LED_PIN - LED is on Wireless chip | ||
#ifndef PICO_DEFAULT_WS2812_PIN | ||
#define PICO_DEFAULT_WS2812_PIN 14 | ||
#endif | ||
|
||
// --- I2C --- Qwiic connector is on these pins | ||
#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 | ||
|
||
// --- FLASH --- | ||
|
||
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1 | ||
|
||
#ifndef PICO_FLASH_SPI_CLKDIV | ||
#define PICO_FLASH_SPI_CLKDIV 2 | ||
#endif | ||
|
||
// pico_cmake_set_default PICO_FLASH_SIZE_BYTES = (16 * 1024 * 1024) | ||
#ifndef PICO_FLASH_SIZE_BYTES | ||
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024) | ||
#endif | ||
|
||
// The thing plus has a SD Card. | ||
#ifndef PICO_SD_CLK_PIN | ||
#define PICO_SD_CLK_PIN 2 | ||
#endif | ||
#ifndef PICO_SD_CMD_PIN | ||
#define PICO_SD_CMD_PIN 3 | ||
#endif | ||
#ifndef PICO_SD_DAT0_PIN | ||
#define PICO_SD_DAT0_PIN 4 | ||
#endif | ||
#ifndef PICO_SD_DAT3_PIN | ||
#define PICO_SD_DAT3_PIN 8 // DAT3 of the SD card is the chip select pin | ||
#endif | ||
#ifndef PICO_SD_DAT_PIN_COUNT | ||
#define PICO_SD_DAT_PIN_COUNT 1 | ||
#endif | ||
|
||
#ifndef CYW43_WL_GPIO_COUNT | ||
#define CYW43_WL_GPIO_COUNT 3 | ||
#endif | ||
|
||
#ifndef CYW43_WL_GPIO_LED_PIN | ||
#define CYW43_WL_GPIO_LED_PIN 0 | ||
#endif | ||
|
||
// If CYW43_WL_GPIO_VBUS_PIN is defined then a CYW43 GPIO has to be used to read VBUS. | ||
// This can be passed to cyw43_arch_gpio_get to determine if the device is battery powered. | ||
// PICO_VBUS_PIN and CYW43_WL_GPIO_VBUS_PIN should not both be defined. | ||
#ifndef CYW43_WL_GPIO_VBUS_PIN | ||
#define CYW43_WL_GPIO_VBUS_PIN 2 | ||
#endif | ||
|
||
// pico_cmake_set_default PICO_RP2350_A2_SUPPORTED = 1 | ||
#ifndef PICO_RP2350_A2_SUPPORTED | ||
#define PICO_RP2350_A2_SUPPORTED 1 | ||
#endif | ||
|
||
// cyw43 SPI pins can't be changed at runtime | ||
#ifndef CYW43_PIN_WL_DYNAMIC | ||
#define CYW43_PIN_WL_DYNAMIC 0 | ||
#endif | ||
|
||
// gpio pin to power up the cyw43 chip | ||
#ifndef CYW43_DEFAULT_PIN_WL_REG_ON | ||
#define CYW43_DEFAULT_PIN_WL_REG_ON 23u | ||
#endif | ||
|
||
// gpio pin for spi data out to the cyw43 chip | ||
#ifndef CYW43_DEFAULT_PIN_WL_DATA_OUT | ||
#define CYW43_DEFAULT_PIN_WL_DATA_OUT 24u | ||
#endif | ||
|
||
// gpio pin for spi data in from the cyw43 chip | ||
#ifndef CYW43_DEFAULT_PIN_WL_DATA_IN | ||
#define CYW43_DEFAULT_PIN_WL_DATA_IN 24u | ||
#endif | ||
|
||
// gpio (irq) pin for the irq line from the cyw43 chip | ||
#ifndef CYW43_DEFAULT_PIN_WL_HOST_WAKE | ||
#define CYW43_DEFAULT_PIN_WL_HOST_WAKE 24u | ||
#endif | ||
|
||
// gpio pin for the spi clock line to the cyw43 chip | ||
#ifndef CYW43_DEFAULT_PIN_WL_CLOCK | ||
#define CYW43_DEFAULT_PIN_WL_CLOCK 29u | ||
#endif | ||
|
||
// gpio pin for the spi chip select to the cyw43 chip | ||
#ifndef CYW43_DEFAULT_PIN_WL_CS | ||
#define CYW43_DEFAULT_PIN_WL_CS 25u | ||
#endif | ||
|
||
#endif |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm just looking at this as part of the update for CYW43 support in arduino-pico on the RP2350 boards, so maybe I'm missing something, but are data_in, data_out, and host_wake all on pin 24?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep! Theoretically any GPIO pins can be used (see here: #1938 (comment)), but Raspberry Pi managed to cleverly connect all 3 pins of the radio to a single GPIO pin on the host processor. For reference, see the Pico W datasheet (schematic on page 23). This board uses the same connections with the same resistors to avoid contention.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/raspberrypi/pico-sdk/blob/develop/src/rp2_common/pico_cyw43_driver/cyw43_bus_pio_spi.c is where the software-side magic works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, thanks for the explanation!