Merge branch 'earlephilhower:master' into metro-rp2040

This commit is contained in:
Limor "Ladyada" Fried 2023-08-03 15:49:04 -04:00 committed by GitHub
commit d4fe0c68f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 379 additions and 1 deletions

View file

@ -52,6 +52,7 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
* Pimoroni PGA2040 * Pimoroni PGA2040
* Seeed Indicator RP2040 * Seeed Indicator RP2040
* Seeed XIAO RP2040 * Seeed XIAO RP2040
* Silicognition RP2040-Shim
* Solder Party RP2040 Stamp * Solder Party RP2040 Stamp
* SparkFun ProMicro RP2040 * SparkFun ProMicro RP2040
* SparkFun Thing Plus RP2040 * SparkFun Thing Plus RP2040

View file

@ -10964,6 +10964,224 @@ pimoroni_plasma2040.menu.uploadmethod.picodebug.upload.maximum_data_size=245760
pimoroni_plasma2040.menu.uploadmethod.picodebug.upload.tool=picodebug pimoroni_plasma2040.menu.uploadmethod.picodebug.upload.tool=picodebug
pimoroni_plasma2040.menu.uploadmethod.picodebug.upload.tool.default=picodebug pimoroni_plasma2040.menu.uploadmethod.picodebug.upload.tool.default=picodebug
# -----------------------------------
# Silicognition RP2040-Shim
# -----------------------------------
silicognition_rp2040_shim.name=Silicognition RP2040-Shim
silicognition_rp2040_shim.vid.0=0x1209
silicognition_rp2040_shim.pid.0=0xf502
silicognition_rp2040_shim.vid.1=0x1209
silicognition_rp2040_shim.pid.1=0xf502
silicognition_rp2040_shim.vid.2=0x1209
silicognition_rp2040_shim.pid.2=0xf502
silicognition_rp2040_shim.vid.3=0x1209
silicognition_rp2040_shim.pid.3=0xf502
silicognition_rp2040_shim.vid.4=0x1209
silicognition_rp2040_shim.pid.4=0xf502
silicognition_rp2040_shim.vid.5=0x1209
silicognition_rp2040_shim.pid.5=0xf502
silicognition_rp2040_shim.vid.6=0x1209
silicognition_rp2040_shim.pid.6=0xf502
silicognition_rp2040_shim.vid.7=0x1209
silicognition_rp2040_shim.pid.7=0xf502
silicognition_rp2040_shim.build.usbvid=-DUSBD_VID=0x1209
silicognition_rp2040_shim.build.usbpid=-DUSBD_PID=0xf502
silicognition_rp2040_shim.build.usbpwr=-DUSBD_MAX_POWER_MA=500
silicognition_rp2040_shim.build.board=SILICOGNITION_RP2040_SHIM
silicognition_rp2040_shim.build.mcu=cortex-m0plus
silicognition_rp2040_shim.build.variant=silicognition_rp2040_shim
silicognition_rp2040_shim.upload.maximum_size=4194304
silicognition_rp2040_shim.upload.wait_for_upload_port=true
silicognition_rp2040_shim.upload.erase_cmd=
silicognition_rp2040_shim.serial.disableDTR=false
silicognition_rp2040_shim.serial.disableRTS=false
silicognition_rp2040_shim.build.f_cpu=125000000
silicognition_rp2040_shim.build.led=
silicognition_rp2040_shim.build.core=rp2040
silicognition_rp2040_shim.build.ldscript=memmap_default.ld
silicognition_rp2040_shim.build.boot2=boot2_generic_03h_4_padded_checksum
silicognition_rp2040_shim.build.usb_manufacturer="Silicognition"
silicognition_rp2040_shim.build.usb_product="RP2040-Shim"
silicognition_rp2040_shim.menu.flash.4194304_0=4MB (no FS)
silicognition_rp2040_shim.menu.flash.4194304_0.upload.maximum_size=4190208
silicognition_rp2040_shim.menu.flash.4194304_0.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_0.build.flash_length=4190208
silicognition_rp2040_shim.menu.flash.4194304_0.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_0.build.fs_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_0.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_65536=4MB (Sketch: 4032KB, FS: 64KB)
silicognition_rp2040_shim.menu.flash.4194304_65536.upload.maximum_size=4124672
silicognition_rp2040_shim.menu.flash.4194304_65536.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_65536.build.flash_length=4124672
silicognition_rp2040_shim.menu.flash.4194304_65536.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_65536.build.fs_start=272560128
silicognition_rp2040_shim.menu.flash.4194304_65536.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_131072=4MB (Sketch: 3968KB, FS: 128KB)
silicognition_rp2040_shim.menu.flash.4194304_131072.upload.maximum_size=4059136
silicognition_rp2040_shim.menu.flash.4194304_131072.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_131072.build.flash_length=4059136
silicognition_rp2040_shim.menu.flash.4194304_131072.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_131072.build.fs_start=272494592
silicognition_rp2040_shim.menu.flash.4194304_131072.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_262144=4MB (Sketch: 3840KB, FS: 256KB)
silicognition_rp2040_shim.menu.flash.4194304_262144.upload.maximum_size=3928064
silicognition_rp2040_shim.menu.flash.4194304_262144.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_262144.build.flash_length=3928064
silicognition_rp2040_shim.menu.flash.4194304_262144.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_262144.build.fs_start=272363520
silicognition_rp2040_shim.menu.flash.4194304_262144.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_524288=4MB (Sketch: 3584KB, FS: 512KB)
silicognition_rp2040_shim.menu.flash.4194304_524288.upload.maximum_size=3665920
silicognition_rp2040_shim.menu.flash.4194304_524288.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_524288.build.flash_length=3665920
silicognition_rp2040_shim.menu.flash.4194304_524288.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_524288.build.fs_start=272101376
silicognition_rp2040_shim.menu.flash.4194304_524288.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_1048576=4MB (Sketch: 3MB, FS: 1MB)
silicognition_rp2040_shim.menu.flash.4194304_1048576.upload.maximum_size=3141632
silicognition_rp2040_shim.menu.flash.4194304_1048576.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_1048576.build.flash_length=3141632
silicognition_rp2040_shim.menu.flash.4194304_1048576.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_1048576.build.fs_start=271577088
silicognition_rp2040_shim.menu.flash.4194304_1048576.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_2097152=4MB (Sketch: 2MB, FS: 2MB)
silicognition_rp2040_shim.menu.flash.4194304_2097152.upload.maximum_size=2093056
silicognition_rp2040_shim.menu.flash.4194304_2097152.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_2097152.build.flash_length=2093056
silicognition_rp2040_shim.menu.flash.4194304_2097152.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_2097152.build.fs_start=270528512
silicognition_rp2040_shim.menu.flash.4194304_2097152.build.fs_end=272625664
silicognition_rp2040_shim.menu.flash.4194304_3145728=4MB (Sketch: 1MB, FS: 3MB)
silicognition_rp2040_shim.menu.flash.4194304_3145728.upload.maximum_size=1044480
silicognition_rp2040_shim.menu.flash.4194304_3145728.build.flash_total=4194304
silicognition_rp2040_shim.menu.flash.4194304_3145728.build.flash_length=1044480
silicognition_rp2040_shim.menu.flash.4194304_3145728.build.eeprom_start=272625664
silicognition_rp2040_shim.menu.flash.4194304_3145728.build.fs_start=269479936
silicognition_rp2040_shim.menu.flash.4194304_3145728.build.fs_end=272625664
silicognition_rp2040_shim.menu.freq.133=133 MHz
silicognition_rp2040_shim.menu.freq.133.build.f_cpu=133000000L
silicognition_rp2040_shim.menu.freq.50=50 MHz
silicognition_rp2040_shim.menu.freq.50.build.f_cpu=50000000L
silicognition_rp2040_shim.menu.freq.100=100 MHz
silicognition_rp2040_shim.menu.freq.100.build.f_cpu=100000000L
silicognition_rp2040_shim.menu.freq.120=120 MHz
silicognition_rp2040_shim.menu.freq.120.build.f_cpu=120000000L
silicognition_rp2040_shim.menu.freq.125=125 MHz
silicognition_rp2040_shim.menu.freq.125.build.f_cpu=125000000L
silicognition_rp2040_shim.menu.freq.150=150 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.150.build.f_cpu=150000000L
silicognition_rp2040_shim.menu.freq.175=175 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.175.build.f_cpu=175000000L
silicognition_rp2040_shim.menu.freq.200=200 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.200.build.f_cpu=200000000L
silicognition_rp2040_shim.menu.freq.225=225 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.225.build.f_cpu=225000000L
silicognition_rp2040_shim.menu.freq.240=240 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.240.build.f_cpu=240000000L
silicognition_rp2040_shim.menu.freq.250=250 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.250.build.f_cpu=250000000L
silicognition_rp2040_shim.menu.freq.275=275 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.275.build.f_cpu=275000000L
silicognition_rp2040_shim.menu.freq.300=300 MHz (Overclock)
silicognition_rp2040_shim.menu.freq.300.build.f_cpu=300000000L
silicognition_rp2040_shim.menu.opt.Small=Small (-Os) (standard)
silicognition_rp2040_shim.menu.opt.Small.build.flags.optimize=-Os
silicognition_rp2040_shim.menu.opt.Optimize=Optimize (-O)
silicognition_rp2040_shim.menu.opt.Optimize.build.flags.optimize=-O
silicognition_rp2040_shim.menu.opt.Optimize2=Optimize More (-O2)
silicognition_rp2040_shim.menu.opt.Optimize2.build.flags.optimize=-O2
silicognition_rp2040_shim.menu.opt.Optimize3=Optimize Even More (-O3)
silicognition_rp2040_shim.menu.opt.Optimize3.build.flags.optimize=-O3
silicognition_rp2040_shim.menu.opt.Fast=Fast (-Ofast) (maybe slower)
silicognition_rp2040_shim.menu.opt.Fast.build.flags.optimize=-Ofast
silicognition_rp2040_shim.menu.opt.Debug=Debug (-Og)
silicognition_rp2040_shim.menu.opt.Debug.build.flags.optimize=-Og
silicognition_rp2040_shim.menu.rtti.Disabled=Disabled
silicognition_rp2040_shim.menu.rtti.Disabled.build.flags.rtti=-fno-rtti
silicognition_rp2040_shim.menu.rtti.Enabled=Enabled
silicognition_rp2040_shim.menu.rtti.Enabled.build.flags.rtti=
silicognition_rp2040_shim.menu.stackprotect.Disabled=Disabled
silicognition_rp2040_shim.menu.stackprotect.Disabled.build.flags.stackprotect=
silicognition_rp2040_shim.menu.stackprotect.Enabled=Enabled
silicognition_rp2040_shim.menu.stackprotect.Enabled.build.flags.stackprotect=-fstack-protector
silicognition_rp2040_shim.menu.exceptions.Disabled=Disabled
silicognition_rp2040_shim.menu.exceptions.Disabled.build.flags.exceptions=-fno-exceptions
silicognition_rp2040_shim.menu.exceptions.Disabled.build.flags.libstdcpp=-lstdc++
silicognition_rp2040_shim.menu.exceptions.Enabled=Enabled
silicognition_rp2040_shim.menu.exceptions.Enabled.build.flags.exceptions=-fexceptions
silicognition_rp2040_shim.menu.exceptions.Enabled.build.flags.libstdcpp=-lstdc++-exc
silicognition_rp2040_shim.menu.dbgport.Disabled=Disabled
silicognition_rp2040_shim.menu.dbgport.Disabled.build.debug_port=
silicognition_rp2040_shim.menu.dbgport.Serial=Serial
silicognition_rp2040_shim.menu.dbgport.Serial.build.debug_port=-DDEBUG_RP2040_PORT=Serial
silicognition_rp2040_shim.menu.dbgport.Serial1=Serial1
silicognition_rp2040_shim.menu.dbgport.Serial1.build.debug_port=-DDEBUG_RP2040_PORT=Serial1
silicognition_rp2040_shim.menu.dbgport.Serial2=Serial2
silicognition_rp2040_shim.menu.dbgport.Serial2.build.debug_port=-DDEBUG_RP2040_PORT=Serial2
silicognition_rp2040_shim.menu.dbglvl.None=None
silicognition_rp2040_shim.menu.dbglvl.None.build.debug_level=
silicognition_rp2040_shim.menu.dbglvl.Core=Core
silicognition_rp2040_shim.menu.dbglvl.Core.build.debug_level=-DDEBUG_RP2040_CORE
silicognition_rp2040_shim.menu.dbglvl.SPI=SPI
silicognition_rp2040_shim.menu.dbglvl.SPI.build.debug_level=-DDEBUG_RP2040_SPI
silicognition_rp2040_shim.menu.dbglvl.Wire=Wire
silicognition_rp2040_shim.menu.dbglvl.Wire.build.debug_level=-DDEBUG_RP2040_WIRE
silicognition_rp2040_shim.menu.dbglvl.All=All
silicognition_rp2040_shim.menu.dbglvl.All.build.debug_level=-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE
silicognition_rp2040_shim.menu.dbglvl.NDEBUG=NDEBUG
silicognition_rp2040_shim.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG
silicognition_rp2040_shim.menu.usbstack.picosdk=Pico SDK
silicognition_rp2040_shim.menu.usbstack.picosdk.build.usbstack_flags=
silicognition_rp2040_shim.menu.usbstack.tinyusb=Adafruit TinyUSB
silicognition_rp2040_shim.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"
silicognition_rp2040_shim.menu.usbstack.nousb=No USB
silicognition_rp2040_shim.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico"
silicognition_rp2040_shim.menu.ipbtstack.ipv4only=IPv4 Only
silicognition_rp2040_shim.menu.ipbtstack.ipv4only.build.libpicow=libpicow-noipv6-nobtc-noble.a
silicognition_rp2040_shim.menu.ipbtstack.ipv4only.build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1
silicognition_rp2040_shim.menu.ipbtstack.ipv4ipv6=IPv4 + IPv6
silicognition_rp2040_shim.menu.ipbtstack.ipv4ipv6.build.libpicow=libpicow-ipv6-nobtc-noble.a
silicognition_rp2040_shim.menu.ipbtstack.ipv4ipv6.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1
silicognition_rp2040_shim.menu.ipbtstack.ipv4btcble=IPv4 + Bluetooth
silicognition_rp2040_shim.menu.ipbtstack.ipv4btcble.build.libpicow=libpicow-noipv6-btc-ble.a
silicognition_rp2040_shim.menu.ipbtstack.ipv4btcble.build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1
silicognition_rp2040_shim.menu.ipbtstack.ipv4ipv6btcble=IPv4 + IPv6 + Bluetooth
silicognition_rp2040_shim.menu.ipbtstack.ipv4ipv6btcble.build.libpicow=libpicow-ipv6-btc-ble.a
silicognition_rp2040_shim.menu.ipbtstack.ipv4ipv6btcble.build.libpicowdefs=-DLWIP_IPV6=1 -DLWIP_IPV4=1 -DENABLE_CLASSIC=1 -DENABLE_BLE=1
silicognition_rp2040_shim.menu.uploadmethod.default=Default (UF2)
silicognition_rp2040_shim.menu.uploadmethod.default.build.ram_length=256k
silicognition_rp2040_shim.menu.uploadmethod.default.build.debugscript=picoprobe_cmsis_dap.tcl
silicognition_rp2040_shim.menu.uploadmethod.default.upload.maximum_data_size=262144
silicognition_rp2040_shim.menu.uploadmethod.default.upload.tool=uf2conv
silicognition_rp2040_shim.menu.uploadmethod.default.upload.tool.default=uf2conv
silicognition_rp2040_shim.menu.uploadmethod.default.upload.tool.network=uf2conv-network
silicognition_rp2040_shim.menu.uploadmethod.picotool=Picotool
silicognition_rp2040_shim.menu.uploadmethod.picotool.build.ram_length=256k
silicognition_rp2040_shim.menu.uploadmethod.picotool.build.debugscript=picoprobe.tcl
silicognition_rp2040_shim.menu.uploadmethod.picotool.build.picodebugflags=-DENABLE_PICOTOOL_USB
silicognition_rp2040_shim.menu.uploadmethod.picotool.upload.maximum_data_size=262144
silicognition_rp2040_shim.menu.uploadmethod.picotool.upload.tool=picotool
silicognition_rp2040_shim.menu.uploadmethod.picotool.upload.tool.default=picotool
silicognition_rp2040_shim.menu.uploadmethod.picoprobe=Picoprobe
silicognition_rp2040_shim.menu.uploadmethod.picoprobe.build.ram_length=256k
silicognition_rp2040_shim.menu.uploadmethod.picoprobe.build.debugscript=picoprobe.tcl
silicognition_rp2040_shim.menu.uploadmethod.picoprobe.upload.maximum_data_size=262144
silicognition_rp2040_shim.menu.uploadmethod.picoprobe.upload.tool=picoprobe
silicognition_rp2040_shim.menu.uploadmethod.picoprobe.upload.tool.default=picoprobe
silicognition_rp2040_shim.menu.uploadmethod.picoprobe_cmsis_dap=Picoprobe (CMSIS-DAP)
silicognition_rp2040_shim.menu.uploadmethod.picoprobe_cmsis_dap.build.ram_length=256k
silicognition_rp2040_shim.menu.uploadmethod.picoprobe_cmsis_dap.build.debugscript=picoprobe_cmsis_dap.tcl
silicognition_rp2040_shim.menu.uploadmethod.picoprobe_cmsis_dap.upload.maximum_data_size=262144
silicognition_rp2040_shim.menu.uploadmethod.picoprobe_cmsis_dap.upload.tool=picoprobe_cmsis_dap
silicognition_rp2040_shim.menu.uploadmethod.picoprobe_cmsis_dap.upload.tool.default=picoprobe_cmsis_dap
silicognition_rp2040_shim.menu.uploadmethod.picodebug=Pico-Debug
silicognition_rp2040_shim.menu.uploadmethod.picodebug.build.ram_length=240k
silicognition_rp2040_shim.menu.uploadmethod.picodebug.build.debugscript=picodebug.tcl
silicognition_rp2040_shim.menu.uploadmethod.picodebug.build.picodebugflags=-UUSE_TINYUSB -DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico
silicognition_rp2040_shim.menu.uploadmethod.picodebug.upload.maximum_data_size=245760
silicognition_rp2040_shim.menu.uploadmethod.picodebug.upload.tool=picodebug
silicognition_rp2040_shim.menu.uploadmethod.picodebug.upload.tool.default=picodebug
# ----------------------------------- # -----------------------------------
# Solder Party RP2040 Stamp # Solder Party RP2040 Stamp
# ----------------------------------- # -----------------------------------

View file

@ -130,7 +130,7 @@ size_t SerialUSB::write(const uint8_t *buf, size_t length) {
static uint64_t last_avail_time; static uint64_t last_avail_time;
int written = 0; int written = 0;
if (tud_cdc_connected()) { if (tud_cdc_connected() || _ignoreFlowControl) {
for (size_t i = 0; i < length;) { for (size_t i = 0; i < length;) {
int n = length - i; int n = length - i;
int avail = tud_cdc_write_available(); int avail = tud_cdc_write_available();
@ -171,6 +171,9 @@ SerialUSB::operator bool() {
return tud_cdc_connected(); return tud_cdc_connected();
} }
void SerialUSB::ignoreFlowControl(bool ignore) {
_ignoreFlowControl = ignore;
}
static bool _dtr = false; static bool _dtr = false;
static bool _rts = false; static bool _rts = false;

View file

@ -44,6 +44,8 @@ public:
using Print::write; using Print::write;
operator bool() override; operator bool() override;
void ignoreFlowControl(bool ignore = true);
// ESP8266 compat // ESP8266 compat
void setDebugOutput(bool unused) { void setDebugOutput(bool unused) {
(void) unused; (void) unused;
@ -51,6 +53,7 @@ public:
private: private:
bool _running = false; bool _running = false;
bool _ignoreFlowControl = false;
}; };
extern SerialUSB Serial; extern SerialUSB Serial;

View file

@ -45,3 +45,13 @@ For applications where an IRQ driven serial port is not appropriate, use
For detailed information about the Serial ports, see the For detailed information about the Serial ports, see the
Arduino `Serial Reference <https://www.arduino.cc/reference/en/language/functions/communication/serial/>`_ . Arduino `Serial Reference <https://www.arduino.cc/reference/en/language/functions/communication/serial/>`_ .
RP2040 Specific SerialUSB methods
---------------------------------
void Serial.ignoreFlowControl(bool ignore)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In some cases, the target application will not assert the DTR virtual line, thus preventing writing operations to succeed.
For this reason, the SerialUSB::ignoreFlowControl() method disables the connection's state verification, enabling the program to write on the port, even though the data might be lost.

View file

@ -152,6 +152,9 @@
{ {
"name": "Pimoroni Plasma2040" "name": "Pimoroni Plasma2040"
}, },
{
"name": "Silicognition RP2040-Shim"
},
{ {
"name": "Solder Party RP2040 Stamp" "name": "Solder Party RP2040 Stamp"
}, },

View file

@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_generic_03h_4_padded_checksum.S",
"usb_vid": "0x1209",
"usb_pid": "0xF502"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_SILICOGNITION_RP2040_SHIM -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x1209",
"0xF502"
]
],
"mcu": "rp2040",
"variant": "silicognition_rp2040_shim"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "RP2040-Shim",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 4194304,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "Silicognition"
}

View file

@ -410,6 +410,9 @@ MakeBoard("nullbits_bit_c_pro", "nullbits", "Bit-C PRO", "0x2e8a", "0x6e61", 500
MakeBoard("pimoroni_pga2040", "Pimoroni", "PGA2040", "0x2e8a", "0x1008", 250, "PIMORONI_PGA2040", 8, "boot2_w25q64jv_4_padded_checksum") MakeBoard("pimoroni_pga2040", "Pimoroni", "PGA2040", "0x2e8a", "0x1008", 250, "PIMORONI_PGA2040", 8, "boot2_w25q64jv_4_padded_checksum")
MakeBoard("pimoroni_plasma2040", "Pimoroni", "Plasma2040", "0x2e8a", "0x100a", 500, "PIMORONI_PLASMA2040", 2, "boot2_w25q080_2_padded_checksum") MakeBoard("pimoroni_plasma2040", "Pimoroni", "Plasma2040", "0x2e8a", "0x100a", 500, "PIMORONI_PLASMA2040", 2, "boot2_w25q080_2_padded_checksum")
# Silicognition
MakeBoard("silicognition_rp2040_shim", "Silicognition", "RP2040-Shim", "0x1209", "0xf502", 500, "SILICOGNITION_RP2040_SHIM", 4, "boot2_generic_03h_4_padded_checksum")
# Solder Party # Solder Party
MakeBoard("solderparty_rp2040_stamp", "Solder Party", "RP2040 Stamp", "0x1209", "0xa182", 500, "SOLDERPARTY_RP2040_STAMP", 8, "boot2_generic_03h_4_padded_checksum") MakeBoard("solderparty_rp2040_stamp", "Solder Party", "RP2040 Stamp", "0x1209", "0xa182", 500, "SOLDERPARTY_RP2040_STAMP", 8, "boot2_generic_03h_4_padded_checksum")

View file

@ -0,0 +1,81 @@
#pragma once
// Pin definitions taken from:
// https://silicognition.com/Products/rp2040-shim/
// LEDs
#define LED_BUILTIN (22u)
// NeoPixel
#define PIN_NEOPIXEL (23u)
// Serial
#define PIN_SERIAL1_TX (0u)
#define PIN_SERIAL1_RX (1u)
// Not pinned out
#define PIN_SERIAL2_TX (31u)
#define PIN_SERIAL2_RX (31u)
// SPI0
#define __SPI0_DEVICE spi1
#define PIN_SPI0_MISO (12u)
#define PIN_SPI0_MOSI (11u)
#define PIN_SPI0_SCK (10u)
#define PIN_SPI0_SS (21u)
// SPI1
#define __SPI1_DEVICE spi0
#define PIN_SPI1_MISO (20u)
#define PIN_SPI1_MOSI (19u)
#define PIN_SPI1_SCK (18u)
#define PIN_SPI1_SS (15u)
// Wire
#define __WIRE0_DEVICE i2c0
#define PIN_WIRE0_SDA (16u)
#define PIN_WIRE0_SCL (17u)
#define __WIRE1_DEVICE i2c1
#define PIN_WIRE1_SDA (31u)
#define PIN_WIRE1_SCL (31u)
#define SERIAL_HOWMANY (2u)
#define SPI_HOWMANY (2u)
#define WIRE_HOWMANY (1u)
// Defines normally loaded from common.h
// We have custom pin mapping to match Adafruit Feather
#define PINS_COUNT (30u)
#define NUM_DIGITAL_PINS (30u)
#define NUM_ANALOG_INPUTS (4u)
#define NUM_ANALOG_OUTPUTS (0u)
#define ADC_RESOLUTION (12u)
static const uint8_t D0 = (1u);
static const uint8_t D1 = (0u);
static const uint8_t D4 = (6u);
static const uint8_t D5 = (18u);
static const uint8_t D6 = (19u);
static const uint8_t D9 = (20u);
static const uint8_t D10 = (21u);
static const uint8_t D11 = (15u);
static const uint8_t D12 = (14u);
static const uint8_t D13 = (22u);
static const uint8_t D24 = (24u);
static const uint8_t D25 = (25u);
static const uint8_t A0 = (29u);
static const uint8_t A1 = (28u);
static const uint8_t A2 = (27u);
static const uint8_t A3 = (26u);
static const uint8_t SS = PIN_SPI0_SS;
static const uint8_t MOSI = PIN_SPI0_MOSI;
static const uint8_t MISO = PIN_SPI0_MISO;
static const uint8_t SCK = PIN_SPI0_SCK;
static const uint8_t SDA = PIN_WIRE0_SDA;
static const uint8_t SCL = PIN_WIRE0_SCL;