Merge branch 'earlephilhower:master' into rp2350_adalogger
This commit is contained in:
commit
d938633048
42 changed files with 90 additions and 44 deletions
|
|
@ -36404,9 +36404,9 @@ generic_rp2350.menu.freq.276.build.f_cpu=276000000L
|
||||||
generic_rp2350.menu.freq.300=300 MHz (Overclock)
|
generic_rp2350.menu.freq.300=300 MHz (Overclock)
|
||||||
generic_rp2350.menu.freq.300.build.f_cpu=300000000L
|
generic_rp2350.menu.freq.300.build.f_cpu=300000000L
|
||||||
generic_rp2350.menu.variantchip.RP2350A=RP2350A
|
generic_rp2350.menu.variantchip.RP2350A=RP2350A
|
||||||
generic_rp2350.menu.variantchip.RP2350A.build.variantdefines=-DPICO_RP2350A=1
|
generic_rp2350.menu.variantchip.RP2350A.build.variantdefines=-D__PICO_RP2350A=1
|
||||||
generic_rp2350.menu.variantchip.RP2530B=RP2530B
|
generic_rp2350.menu.variantchip.RP2530B=RP2530B
|
||||||
generic_rp2350.menu.variantchip.RP2530B.build.variantdefines=-DPICO_RP2350B=1
|
generic_rp2350.menu.variantchip.RP2530B.build.variantdefines=-D__PICO_RP2350A=0
|
||||||
generic_rp2350.menu.psramcs.GPIOnone=None
|
generic_rp2350.menu.psramcs.GPIOnone=None
|
||||||
generic_rp2350.menu.psramcs.GPIOnone.build.psram_cs=
|
generic_rp2350.menu.psramcs.GPIOnone.build.psram_cs=
|
||||||
generic_rp2350.menu.psramcs.GPIO0=GPIO 0
|
generic_rp2350.menu.psramcs.GPIO0=GPIO 0
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,23 @@
|
||||||
#include "RP2040Version.h"
|
#include "RP2040Version.h"
|
||||||
#include "api/ArduinoAPI.h"
|
#include "api/ArduinoAPI.h"
|
||||||
#include "api/itoa.h" // ARM toolchain doesn't provide itoa etc, provide them
|
#include "api/itoa.h" // ARM toolchain doesn't provide itoa etc, provide them
|
||||||
|
#include <pico.h>
|
||||||
|
#undef PICO_RP2350A // Set in the RP2350 SDK boards file, overridden in the variant pins_arduino.h
|
||||||
#include <pins_arduino.h>
|
#include <pins_arduino.h>
|
||||||
#include <hardware/gpio.h> // Required for the port*Register macros
|
#include <hardware/gpio.h> // Required for the port*Register macros
|
||||||
#include "debug_internal.h"
|
#include "debug_internal.h"
|
||||||
|
|
||||||
|
// Chip sanity checking. SDK uses interesting way of separating 2350A from 2350B, see https://github.com/raspberrypi/pico-sdk/issues/2364
|
||||||
|
#if (!defined(PICO_RP2040) && !defined(PICO_RP2350)) || defined(PICO_RP2040) && defined(PICO_RP2350)
|
||||||
|
#error Invalid core definition. Either PICO_RP2040 or PICO_RP2350 must be defined.
|
||||||
|
#endif
|
||||||
|
#if defined(PICO_RP2350) && !defined(PICO_RP2350A)
|
||||||
|
#error Invalid RP2350 definition. Need to set PICO_RP2350A=0/1 for A/B variant
|
||||||
|
#endif
|
||||||
|
#if defined(PICO_RP2350B)
|
||||||
|
#error Do not define PICO_RP2350B. Use PICO_RP2350A=0 to indicate RP2350B. See the SDK for more details
|
||||||
|
#endif
|
||||||
|
|
||||||
// Try and make the best of the old Arduino abs() macro. When in C++, use
|
// Try and make the best of the old Arduino abs() macro. When in C++, use
|
||||||
// the sane std::abs() call, but for C code use their macro since stdlib abs()
|
// the sane std::abs() call, but for C code use their macro since stdlib abs()
|
||||||
// is int but their macro "works" for everything (with potential side effects)
|
// is int but their macro "works" for everything (with potential side effects)
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
#include "api/IPAddress.h"
|
#include "api/IPAddress.h"
|
||||||
|
using arduino::IPAddress;
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ extern void serialEvent1() __attribute__((weak));
|
||||||
extern void serialEvent2() __attribute__((weak));
|
extern void serialEvent2() __attribute__((weak));
|
||||||
|
|
||||||
bool SerialUART::setRX(pin_size_t pin) {
|
bool SerialUART::setRX(pin_size_t pin) {
|
||||||
#if defined(PICO_RP2350B)
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({1, 3, 13, 15, 17, 19, 29, 31, 33, 35, 45, 47}) /* UART0 */,
|
constexpr uint64_t valid[2] = { __bitset({1, 3, 13, 15, 17, 19, 29, 31, 33, 35, 45, 47}) /* UART0 */,
|
||||||
__bitset({5, 7, 9, 11, 21, 23, 25, 27, 37, 39, 41, 43}) /* UART1 */
|
__bitset({5, 7, 9, 11, 21, 23, 25, 27, 37, 39, 41, 43}) /* UART1 */
|
||||||
};
|
};
|
||||||
|
|
@ -64,7 +64,7 @@ bool SerialUART::setRX(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SerialUART::setTX(pin_size_t pin) {
|
bool SerialUART::setTX(pin_size_t pin) {
|
||||||
#if defined(PICO_RP2350B)
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({0, 2, 12, 14, 16, 18, 28, 30, 32, 34, 44, 46}) /* UART0 */,
|
constexpr uint64_t valid[2] = { __bitset({0, 2, 12, 14, 16, 18, 28, 30, 32, 34, 44, 46}) /* UART0 */,
|
||||||
__bitset({4, 6, 8, 10, 20, 22, 24, 26, 36, 38, 40, 42}) /* UART1 */
|
__bitset({4, 6, 8, 10, 20, 22, 24, 26, 36, 38, 40, 42}) /* UART1 */
|
||||||
};
|
};
|
||||||
|
|
@ -95,7 +95,7 @@ bool SerialUART::setTX(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SerialUART::setRTS(pin_size_t pin) {
|
bool SerialUART::setRTS(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({3, 15, 19, 31, 35, 47}) /* UART0 */,
|
constexpr uint64_t valid[2] = { __bitset({3, 15, 19, 31, 35, 47}) /* UART0 */,
|
||||||
__bitset({7, 11, 23, 27, 39, 43}) /* UART1 */
|
__bitset({7, 11, 23, 27, 39, 43}) /* UART1 */
|
||||||
};
|
};
|
||||||
|
|
@ -122,7 +122,7 @@ bool SerialUART::setRTS(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SerialUART::setCTS(pin_size_t pin) {
|
bool SerialUART::setCTS(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({2, 14, 18, 30, 34, 46}) /* UART0 */,
|
constexpr uint64_t valid[2] = { __bitset({2, 14, 18, 30, 34, 46}) /* UART0 */,
|
||||||
__bitset({6, 10, 22, 26, 38, 42}) /* UART1 */
|
__bitset({6, 10, 22, 26, 38, 42}) /* UART1 */
|
||||||
};
|
};
|
||||||
|
|
@ -182,7 +182,7 @@ static void _uart1IRQ();
|
||||||
// Does the selected TX/RX need UART_AUX function (rp2350)
|
// Does the selected TX/RX need UART_AUX function (rp2350)
|
||||||
static gpio_function_t __gpioFunction(int pin) {
|
static gpio_function_t __gpioFunction(int pin) {
|
||||||
switch (pin) {
|
switch (pin) {
|
||||||
#if defined(PICO_RP2350) || defined(PICO_RP2350B)
|
#if defined(PICO_RP2350) && !PICO_RP2350A
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
case 6:
|
case 6:
|
||||||
|
|
|
||||||
13
docs/adc.rst
13
docs/adc.rst
|
|
@ -12,9 +12,9 @@ need to be periodically sampled to be read by applications, easily, such as:
|
||||||
* Light dependent resistors (LDR), etc.
|
* Light dependent resistors (LDR), etc.
|
||||||
|
|
||||||
|
|
||||||
Up to 4 analog samples can be recorded by the hardware (``A0`` ... ``A3``), and all
|
Up to 4 (or 8 in the case of the RP2350B) analog samples can be recorded by the
|
||||||
recording is done at 16-bit levels (but be aware that the ADC in the Pico will only
|
hardware (``A0`` ... ``A3``), and all recording is done at 16-bit levels (but be
|
||||||
ever return values between 0...4095).
|
aware that the ADC in the Pico will only ever return values between 0...4095).
|
||||||
|
|
||||||
The interface for the ``ADCInput`` device is very similar to the ``I2S`` input
|
The interface for the ``ADCInput`` device is very similar to the ``I2S`` input
|
||||||
device, and most code can be ported simply by instantiating a ``ADCInput``
|
device, and most code can be ported simply by instantiating a ``ADCInput``
|
||||||
|
|
@ -26,11 +26,12 @@ allowed while in use.
|
||||||
ADC Input API
|
ADC Input API
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
ADCInput(pin0 [, pin1, pin2, pin3])
|
ADCInput(pin0 [, pin1, pin2, pin3[, pin4, pin5, pin6, pin7])
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Creates an ADC input object which will record the pins specified in the code.
|
Creates an ADC input object which will record the pins specified in the code.
|
||||||
Only pins ``A0`` ... ``A3`` can be used, and they must be specified in increasing
|
Only pins ``A0`` ... ``A3`` (``A7`` on RP2350B) can be used, and they must be
|
||||||
order (i.e. ``ADCInput(A0, A1);`` is valid, but ``ADCInput(A1, A0)`` is not.
|
specified in increasing order (i.e. ``ADCInput(A0, A1);`` is valid,
|
||||||
|
but ``ADCInput(A1, A0)`` is not.
|
||||||
|
|
||||||
bool setBuffers(size_t buffers, size_t bufferWords)
|
bool setBuffers(size_t buffers, size_t bufferWords)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ For only RP2350A variants (using the compile options, not the onboard ID registe
|
||||||
|
|
||||||
.. code:: cpp
|
.. code:: cpp
|
||||||
|
|
||||||
#if defined(PICO_RP2350) && !defined(PICO_RP2350B)
|
#if defined(PICO_RP2350A) && PICO_RP2350A
|
||||||
...RP2350A only code...
|
...RP2350A only code...
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -121,7 +121,7 @@ and not the chip ID register):
|
||||||
|
|
||||||
.. code:: cpp
|
.. code:: cpp
|
||||||
|
|
||||||
#if defined(PICO_RP2350B)
|
#if defined(PICO_RP2350A) && !PICO_RP2350A
|
||||||
...48-GPIO version code here
|
...48-GPIO version code here
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ bool ADCInput::setBuffers(size_t buffers, size_t bufferWords) {
|
||||||
|
|
||||||
int ADCInput::_mask(pin_size_t p) {
|
int ADCInput::_mask(pin_size_t p) {
|
||||||
switch (p) {
|
switch (p) {
|
||||||
#if !defined(PICO_RP2350B)
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
case 26: return 1;
|
case 26: return 1;
|
||||||
case 27: return 2;
|
case 27: return 2;
|
||||||
case 28: return 4;
|
case 28: return 4;
|
||||||
|
|
@ -106,7 +106,7 @@ bool ADCInput::begin() {
|
||||||
// Set up the GPIOs to go to ADC
|
// Set up the GPIOs to go to ADC
|
||||||
adc_init();
|
adc_init();
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
#if !defined(PICO_RP2350B)
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
int startpin = 26;
|
int startpin = 26;
|
||||||
int maxpin = 29;
|
int maxpin = 29;
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ void SPIClassRP2040::abortAsync() {
|
||||||
|
|
||||||
|
|
||||||
bool SPIClassRP2040::setRX(pin_size_t pin) {
|
bool SPIClassRP2040::setRX(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({0, 4, 16, 20, 32, 26}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({0, 4, 16, 20, 32, 26}) /* SPI0 */,
|
||||||
__bitset({8, 12, 24, 28, 40, 44}) /* SPI1 */
|
__bitset({8, 12, 24, 28, 40, 44}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
@ -290,7 +290,7 @@ bool SPIClassRP2040::setRX(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPIClassRP2040::setCS(pin_size_t pin) {
|
bool SPIClassRP2040::setCS(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({1, 5, 17, 21, 33, 37}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({1, 5, 17, 21, 33, 37}) /* SPI0 */,
|
||||||
__bitset({9, 13, 25, 29, 41, 45}) /* SPI1 */
|
__bitset({9, 13, 25, 29, 41, 45}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
@ -317,7 +317,7 @@ bool SPIClassRP2040::setCS(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPIClassRP2040::setSCK(pin_size_t pin) {
|
bool SPIClassRP2040::setSCK(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({2, 6, 18, 22, 34, 38}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({2, 6, 18, 22, 34, 38}) /* SPI0 */,
|
||||||
__bitset({10, 14, 26, 30, 42, 46}) /* SPI1 */
|
__bitset({10, 14, 26, 30, 42, 46}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
@ -344,7 +344,7 @@ bool SPIClassRP2040::setSCK(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPIClassRP2040::setTX(pin_size_t pin) {
|
bool SPIClassRP2040::setTX(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({3, 7, 19, 23, 35, 39}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({3, 7, 19, 23, 35, 39}) /* SPI0 */,
|
||||||
__bitset({11, 15, 27, 31, 43, 47}) /* SPI1 */
|
__bitset({11, 15, 27, 31, 43, 47}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ public:
|
||||||
return (reverseByte(w & 0xff) << 8) | (reverseByte(w >> 8));
|
return (reverseByte(w & 0xff) << 8) | (reverseByte(w >> 8));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
static constexpr int GPIOIRQREGS = 6;
|
static constexpr int GPIOIRQREGS = 6;
|
||||||
#else
|
#else
|
||||||
static constexpr int GPIOIRQREGS = 4;
|
static constexpr int GPIOIRQREGS = 4;
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ inline spi_cpha_t SPISlaveClass::cpha(SPISettings _spis) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPISlaveClass::setRX(pin_size_t pin) {
|
bool SPISlaveClass::setRX(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({0, 4, 16, 20, 32, 26}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({0, 4, 16, 20, 32, 26}) /* SPI0 */,
|
||||||
__bitset({8, 12, 24, 28, 40, 44}) /* SPI1 */
|
__bitset({8, 12, 24, 28, 40, 44}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
@ -106,7 +106,7 @@ bool SPISlaveClass::setRX(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPISlaveClass::setCS(pin_size_t pin) {
|
bool SPISlaveClass::setCS(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({1, 5, 17, 21, 33, 37}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({1, 5, 17, 21, 33, 37}) /* SPI0 */,
|
||||||
__bitset({9, 13, 25, 29, 41, 45}) /* SPI1 */
|
__bitset({9, 13, 25, 29, 41, 45}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
@ -133,7 +133,7 @@ bool SPISlaveClass::setCS(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPISlaveClass::setSCK(pin_size_t pin) {
|
bool SPISlaveClass::setSCK(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({2, 6, 18, 22, 34, 38}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({2, 6, 18, 22, 34, 38}) /* SPI0 */,
|
||||||
__bitset({10, 14, 26, 30, 42, 46}) /* SPI1 */
|
__bitset({10, 14, 26, 30, 42, 46}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
@ -160,7 +160,7 @@ bool SPISlaveClass::setSCK(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SPISlaveClass::setTX(pin_size_t pin) {
|
bool SPISlaveClass::setTX(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({3, 7, 19, 23, 35, 39}) /* SPI0 */,
|
constexpr uint64_t valid[2] = { __bitset({3, 7, 19, 23, 35, 39}) /* SPI0 */,
|
||||||
__bitset({11, 15, 27, 31, 43, 47}) /* SPI1 */
|
__bitset({11, 15, 27, 31, 43, 47}) /* SPI1 */
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ TwoWire::TwoWire(i2c_inst_t *i2c, pin_size_t sda, pin_size_t scl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TwoWire::setSDA(pin_size_t pin) {
|
bool TwoWire::setSDA(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44}) /* I2C0 */,
|
constexpr uint64_t valid[2] = { __bitset({0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44}) /* I2C0 */,
|
||||||
__bitset({2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46}) /* I2C1 */
|
__bitset({2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46}) /* I2C1 */
|
||||||
};
|
};
|
||||||
|
|
@ -76,7 +76,7 @@ bool TwoWire::setSDA(pin_size_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TwoWire::setSCL(pin_size_t pin) {
|
bool TwoWire::setSCL(pin_size_t pin) {
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
constexpr uint64_t valid[2] = { __bitset({1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45}) /* I2C0 */,
|
constexpr uint64_t valid[2] = { __bitset({1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45}) /* I2C0 */,
|
||||||
__bitset({3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47}) /* I2C1 */
|
__bitset({3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47}) /* I2C1 */
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ void __removeEthernetPacketHandler(int id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#define GPIOSTACKSIZE 8
|
#define GPIOSTACKSIZE 8
|
||||||
#ifdef PICO_RP2350B
|
#if defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
#define GPIOIRQREGS 6
|
#define GPIOIRQREGS 6
|
||||||
#define GPIOIRQREGSINIT 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
|
#define GPIOIRQREGSINIT 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ def BuildPSRAMFreq(name):
|
||||||
print("%s.menu.psramfreq.freq%d.build.psram_freq=-DRP2350_PSRAM_MAX_SCK_HZ=%d" % (name, s, s * 1000000))
|
print("%s.menu.psramfreq.freq%d.build.psram_freq=-DRP2350_PSRAM_MAX_SCK_HZ=%d" % (name, s, s * 1000000))
|
||||||
|
|
||||||
def BuildRP2350Variant(name):
|
def BuildRP2350Variant(name):
|
||||||
for l in [ ("RP2350A", "-DPICO_RP2350A=1"), ("RP2530B", "-DPICO_RP2350B=1") ]:
|
for l in [ ("RP2350A", "-D__PICO_RP2350A=1"), ("RP2530B", "-D__PICO_RP2350A=0") ]:
|
||||||
print("%s.menu.variantchip.%s=%s" % (name, l[0], l[0]))
|
print("%s.menu.variantchip.%s=%s" % (name, l[0], l[0]))
|
||||||
print("%s.menu.variantchip.%s.build.variantdefines=%s" % (name, l[0], l[1]))
|
print("%s.menu.variantchip.%s.build.variantdefines=%s" % (name, l[0], l[1]))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (7u)
|
#define PIN_LED (7u)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#define PICO_RP2350B 1
|
|
||||||
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (23u)
|
#define PIN_LED (23u)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
#define PINS_COUNT (30u)
|
#define PINS_COUNT (30u)
|
||||||
#define NUM_DIGITAL_PINS (30u)
|
#define NUM_DIGITAL_PINS (30u)
|
||||||
#define NUM_ANALOG_INPUTS (4u)
|
#define NUM_ANALOG_INPUTS (4u)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
#define PINS_COUNT (30u)
|
#define PINS_COUNT (30u)
|
||||||
#define NUM_DIGITAL_PINS (30u)
|
#define NUM_DIGITAL_PINS (30u)
|
||||||
#define NUM_ANALOG_INPUTS (4u)
|
#define NUM_ANALOG_INPUTS (4u)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (29u)
|
#define PIN_LED (29u)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (2u)
|
#define PIN_LED (2u)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// DatanoiseTV PicoADK v2 - Audio Development Kit with RP2350A
|
// DatanoiseTV PicoADK v2 - Audio Development Kit with RP2350A
|
||||||
// https://github.com/DatanoiseTV/PicoDSP-Hardware
|
// https://github.com/DatanoiseTV/PicoDSP-Hardware
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ static const uint8_t D29 = __PIN_D29;
|
||||||
static const uint8_t D29 = (29u);
|
static const uint8_t D29 = (29u);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(PICO_RP2350B)
|
#if defined(PICO_RP2040) || (defined(PICO_RP2350) && PICO_RP2350A)
|
||||||
|
|
||||||
#ifdef __PIN_A0
|
#ifdef __PIN_A0
|
||||||
static const uint8_t A0 = __PIN_A0;
|
static const uint8_t A0 = __PIN_A0;
|
||||||
|
|
@ -190,7 +190,7 @@ static const uint8_t A3 = __PIN_A3;
|
||||||
static const uint8_t A3 = (29u);
|
static const uint8_t A3 = (29u);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif defined(PICO_RP2350B)
|
#elif defined(PICO_RP2350) && !PICO_RP2350A // RP2350B
|
||||||
|
|
||||||
#ifdef __PIN_D30
|
#ifdef __PIN_D30
|
||||||
static const uint8_t D30 = __PIN_D30;
|
static const uint8_t D30 = __PIN_D30;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
|
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
|
||||||
|
|
||||||
|
#define PICO_RP2350A __PICO_RP2350A
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (25u)
|
#define PIN_LED (25u)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://github.com/Architeuthis-Flux/JumperlessV5/tree/main/Hardware/Jumperless23V50
|
// https://github.com/Architeuthis-Flux/JumperlessV5/tree/main/Hardware/Jumperless23V50
|
||||||
|
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (17u)
|
#define PIN_LED (17u)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
#include "../rpipico2/pins_arduino.h"
|
#include "../rpipico2/pins_arduino.h"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
#define RP2350_PSRAM_CS 8
|
#define RP2350_PSRAM_CS 8
|
||||||
#include "../rpipico2/pins_arduino.h"
|
#include "../rpipico2/pins_arduino.h"
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
// Enables external PSRAM
|
// Enables external PSRAM
|
||||||
#define RP2350_PSRAM_CS 47
|
#define RP2350_PSRAM_CS 47
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
|
|
||||||
// This is a bare board with no real predefined pins, so use generic
|
// This is a bare board with no real predefined pins, so use generic
|
||||||
#include "../generic/pins_arduino.h"
|
#include "../generic/pins_arduino.h"
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
#define RP2350_PSRAM_CS (47u)
|
#define RP2350_PSRAM_CS (47u)
|
||||||
#define RP2350_PSRAM_MAX_SCK_HZ (109*1000*1000)
|
#define RP2350_PSRAM_MAX_SCK_HZ (109*1000*1000)
|
||||||
|
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
|
|
||||||
/* Pins mappings for marked pins on the board */
|
/* Pins mappings for marked pins on the board */
|
||||||
static const uint8_t D0 = (0u);
|
static const uint8_t D0 = (0u);
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
#define RP2350_PSRAM_CS (47u)
|
#define RP2350_PSRAM_CS (47u)
|
||||||
#define RP2350_PSRAM_MAX_SCK_HZ (109*1000*1000)
|
#define RP2350_PSRAM_MAX_SCK_HZ (109*1000*1000)
|
||||||
|
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2530B
|
||||||
|
|
||||||
/* Pins mappings for marked pins on the board */
|
/* Pins mappings for marked pins on the board */
|
||||||
static const uint8_t D0 = (0u);
|
static const uint8_t D0 = (0u);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://github.com/rp-rs/rp-hal-boards/blob/main/boards/pimoroni-plasma-2040/src/lib.rs
|
// https://github.com/rp-rs/rp-hal-boards/blob/main/boards/pimoroni-plasma-2040/src/lib.rs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// This is a bare board with few predefined pins, so based on generic
|
// This is a bare board with few predefined pins, so based on generic
|
||||||
|
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
|
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (25u)
|
#define PIN_LED (25u)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
|
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (64u)
|
#define PIN_LED (64u)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://www.seeedstudio.com/Seeed-XIAO-RP2350-p-5944.html
|
// https://www.seeedstudio.com/Seeed-XIAO-RP2350-p-5944.html
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://rp2xxx-stamp-carrier-xl.solder.party/
|
// https://rp2xxx-stamp-carrier-xl.solder.party/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
// Pin definitions taken from:
|
// Pin definitions taken from:
|
||||||
// https://rp2xxx-stamp-carrier-xl.solder.party/
|
// https://rp2xxx-stamp-carrier-xl.solder.party/
|
||||||
|
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (3u)
|
#define PIN_LED (3u)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
#define PIN_LED (25u)
|
#define PIN_LED (25u)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <cyw43_wrappers.h>
|
#include <cyw43_wrappers.h>
|
||||||
|
|
||||||
#define PICO_RP2350B 1
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
#define PICO_RP2350A 0
|
|
||||||
|
|
||||||
#define PINS_COUNT (48u)
|
#define PINS_COUNT (48u)
|
||||||
#define NUM_DIGITAL_PINS (48u)
|
#define NUM_DIGITAL_PINS (48u)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
// Taken from schematic at https://cdn.sparkfun.com/assets/e/2/7/6/b/ProMicroRP2040_Graphical_Datasheet.pdf
|
// Taken from schematic at https://cdn.sparkfun.com/assets/e/2/7/6/b/ProMicroRP2040_Graphical_Datasheet.pdf
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define PICO_RP2350A 1
|
||||||
|
|
||||||
#include <cyw43_wrappers.h>
|
#include <cyw43_wrappers.h>
|
||||||
|
|
||||||
// LEDs
|
// LEDs
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define PICO_RP2350A 0
|
#define PICO_RP2350A 0 // RP2350B
|
||||||
|
|
||||||
#include <cyw43_wrappers.h>
|
#include <cyw43_wrappers.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
|
#define PICO_RP2350A 1
|
||||||
#include "../generic/pins_arduino.h"
|
#include "../generic/pins_arduino.h"
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
|
#define PICO_RP2350A 1
|
||||||
#include "../generic/pins_arduino.h"
|
#include "../generic/pins_arduino.h"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue