Compare commits

..
5 Commits
Author SHA1 Message Date
Earle F. Philhower, III 6afcf5881d Initial Arduino Nano RP2040 Connect support (#212)
Thanks to @Claupio for the bringup!
Reference #208
2021-06-14 08:59:52 -07:00
Earle F. Philhower, III 30704a7c5e Obey timeout value on SerialUART.read/.peek (#211)
Fixes a hang when reading from the Serial UART ports because before the
core would pause indefinitely for the next character.

Now, wait up to Serial.setTimeout() milliseconds and if it times out
return -1 to the app.

Fixes #210
2021-06-13 14:11:23 -07:00
Earle F. Philhower, III 08b6748d79 Update to PICO-SDK version 1.2.0 (#207)
Minor rev to the tinyUSB version used, new ID function.
2021-06-11 12:48:09 -07:00
Earle F. Philhower, III bedfbda372 Clear PIO FIFOs when updating Tone and Servos (#206)
The PIO programs that generate tone() and Servo() use the TX FIFO to
receive updates to the period/duty cycle.

The original code would push into the FIFO (potentially blocking the
app if the FIFO was full) and generate at least one cycle of every
value written into the control.  Basically, the output would
lag the changes by 1 cycle or more (which could be 20ms+ on Servo).

Fix this by clearing any old, ungrabbed values from the FIFO before
sending a new one to the program.  Instead of a FIFO, there is
effectively now just a control register and updates will be immediate.

Update the Siren.ino example with delays because now the tone() calls
will not block and run 10x+ faster.
2021-06-11 12:27:48 -07:00
Earle F. Philhower, III 9fbf6ab35d Clean up Arduino.h header, remove duplicates (#205)
Many functions are defined inside the api/Common.h, so remove them from
the Arduino.h header to have them appear only once.

Fix up the abs() macro to avoid macro problems, add round()
2021-06-11 12:23:23 -07:00
17 changed files with 645 additions and 56 deletions
+1
View File
@@ -17,6 +17,7 @@ See https://arduino-pico.readthedocs.io/en/latest/ along with the examples for m
* Adafruit QTPy RP2040
* Adafruit STEMMA Friend RP2040
* Adafruit Trinkey RP2040 QT
* Arduino Nano RP2040 Connect (preliminary)
* SparkFun ProMicro RP2040
* Generic (configurable flash, I/O pins)
+388
View File
@@ -1978,6 +1978,394 @@ adafruit_macropad2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags=
adafruit_macropad2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB
adafruit_macropad2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{build.core.path}/TinyUSB" "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"
# -----------------------------------
# Arduino Nano RP2040 Connect
# -----------------------------------
arduino_nano_connect.name=Arduino Nano RP2040 Connect
arduino_nano_connect.vid.0=0x2341
arduino_nano_connect.pid.0=0x0058
arduino_nano_connect.build.usbpid=-DSERIALUSB_PID=0x0058
arduino_nano_connect.build.board=ARDUINO_NANO_RP2040_CONNECT
arduino_nano_connect.build.mcu=cortex-m0plus
arduino_nano_connect.build.variant=arduino_nano_connect
arduino_nano_connect.upload.tool=uf2conv
arduino_nano_connect.upload.maximum_size=16777216
arduino_nano_connect.upload.maximum_data_size=262144
arduino_nano_connect.upload.wait_for_upload_port=true
arduino_nano_connect.upload.erase_cmd=
arduino_nano_connect.serial.disableDTR=false
arduino_nano_connect.serial.disableRTS=false
arduino_nano_connect.build.f_cpu=125000000
arduino_nano_connect.build.led=
arduino_nano_connect.build.core=rp2040
arduino_nano_connect.build.mcu=rp2040
arduino_nano_connect.build.ldscript=memmap_default.ld
arduino_nano_connect.build.boot2=boot2_w25q080_2_padded_checksum
arduino_nano_connect.build.vid=0x2341
arduino_nano_connect.build.pid=0x0058
arduino_nano_connect.build.usb_manufacturer="Arduino"
arduino_nano_connect.build.usb_product="Nano RP2040 Connect"
arduino_nano_connect.menu.flash.16777216_0=16MB (no FS)
arduino_nano_connect.menu.flash.16777216_0.upload.maximum_size=16773120
arduino_nano_connect.menu.flash.16777216_0.build.flash_length=16773120
arduino_nano_connect.menu.flash.16777216_0.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_0.build.fs_start=285208576
arduino_nano_connect.menu.flash.16777216_0.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_65536=16MB (Sketch: 16320KB, FS: 64KB)
arduino_nano_connect.menu.flash.16777216_65536.upload.maximum_size=16707584
arduino_nano_connect.menu.flash.16777216_65536.build.flash_length=16707584
arduino_nano_connect.menu.flash.16777216_65536.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_65536.build.fs_start=285143040
arduino_nano_connect.menu.flash.16777216_65536.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_131072=16MB (Sketch: 16256KB, FS: 128KB)
arduino_nano_connect.menu.flash.16777216_131072.upload.maximum_size=16642048
arduino_nano_connect.menu.flash.16777216_131072.build.flash_length=16642048
arduino_nano_connect.menu.flash.16777216_131072.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_131072.build.fs_start=285077504
arduino_nano_connect.menu.flash.16777216_131072.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_262144=16MB (Sketch: 16128KB, FS: 256KB)
arduino_nano_connect.menu.flash.16777216_262144.upload.maximum_size=16510976
arduino_nano_connect.menu.flash.16777216_262144.build.flash_length=16510976
arduino_nano_connect.menu.flash.16777216_262144.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_262144.build.fs_start=284946432
arduino_nano_connect.menu.flash.16777216_262144.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_524288=16MB (Sketch: 15872KB, FS: 512KB)
arduino_nano_connect.menu.flash.16777216_524288.upload.maximum_size=16248832
arduino_nano_connect.menu.flash.16777216_524288.build.flash_length=16248832
arduino_nano_connect.menu.flash.16777216_524288.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_524288.build.fs_start=284684288
arduino_nano_connect.menu.flash.16777216_524288.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_1048576=16MB (Sketch: 15MB, FS: 1MB)
arduino_nano_connect.menu.flash.16777216_1048576.upload.maximum_size=15724544
arduino_nano_connect.menu.flash.16777216_1048576.build.flash_length=15724544
arduino_nano_connect.menu.flash.16777216_1048576.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_1048576.build.fs_start=284160000
arduino_nano_connect.menu.flash.16777216_1048576.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_2097152=16MB (Sketch: 14MB, FS: 2MB)
arduino_nano_connect.menu.flash.16777216_2097152.upload.maximum_size=14675968
arduino_nano_connect.menu.flash.16777216_2097152.build.flash_length=14675968
arduino_nano_connect.menu.flash.16777216_2097152.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_2097152.build.fs_start=283111424
arduino_nano_connect.menu.flash.16777216_2097152.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_3145728=16MB (Sketch: 13MB, FS: 3MB)
arduino_nano_connect.menu.flash.16777216_3145728.upload.maximum_size=13627392
arduino_nano_connect.menu.flash.16777216_3145728.build.flash_length=13627392
arduino_nano_connect.menu.flash.16777216_3145728.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_3145728.build.fs_start=282062848
arduino_nano_connect.menu.flash.16777216_3145728.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_4194304=16MB (Sketch: 12MB, FS: 4MB)
arduino_nano_connect.menu.flash.16777216_4194304.upload.maximum_size=12578816
arduino_nano_connect.menu.flash.16777216_4194304.build.flash_length=12578816
arduino_nano_connect.menu.flash.16777216_4194304.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_4194304.build.fs_start=281014272
arduino_nano_connect.menu.flash.16777216_4194304.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_5242880=16MB (Sketch: 11MB, FS: 5MB)
arduino_nano_connect.menu.flash.16777216_5242880.upload.maximum_size=11530240
arduino_nano_connect.menu.flash.16777216_5242880.build.flash_length=11530240
arduino_nano_connect.menu.flash.16777216_5242880.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_5242880.build.fs_start=279965696
arduino_nano_connect.menu.flash.16777216_5242880.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_6291456=16MB (Sketch: 10MB, FS: 6MB)
arduino_nano_connect.menu.flash.16777216_6291456.upload.maximum_size=10481664
arduino_nano_connect.menu.flash.16777216_6291456.build.flash_length=10481664
arduino_nano_connect.menu.flash.16777216_6291456.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_6291456.build.fs_start=278917120
arduino_nano_connect.menu.flash.16777216_6291456.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_7340032=16MB (Sketch: 9MB, FS: 7MB)
arduino_nano_connect.menu.flash.16777216_7340032.upload.maximum_size=9433088
arduino_nano_connect.menu.flash.16777216_7340032.build.flash_length=9433088
arduino_nano_connect.menu.flash.16777216_7340032.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_7340032.build.fs_start=277868544
arduino_nano_connect.menu.flash.16777216_7340032.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_8388608=16MB (Sketch: 8MB, FS: 8MB)
arduino_nano_connect.menu.flash.16777216_8388608.upload.maximum_size=8384512
arduino_nano_connect.menu.flash.16777216_8388608.build.flash_length=8384512
arduino_nano_connect.menu.flash.16777216_8388608.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_8388608.build.fs_start=276819968
arduino_nano_connect.menu.flash.16777216_8388608.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_9437184=16MB (Sketch: 7MB, FS: 9MB)
arduino_nano_connect.menu.flash.16777216_9437184.upload.maximum_size=7335936
arduino_nano_connect.menu.flash.16777216_9437184.build.flash_length=7335936
arduino_nano_connect.menu.flash.16777216_9437184.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_9437184.build.fs_start=275771392
arduino_nano_connect.menu.flash.16777216_9437184.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_10485760=16MB (Sketch: 6MB, FS: 10MB)
arduino_nano_connect.menu.flash.16777216_10485760.upload.maximum_size=6287360
arduino_nano_connect.menu.flash.16777216_10485760.build.flash_length=6287360
arduino_nano_connect.menu.flash.16777216_10485760.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_10485760.build.fs_start=274722816
arduino_nano_connect.menu.flash.16777216_10485760.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_11534336=16MB (Sketch: 5MB, FS: 11MB)
arduino_nano_connect.menu.flash.16777216_11534336.upload.maximum_size=5238784
arduino_nano_connect.menu.flash.16777216_11534336.build.flash_length=5238784
arduino_nano_connect.menu.flash.16777216_11534336.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_11534336.build.fs_start=273674240
arduino_nano_connect.menu.flash.16777216_11534336.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_12582912=16MB (Sketch: 4MB, FS: 12MB)
arduino_nano_connect.menu.flash.16777216_12582912.upload.maximum_size=4190208
arduino_nano_connect.menu.flash.16777216_12582912.build.flash_length=4190208
arduino_nano_connect.menu.flash.16777216_12582912.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_12582912.build.fs_start=272625664
arduino_nano_connect.menu.flash.16777216_12582912.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_13631488=16MB (Sketch: 3MB, FS: 13MB)
arduino_nano_connect.menu.flash.16777216_13631488.upload.maximum_size=3141632
arduino_nano_connect.menu.flash.16777216_13631488.build.flash_length=3141632
arduino_nano_connect.menu.flash.16777216_13631488.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_13631488.build.fs_start=271577088
arduino_nano_connect.menu.flash.16777216_13631488.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_14680064=16MB (Sketch: 2MB, FS: 14MB)
arduino_nano_connect.menu.flash.16777216_14680064.upload.maximum_size=2093056
arduino_nano_connect.menu.flash.16777216_14680064.build.flash_length=2093056
arduino_nano_connect.menu.flash.16777216_14680064.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_14680064.build.fs_start=270528512
arduino_nano_connect.menu.flash.16777216_14680064.build.fs_end=285208576
arduino_nano_connect.menu.flash.16777216_15728640=16MB (Sketch: 1MB, FS: 15MB)
arduino_nano_connect.menu.flash.16777216_15728640.upload.maximum_size=1044480
arduino_nano_connect.menu.flash.16777216_15728640.build.flash_length=1044480
arduino_nano_connect.menu.flash.16777216_15728640.build.eeprom_start=285208576
arduino_nano_connect.menu.flash.16777216_15728640.build.fs_start=269479936
arduino_nano_connect.menu.flash.16777216_15728640.build.fs_end=285208576
arduino_nano_connect.menu.freq.125=125 MHz
arduino_nano_connect.menu.freq.125.build.f_cpu=125000000L
arduino_nano_connect.menu.freq.50=50 MHz
arduino_nano_connect.menu.freq.50.build.f_cpu=50000000L
arduino_nano_connect.menu.freq.100=100 MHz
arduino_nano_connect.menu.freq.100.build.f_cpu=100000000L
arduino_nano_connect.menu.freq.133=133 MHz
arduino_nano_connect.menu.freq.133.build.f_cpu=133000000L
arduino_nano_connect.menu.freq.150=150 MHz (Overclock)
arduino_nano_connect.menu.freq.150.build.f_cpu=150000000L
arduino_nano_connect.menu.freq.175=175 MHz (Overclock)
arduino_nano_connect.menu.freq.175.build.f_cpu=175000000L
arduino_nano_connect.menu.freq.200=200 MHz (Overclock)
arduino_nano_connect.menu.freq.200.build.f_cpu=200000000L
arduino_nano_connect.menu.freq.225=225 MHz (Overclock)
arduino_nano_connect.menu.freq.225.build.f_cpu=225000000L
arduino_nano_connect.menu.freq.250=250 MHz (Overclock)
arduino_nano_connect.menu.freq.250.build.f_cpu=250000000L
arduino_nano_connect.menu.freq.275=275 MHz (Overclock)
arduino_nano_connect.menu.freq.275.build.f_cpu=275000000L
arduino_nano_connect.menu.freq.300=300 MHz (Overclock)
arduino_nano_connect.menu.freq.300.build.f_cpu=300000000L
arduino_nano_connect.menu.dbgport.Disabled=Disabled
arduino_nano_connect.menu.dbgport.Disabled.build.debug_port=
arduino_nano_connect.menu.dbgport.Serial=Serial
arduino_nano_connect.menu.dbgport.Serial.build.debug_port=-DDEBUG_RP2040_PORT=Serial
arduino_nano_connect.menu.dbgport.Serial1=Serial1
arduino_nano_connect.menu.dbgport.Serial1.build.debug_port=-DDEBUG_RP2040_PORT=Serial1
arduino_nano_connect.menu.dbgport.Serial2=Serial2
arduino_nano_connect.menu.dbgport.Serial2.build.debug_port=-DDEBUG_RP2040_PORT=Serial2
arduino_nano_connect.menu.dbglvl.None=None
arduino_nano_connect.menu.dbglvl.None.build.debug_level=
arduino_nano_connect.menu.dbglvl.Core=Core
arduino_nano_connect.menu.dbglvl.Core.build.debug_level=-DDEBUG_RP2040_CORE
arduino_nano_connect.menu.dbglvl.SPI=SPI
arduino_nano_connect.menu.dbglvl.SPI.build.debug_level=-DDEBUG_RP2040_SPI
arduino_nano_connect.menu.dbglvl.Wire=Wire
arduino_nano_connect.menu.dbglvl.Wire.build.debug_level=-DDEBUG_RP2040_WIRE
arduino_nano_connect.menu.dbglvl.All=All
arduino_nano_connect.menu.dbglvl.All.build.debug_level=-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE
arduino_nano_connect.menu.dbglvl.NDEBUG=NDEBUG
arduino_nano_connect.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG
arduino_nano_connect.menu.usbstack.picosdk=Pico SDK
arduino_nano_connect.menu.usbstack.picosdk.build.usbstack_flags=
arduino_nano_connect.menu.usbstack.tinyusb=Adafruit TinyUSB
arduino_nano_connect.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{build.core.path}/TinyUSB" "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"
# -----------------------------------
# Arduino Nano RP2040 Connect (Picoprobe)
# -----------------------------------
arduino_nano_connectpicoprobe.name=Arduino Nano RP2040 Connect (Picoprobe)
arduino_nano_connectpicoprobe.vid.0=0x2341
arduino_nano_connectpicoprobe.pid.0=0x0004
arduino_nano_connectpicoprobe.build.usbpid=-DSERIALUSB_PID=0x0058
arduino_nano_connectpicoprobe.build.board=ARDUINO_NANO_RP2040_CONNECT
arduino_nano_connectpicoprobe.build.mcu=cortex-m0plus
arduino_nano_connectpicoprobe.build.variant=arduino_nano_connect
arduino_nano_connectpicoprobe.upload.tool=picoprobe
arduino_nano_connectpicoprobe.upload.maximum_size=16777216
arduino_nano_connectpicoprobe.upload.maximum_data_size=262144
arduino_nano_connectpicoprobe.upload.wait_for_upload_port=true
arduino_nano_connectpicoprobe.upload.erase_cmd=
arduino_nano_connectpicoprobe.serial.disableDTR=false
arduino_nano_connectpicoprobe.serial.disableRTS=false
arduino_nano_connectpicoprobe.build.f_cpu=125000000
arduino_nano_connectpicoprobe.build.led=
arduino_nano_connectpicoprobe.build.core=rp2040
arduino_nano_connectpicoprobe.build.mcu=rp2040
arduino_nano_connectpicoprobe.build.ldscript=memmap_default.ld
arduino_nano_connectpicoprobe.build.boot2=boot2_w25q080_2_padded_checksum
arduino_nano_connectpicoprobe.build.vid=0x2341
arduino_nano_connectpicoprobe.build.pid=0x0058
arduino_nano_connectpicoprobe.build.usb_manufacturer="Arduino"
arduino_nano_connectpicoprobe.build.usb_product="Nano RP2040 Connect (Picoprobe)"
arduino_nano_connectpicoprobe.menu.flash.16777216_0=16MB (no FS)
arduino_nano_connectpicoprobe.menu.flash.16777216_0.upload.maximum_size=16773120
arduino_nano_connectpicoprobe.menu.flash.16777216_0.build.flash_length=16773120
arduino_nano_connectpicoprobe.menu.flash.16777216_0.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_0.build.fs_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_0.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_65536=16MB (Sketch: 16320KB, FS: 64KB)
arduino_nano_connectpicoprobe.menu.flash.16777216_65536.upload.maximum_size=16707584
arduino_nano_connectpicoprobe.menu.flash.16777216_65536.build.flash_length=16707584
arduino_nano_connectpicoprobe.menu.flash.16777216_65536.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_65536.build.fs_start=285143040
arduino_nano_connectpicoprobe.menu.flash.16777216_65536.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_131072=16MB (Sketch: 16256KB, FS: 128KB)
arduino_nano_connectpicoprobe.menu.flash.16777216_131072.upload.maximum_size=16642048
arduino_nano_connectpicoprobe.menu.flash.16777216_131072.build.flash_length=16642048
arduino_nano_connectpicoprobe.menu.flash.16777216_131072.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_131072.build.fs_start=285077504
arduino_nano_connectpicoprobe.menu.flash.16777216_131072.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_262144=16MB (Sketch: 16128KB, FS: 256KB)
arduino_nano_connectpicoprobe.menu.flash.16777216_262144.upload.maximum_size=16510976
arduino_nano_connectpicoprobe.menu.flash.16777216_262144.build.flash_length=16510976
arduino_nano_connectpicoprobe.menu.flash.16777216_262144.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_262144.build.fs_start=284946432
arduino_nano_connectpicoprobe.menu.flash.16777216_262144.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_524288=16MB (Sketch: 15872KB, FS: 512KB)
arduino_nano_connectpicoprobe.menu.flash.16777216_524288.upload.maximum_size=16248832
arduino_nano_connectpicoprobe.menu.flash.16777216_524288.build.flash_length=16248832
arduino_nano_connectpicoprobe.menu.flash.16777216_524288.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_524288.build.fs_start=284684288
arduino_nano_connectpicoprobe.menu.flash.16777216_524288.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_1048576=16MB (Sketch: 15MB, FS: 1MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_1048576.upload.maximum_size=15724544
arduino_nano_connectpicoprobe.menu.flash.16777216_1048576.build.flash_length=15724544
arduino_nano_connectpicoprobe.menu.flash.16777216_1048576.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_1048576.build.fs_start=284160000
arduino_nano_connectpicoprobe.menu.flash.16777216_1048576.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_2097152=16MB (Sketch: 14MB, FS: 2MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_2097152.upload.maximum_size=14675968
arduino_nano_connectpicoprobe.menu.flash.16777216_2097152.build.flash_length=14675968
arduino_nano_connectpicoprobe.menu.flash.16777216_2097152.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_2097152.build.fs_start=283111424
arduino_nano_connectpicoprobe.menu.flash.16777216_2097152.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_3145728=16MB (Sketch: 13MB, FS: 3MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_3145728.upload.maximum_size=13627392
arduino_nano_connectpicoprobe.menu.flash.16777216_3145728.build.flash_length=13627392
arduino_nano_connectpicoprobe.menu.flash.16777216_3145728.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_3145728.build.fs_start=282062848
arduino_nano_connectpicoprobe.menu.flash.16777216_3145728.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_4194304=16MB (Sketch: 12MB, FS: 4MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_4194304.upload.maximum_size=12578816
arduino_nano_connectpicoprobe.menu.flash.16777216_4194304.build.flash_length=12578816
arduino_nano_connectpicoprobe.menu.flash.16777216_4194304.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_4194304.build.fs_start=281014272
arduino_nano_connectpicoprobe.menu.flash.16777216_4194304.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_5242880=16MB (Sketch: 11MB, FS: 5MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_5242880.upload.maximum_size=11530240
arduino_nano_connectpicoprobe.menu.flash.16777216_5242880.build.flash_length=11530240
arduino_nano_connectpicoprobe.menu.flash.16777216_5242880.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_5242880.build.fs_start=279965696
arduino_nano_connectpicoprobe.menu.flash.16777216_5242880.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_6291456=16MB (Sketch: 10MB, FS: 6MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_6291456.upload.maximum_size=10481664
arduino_nano_connectpicoprobe.menu.flash.16777216_6291456.build.flash_length=10481664
arduino_nano_connectpicoprobe.menu.flash.16777216_6291456.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_6291456.build.fs_start=278917120
arduino_nano_connectpicoprobe.menu.flash.16777216_6291456.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_7340032=16MB (Sketch: 9MB, FS: 7MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_7340032.upload.maximum_size=9433088
arduino_nano_connectpicoprobe.menu.flash.16777216_7340032.build.flash_length=9433088
arduino_nano_connectpicoprobe.menu.flash.16777216_7340032.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_7340032.build.fs_start=277868544
arduino_nano_connectpicoprobe.menu.flash.16777216_7340032.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_8388608=16MB (Sketch: 8MB, FS: 8MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_8388608.upload.maximum_size=8384512
arduino_nano_connectpicoprobe.menu.flash.16777216_8388608.build.flash_length=8384512
arduino_nano_connectpicoprobe.menu.flash.16777216_8388608.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_8388608.build.fs_start=276819968
arduino_nano_connectpicoprobe.menu.flash.16777216_8388608.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_9437184=16MB (Sketch: 7MB, FS: 9MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_9437184.upload.maximum_size=7335936
arduino_nano_connectpicoprobe.menu.flash.16777216_9437184.build.flash_length=7335936
arduino_nano_connectpicoprobe.menu.flash.16777216_9437184.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_9437184.build.fs_start=275771392
arduino_nano_connectpicoprobe.menu.flash.16777216_9437184.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_10485760=16MB (Sketch: 6MB, FS: 10MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_10485760.upload.maximum_size=6287360
arduino_nano_connectpicoprobe.menu.flash.16777216_10485760.build.flash_length=6287360
arduino_nano_connectpicoprobe.menu.flash.16777216_10485760.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_10485760.build.fs_start=274722816
arduino_nano_connectpicoprobe.menu.flash.16777216_10485760.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_11534336=16MB (Sketch: 5MB, FS: 11MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_11534336.upload.maximum_size=5238784
arduino_nano_connectpicoprobe.menu.flash.16777216_11534336.build.flash_length=5238784
arduino_nano_connectpicoprobe.menu.flash.16777216_11534336.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_11534336.build.fs_start=273674240
arduino_nano_connectpicoprobe.menu.flash.16777216_11534336.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_12582912=16MB (Sketch: 4MB, FS: 12MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_12582912.upload.maximum_size=4190208
arduino_nano_connectpicoprobe.menu.flash.16777216_12582912.build.flash_length=4190208
arduino_nano_connectpicoprobe.menu.flash.16777216_12582912.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_12582912.build.fs_start=272625664
arduino_nano_connectpicoprobe.menu.flash.16777216_12582912.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_13631488=16MB (Sketch: 3MB, FS: 13MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_13631488.upload.maximum_size=3141632
arduino_nano_connectpicoprobe.menu.flash.16777216_13631488.build.flash_length=3141632
arduino_nano_connectpicoprobe.menu.flash.16777216_13631488.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_13631488.build.fs_start=271577088
arduino_nano_connectpicoprobe.menu.flash.16777216_13631488.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_14680064=16MB (Sketch: 2MB, FS: 14MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_14680064.upload.maximum_size=2093056
arduino_nano_connectpicoprobe.menu.flash.16777216_14680064.build.flash_length=2093056
arduino_nano_connectpicoprobe.menu.flash.16777216_14680064.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_14680064.build.fs_start=270528512
arduino_nano_connectpicoprobe.menu.flash.16777216_14680064.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_15728640=16MB (Sketch: 1MB, FS: 15MB)
arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.upload.maximum_size=1044480
arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.flash_length=1044480
arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576
arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.fs_start=269479936
arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.fs_end=285208576
arduino_nano_connectpicoprobe.menu.freq.125=125 MHz
arduino_nano_connectpicoprobe.menu.freq.125.build.f_cpu=125000000L
arduino_nano_connectpicoprobe.menu.freq.50=50 MHz
arduino_nano_connectpicoprobe.menu.freq.50.build.f_cpu=50000000L
arduino_nano_connectpicoprobe.menu.freq.100=100 MHz
arduino_nano_connectpicoprobe.menu.freq.100.build.f_cpu=100000000L
arduino_nano_connectpicoprobe.menu.freq.133=133 MHz
arduino_nano_connectpicoprobe.menu.freq.133.build.f_cpu=133000000L
arduino_nano_connectpicoprobe.menu.freq.150=150 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.150.build.f_cpu=150000000L
arduino_nano_connectpicoprobe.menu.freq.175=175 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.175.build.f_cpu=175000000L
arduino_nano_connectpicoprobe.menu.freq.200=200 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.200.build.f_cpu=200000000L
arduino_nano_connectpicoprobe.menu.freq.225=225 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.225.build.f_cpu=225000000L
arduino_nano_connectpicoprobe.menu.freq.250=250 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.250.build.f_cpu=250000000L
arduino_nano_connectpicoprobe.menu.freq.275=275 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.275.build.f_cpu=275000000L
arduino_nano_connectpicoprobe.menu.freq.300=300 MHz (Overclock)
arduino_nano_connectpicoprobe.menu.freq.300.build.f_cpu=300000000L
arduino_nano_connectpicoprobe.menu.dbgport.Disabled=Disabled
arduino_nano_connectpicoprobe.menu.dbgport.Disabled.build.debug_port=
arduino_nano_connectpicoprobe.menu.dbgport.Serial=Serial
arduino_nano_connectpicoprobe.menu.dbgport.Serial.build.debug_port=-DDEBUG_RP2040_PORT=Serial
arduino_nano_connectpicoprobe.menu.dbgport.Serial1=Serial1
arduino_nano_connectpicoprobe.menu.dbgport.Serial1.build.debug_port=-DDEBUG_RP2040_PORT=Serial1
arduino_nano_connectpicoprobe.menu.dbgport.Serial2=Serial2
arduino_nano_connectpicoprobe.menu.dbgport.Serial2.build.debug_port=-DDEBUG_RP2040_PORT=Serial2
arduino_nano_connectpicoprobe.menu.dbglvl.None=None
arduino_nano_connectpicoprobe.menu.dbglvl.None.build.debug_level=
arduino_nano_connectpicoprobe.menu.dbglvl.Core=Core
arduino_nano_connectpicoprobe.menu.dbglvl.Core.build.debug_level=-DDEBUG_RP2040_CORE
arduino_nano_connectpicoprobe.menu.dbglvl.SPI=SPI
arduino_nano_connectpicoprobe.menu.dbglvl.SPI.build.debug_level=-DDEBUG_RP2040_SPI
arduino_nano_connectpicoprobe.menu.dbglvl.Wire=Wire
arduino_nano_connectpicoprobe.menu.dbglvl.Wire.build.debug_level=-DDEBUG_RP2040_WIRE
arduino_nano_connectpicoprobe.menu.dbglvl.All=All
arduino_nano_connectpicoprobe.menu.dbglvl.All.build.debug_level=-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE
arduino_nano_connectpicoprobe.menu.dbglvl.NDEBUG=NDEBUG
arduino_nano_connectpicoprobe.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG
arduino_nano_connectpicoprobe.menu.usbstack.picosdk=Pico SDK
arduino_nano_connectpicoprobe.menu.usbstack.picosdk.build.usbstack_flags=
arduino_nano_connectpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB
arduino_nano_connectpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{build.core.path}/TinyUSB" "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"
# -----------------------------------
# SparkFun ProMicro RP2040
# -----------------------------------
+8 -33
View File
@@ -24,16 +24,11 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
// Wacky deprecated AVR compatibility functions
#include "stdlib_noniso.h"
#include "stdlib_noniso.h" // Wacky deprecated AVR compatibility functions
#include "api/ArduinoAPI.h"
#include "api/itoa.h" // ARM toolchain doesn't provide itoa etc, provide them
#include <pins_arduino.h>
// Required for the port*Register macros
#include "hardware/gpio.h"
#include "hardware/gpio.h" // Required for the port*Register macros
#include "debug_internal.h"
// Try and make the best of the old Arduino abs() macro. When in C++, use
@@ -44,8 +39,10 @@
#endif // abs
#ifdef __cplusplus
using std::abs;
using std::round;
#else
#define abs(x) ((x)>0?(x):-(x))
#define abs(x) ({ __typeof__(x) _x = (x); _x >= 0 ? _x : -_x; })
#define round(x) ({ __typeof__(x) _x = (x); _x >= 0 ? (long)(_x + 0.5) : (long)(_x - 0.5); })
#endif
#ifdef __cplusplus
@@ -61,10 +58,6 @@ extern "C" {
void interrupts();
void noInterrupts();
// GPIO change/value interrupts
void attachInterrupt(pin_size_t pin, voidFuncPtr callback, PinStatus mode);
void detachInterrupt(pin_size_t pin);
// AVR compatibility macros...naughty and accesses the HW directly
#define digitalPinToPort(pin) (0)
#define digitalPinToBitMask(pin) (1UL << (pin))
@@ -75,28 +68,14 @@ void detachInterrupt(pin_size_t pin);
#define portInputRegister(port) ((volatile uint32_t*) sio_hw->gpio_in)
#define portModeRegister(port) ((volatile uint32_t*) sio_hw->gpio_oe)
// IO config
void pinMode(pin_size_t pinNumber, PinMode pinMode);
// SIO (GPIO)
void digitalWrite(pin_size_t pinNumber, PinStatus status);
PinStatus digitalRead(pin_size_t pinNumber);
// ADC
int analogRead(pin_size_t pinNumber);
// ADC RP2040-specific calls
float analogReadTemp(); // Returns core temp in Centigrade
// PWM
void analogWrite(pin_size_t pinNumber, int value);
// PWM RP2040-specific calls
void analogWriteFreq(uint32_t freq);
void analogWriteRange(uint32_t range);
void analogWriteResolution(int res);
// Timing
void delay(unsigned long);
void delayMicroseconds(unsigned int us);
unsigned long millis();
#ifdef __cplusplus
} // extern "C"
#endif
@@ -127,8 +106,4 @@ constexpr uint32_t __bitset(const int (&a)[N], size_t i = 0U) {
}
#endif
// ARM toolchain doesn't provide itoa etc, provide them
#include "api/itoa.h"
#endif // Arduino_h
+9 -15
View File
@@ -153,7 +153,8 @@ static uint8_t *GetDescHIDReport(int *len) {
// Invoked when received GET HID REPORT DESCRIPTOR
// Application return pointer to descriptor
// Descriptor contents must exist long enough for transfer to complete
uint8_t const * tud_hid_descriptor_report_cb(void) {
uint8_t const * tud_hid_descriptor_report_cb(uint8_t instance) {
(void) instance;
return GetDescHIDReport(nullptr);
}
@@ -177,7 +178,7 @@ const uint8_t *tud_descriptor_configuration_cb(uint8_t index) {
uint8_t hid_itf = __USBInstallSerial ? 2 : 0;
static uint8_t hid_desc[TUD_HID_DESC_LEN] = {
// Interface number, string index, protocol, report descriptor len, EP In & Out address, size & polling interval
TUD_HID_DESCRIPTOR(hid_itf, 0, HID_PROTOCOL_NONE, hid_report_len, EPNUM_HID, CFG_TUD_HID_EP_BUFSIZE, 10)
TUD_HID_DESCRIPTOR(hid_itf, 0, HID_ITF_PROTOCOL_NONE, hid_report_len, EPNUM_HID, CFG_TUD_HID_EP_BUFSIZE, 10)
};
uint8_t midi_itf = hid_itf + (hasHID ? 1 : 0);
@@ -230,15 +231,7 @@ const uint16_t *tud_descriptor_string_cb(uint8_t index, uint16_t langid) {
};
if (!idString[0]) {
// Get ID string into human readable serial number on the first pass
pico_unique_board_id_t id;
pico_get_unique_board_id(&id);
idString[0] = 0;
for (auto i = 0; i < PICO_UNIQUE_BOARD_ID_SIZE_BYTES; i++) {
char hx[3];
sprintf(hx, "%02X", id.id[i]);
strcat(idString, hx);
}
pico_get_unique_board_id_string(idString, sizeof(idString));
}
uint8_t len;
@@ -296,8 +289,9 @@ void __USBStart() {
// Invoked when received GET_REPORT control request
// Application must fill buffer report's content and return its length.
// Return zero will cause the stack to STALL request
uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen) {
// TODO not Implemented
extern "C" uint16_t tud_hid_get_report_cb(uint8_t instance, uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen) {
// TODO not implemented
(void) instance;
(void) report_id;
(void) report_type;
(void) buffer;
@@ -308,8 +302,9 @@ uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type,
// Invoked when received SET_REPORT control request or
// received data on OUT endpoint ( Report ID = 0, Type = 0 )
void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize) {
extern "C" void tud_hid_set_report_cb(uint8_t instance, uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize) {
// TODO set LED based on CAPLOCK, NUMLOCK etc...
(void) instance;
(void) report_id;
(void) report_type;
(void) buffer;
@@ -317,4 +312,3 @@ void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uin
}
#endif
+10 -2
View File
@@ -115,7 +115,11 @@ int SerialUART::peek() {
if (_peek >= 0) {
return _peek;
}
_peek = uart_getc(_uart);
if (uart_is_readable_within_us(_uart, _timeout * 1000)) {
_peek = uart_getc(_uart);
} else {
_peek = -1; // Timeout
}
return _peek;
}
@@ -129,7 +133,11 @@ int SerialUART::read() {
_peek = -1;
return ret;
}
return uart_getc(_uart);
if (uart_is_readable_within_us(_uart, _timeout * 1000)) {
return uart_getc(_uart);
} else {
return -1; // Timeout
}
}
int SerialUART::available() {
+1 -1
View File
@@ -70,7 +70,7 @@ int SerialUSB::peek() {
}
uint8_t c;
return tud_cdc_peek(0, &c) ? (int) c : -1;
return tud_cdc_peek(&c) ? (int) c : -1;
}
int SerialUSB::read() {
+1
View File
@@ -88,6 +88,7 @@ void tone(uint8_t pin, unsigned int frequency, unsigned long duration) {
newTone->alarm = 0;
}
}
pio_sm_clear_fifos(newTone->pio, newTone->sm); // Remove any old updates that haven't yet taken effect
pio_sm_put_blocking(newTone->pio, newTone->sm, RP2040::usToPIOCycles(us));
pio_sm_set_enabled(newTone->pio, newTone->sm, true);
BIN
View File
Binary file not shown.
+3 -3
View File
@@ -12,8 +12,8 @@
#define _PICO_VERSION_H
#define PICO_SDK_VERSION_MAJOR 1
#define PICO_SDK_VERSION_MINOR 1
#define PICO_SDK_VERSION_REVISION 2
#define PICO_SDK_VERSION_STRING "1.1.2"
#define PICO_SDK_VERSION_MINOR 2
#define PICO_SDK_VERSION_REVISION 0
#define PICO_SDK_VERSION_STRING "1.2.0"
#endif
+1
View File
@@ -135,6 +135,7 @@ void Servo::writeMicroseconds(int value) {
value = constrain(value, _minUs, _maxUs);
_valueUs = value;
if (_attached) {
pio_sm_clear_fifos(_pio, _smIdx); // Remove any old updates that haven't yet taken effect
pio_sm_put_blocking(_pio, _smIdx, RP2040::usToPIOCycles(value) / 3);
}
}
+2 -1
View File
@@ -7,7 +7,8 @@ void setup() {
}
void loop() {
for (int i = 100; i < 10000; i += 5) {
for (int i = 100; i < 10000; i += 1) {
tone(TONEPIN, i);
delayMicroseconds(20);
}
}
+3
View File
@@ -38,6 +38,9 @@
{
"name": "Adafruit Trinkey RP2040 QT"
},
{
"name": "Arduino Nano RP2040 Connect"
},
{
"name": "SparkFun ProMicro RP2040"
},
+1
View File
@@ -126,6 +126,7 @@ MakeBoard("adafruit_qtpy", "Adafruit", "QT Py RP2040", "0x239a", "0x80f7", "ADAF
MakeBoard("adafruit_stemmafriend", "Adafruit", "STEMMA Friend RP2040", "0x239a", "0x80e3", "ADAFRUIT_STEMMAFRIEND_RP2040", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_trinkeyrp2040qt", "Adafruit", "Trinkey RP2040 QT", "0x239a", "0x8109", "ADAFRUIT_TRINKEYQT_RP2040", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("adafruit_macropad2040", "Adafruit", "MacroPad RP2040", "0x239a", "0x8107", "ADAFRUIT_MACROPAD_RP2040", 8, "boot2_w25q080_2_padded_checksum")
MakeBoard("arduino_nano_connect", "Arduino", "Nano RP2040 Connect", "0x2341", "0x0058", "ARDUINO_NANO_RP2040_CONNECT", 16, "boot2_w25q080_2_padded_checksum")
MakeBoard("sparkfun_promicrorp2040", "SparkFun", "ProMicro RP2040", "0x1b4f", "0x0026", "SPARKFUN_PROMICRO_RP2040", 16, "boot2_generic_03h_4_padded_checksum")
MakeBoard("generic", "Generic", "RP2040", "0x2e8a", "0xf00a", "GENERIC_RP2040", 16, "boot2_generic_03h_4_padded_checksum")
@@ -0,0 +1,53 @@
/* Taken from https://github.com/arduino/ArduinoCore-mbed/tree/master/variants/NANO_RP2040_CONNECT */
AnalogPinDescription g_AAnalogPinDescription[] = {
{ p26, NULL }, // A0
{ p27, NULL }, // A1
{ p28, NULL }, // A2
{ p29, NULL }, // A3
};
PinDescription g_APinDescription[] = {
// D0 - D7
{ p1, NULL, NULL, NULL }, // D0
{ p0, NULL, NULL, NULL }, // D1
{ p25, NULL, NULL, NULL }, // D2
{ p15, NULL, NULL, NULL }, // D3
{ p16, NULL, NULL, NULL }, // D4
{ p17, NULL, NULL, NULL }, // D5
{ p18, NULL, NULL, NULL }, // D6
{ p19, NULL, NULL, NULL }, // D7
// D8 - D13
{ p20, NULL, NULL, NULL }, // D8
{ p21, NULL, NULL, NULL }, // D9
{ p5, NULL, NULL, NULL }, // D10
{ p7, NULL, NULL, NULL }, // D11 / SPITX
{ p4, NULL, NULL, NULL }, // D12 / SPIRX
{ p6, NULL, NULL, NULL }, // D13 / SPICLK / LEDB
// Analog as digital
// A4 to A7 are controlled by Nina module and exposed via different APIs
{ p26, NULL, NULL, NULL }, // A0 -> D14
{ p27, NULL, NULL, NULL }, // A1 -> D15
{ p28, NULL, NULL, NULL }, // A2 -> D16
{ p29, NULL, NULL, NULL }, // A3 -> D17
// I2C
{ p12, NULL, NULL, NULL }, // A4 / SDA -> D18
{ p13, NULL, NULL, NULL }, // A5 / SCL -> D19
// Internal pins - D20 - D23
{ p2, NULL, NULL, NULL }, // GPIO0
{ p24, NULL, NULL, NULL }, // IMU IRQ
{ p22, NULL, NULL, NULL }, // PDM DATA IN
{ p23, NULL, NULL, NULL }, // PDM CLOCK
// Internal pins Nina - D24 - D29
{ p3, NULL, NULL, NULL }, // RESET_NINA
{ p8, NULL, NULL, NULL }, // SPI1_CIPO / UART1_TX
{ p9, NULL, NULL, NULL }, // SPI1_CS / UART1_RX
{ p10, NULL, NULL, NULL }, // SPI1_ACK / UART1_CTS
{ p11, NULL, NULL, NULL }, // SPI1_COPI / UART1_RTS
{ p14, NULL, NULL, NULL }, // SPI1_SCK
};
+48
View File
@@ -0,0 +1,48 @@
/* Taken from https://github.com/arduino/ArduinoCore-mbed/tree/master/variants/NANO_RP2040_CONNECT */
#ifndef _NINA_PINS_
#define _NINA_PINS_
/******************************************************************************
* INCLUDE
******************************************************************************/
#include "Arduino.h"
//#include "WiFiNINA.h"
/******************************************************************************
* PREPROCESSOR-MAGIC
******************************************************************************/
#if __has_include("WiFiNINA.h")
# define NINA_ATTRIBUTE
#else
# define NINA_ATTRIBUTE __attribute__ ((error("Please include WiFiNINA.h to use this pin")))
#endif
/******************************************************************************
* TYPEDEF
******************************************************************************/
enum NinaPin {
LEDR = 27,
LEDG = 25,
LEDB = 26//,
//A4 = 34,
//A5 = 39,
//A6 = 36,
//A7 = 35
};
/******************************************************************************
* FUNCTION DECLARATION
******************************************************************************/
void NINA_ATTRIBUTE pinMode (NinaPin pin, PinMode mode);
PinStatus NINA_ATTRIBUTE digitalRead (NinaPin pin);
void NINA_ATTRIBUTE digitalWrite(NinaPin pin, PinStatus value);
int NINA_ATTRIBUTE analogRead (NinaPin pin);
void NINA_ATTRIBUTE analogWrite (NinaPin pin, int value);
#undef NINA_ATTRIBUTE
#endif /* _NINA_PINS_ */
@@ -0,0 +1,115 @@
/* Taken from https://github.com/arduino/ArduinoCore-mbed/tree/master/variants/NANO_RP2040_CONNECT */
#pragma once
// Pin definitions taken from:
// https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf
static const uint8_t D0 = (1u);
static const uint8_t D1 = (0u);
static const uint8_t D2 = (25u);
static const uint8_t D3 = (15u);
static const uint8_t D4 = (16u);
static const uint8_t D5 = (17u);
static const uint8_t D6 = (18u);
static const uint8_t D7 = (19u);
static const uint8_t D8 = (20u);
static const uint8_t D9 = (21u);
static const uint8_t D10 = (5u);
static const uint8_t D11 = (7u);
static const uint8_t D12 = (4u);
static const uint8_t D13 = (6u);
static const uint8_t D14 = (26u);
static const uint8_t D15 = (27u);
static const uint8_t D16 = (28u);
static const uint8_t D17 = (29u);
static const uint8_t D18 = (12u);
static const uint8_t D19 = (13u);
static const uint8_t D20 = (2u);
static const uint8_t D21 = (24u);
static const uint8_t D22 = (22u);
static const uint8_t D23 = (23u);
static const uint8_t D24 = (3u);
static const uint8_t D25 = (8u);
static const uint8_t D26 = (9u);
static const uint8_t D27 = (10u);
static const uint8_t D28 = (11u);
static const uint8_t D29 = (14u);
static const uint8_t A0 = (26u);
static const uint8_t A1 = (27u);
static const uint8_t A2 = (28u);
static const uint8_t A3 = (29u);
static const uint8_t A4 = (12u);
static const uint8_t A5 = (13u);
// LEDs
#define PIN_LED (D13)
// Serial
#define PIN_SERIAL1_TX (D1)
#define PIN_SERIAL1_RX (D0)
#define PIN_SERIAL2_TX (D25)
#define PIN_SERIAL2_RX (D26)
// SPI
#define PIN_SPI0_MISO (D12)
#define PIN_SPI0_MOSI (D11)
#define PIN_SPI0_SCK (D13)
#define PIN_SPI0_SS (13u)//(D10)
#define PIN_SPI1_MISO (D25)
#define PIN_SPI1_MOSI (D28)
#define PIN_SPI1_SCK (D29)
#define PIN_SPI1_SS (13u)
// Wire
#define PIN_WIRE0_SDA (D18)
#define PIN_WIRE0_SCL (D19)
#define PIN_WIRE1_SDA (26u) //Non c'è
#define PIN_WIRE1_SCL (27u) //Non c'è
#define SERIAL_HOWMANY (3u)
#define SPI_HOWMANY (2u)
#define WIRE_HOWMANY (1u)
#define PINS_COUNT (30u)
#define NUM_DIGITAL_PINS (30u)
#define NUM_ANALOG_INPUTS (4u)
#define NUM_ANALOG_OUTPUTS (0u)
#define ADC_RESOLUTION (12u)
#define LED_BUILTIN PIN_LED
#define DigitalPinToPinName(p) (p)
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;
//Nina support
#define NINA_RESETN (D24)
#define SerialNina Serial3
#define SerialHCI Serial2
//#define NINA_GPIOIRQ (21u) // LEDG pin (GPIO26 on NINA)
#define NINA_GPIO0 (20u) // real GPIO0 on NINA
#define SPIWIFI_SS (D26)
#define SPIWIFI_ACK (D27)
#define SPIWIFI_RESET (NINA_RESETN)
#define SPIWIFI (SPI1)
//Cose copiate a caso
#define SERIAL_PORT_USBVIRTUAL SerialUSB
#define SERIAL_PORT_MONITOR SerialUSB
#define SERIAL_PORT_HARDWARE Serial1
#define SERIAL_PORT_HARDWARE_OPEN Serial2
#define CRYPTO_WIRE Wire
#define USB_MAX_POWER (500)
#include "nina_pins.h"