ENG-CANSAT-PICO-USER-GUIDE
Raspberry-Pi PICO
The Raspberry-Pi PICO use a RP2040 Dual Core ARM Cortex M0+ processor with 3.3V logic and 133 MHz. This chip embed 2 Mo of FLASH (64x more than the Atmega328/Uno) and has 264K RAM (132x more than UNO)!
Pico Features |
26 GPIOs |
3 User Analog inputs 12 bits 2 others inputs are tied to VSYS/3, internal temp. sensor. |
PWM on 16 pins |
Hardware I2C (2) and SPI (2) buses |
UART (1 User, 1 REPL) |
SD IO, VGA IO |
8 PIO (programmable IO) |
Feather are: |
* Small (5.1x2.1 cm) |
* Light (3.0Gr) |
* Powerful |
* Versatile |
* bus relocation |
* MicroPython Ready |
* C++/Arduino compatible |
This Pico and the RP2040 have built-in USB 1.1 PHY (host and device support) which offers USB-to-Serial and debug feature (so no need for FTDI-like chip). The Pico also feature and 3 pins SWD debug port (mostly used for C development debugging with OpenOCD).
The Pico has the following specs:
- Size: 51mm x 23mm x 3.8mm
- Weight: 3 grams
- RP2040 @ 133MHz
- 3.3V logic/power
- 2048KB of FLASH
- 264KB of RAM
- 128KB MicroPython filesystem
- No EEPROM
- RTC & Clock based on 32.768 KHz crystal
- 3.3V regulator (300mA peak current) with Power/enable pin
- USB native support (has USB bootloader)
- 26 GPIO pins (16 PWM)
- Hardware Serial + Hardware I2C + Hardware SPI support
- 3 x 12-bit analog inputs (from 0 to 4095)
- No DAC analog ouput
- Interface for Lipo Charger
- Green LED attached on pin #25
- Reset pins (without button)
- FileSystem with file handling capabilities.
About the MicroPython file-system :
The Flash memory available on the Raspberry-Pi Pico do have several usages:
- It store the the MicroPython firmware including the ported Python libraries.
- It store the MicroPython File-System used for:
- Storing the user scripts (and datas)
- Allowing user script to manipulate files (data-logging)
- Storing addition library (user's defined library)
About the UF2 bootloader:
The Raspberry-Pi Pico is pre-loaded with an UF2 bootloader in the RP2040 microcontroler ROM. U2F mode makes the board looking like a USB Flash Drive when attached to a computer. It allows to upload a new firmware into the Flash.
The MicroPython firmware is already uploaded while manufacturing the Pico board. So, in fine, there is no need to activates UF2 mode anymore. MicroPython does allows to store python scripts into the board via operation over the serial port (no need for UF2 mode in this case). |
Pressing the "boot" button while powering up the Pico will activates the UF2 mode. Simply drag an UF2 firmware on the USB Flash drive to completely reprogram the firmware running on the board (No special tools, No special drivers needed)! The UF2 bootloader can be used to load up a newer version of MicroPython, Arduino IDE compiled firmware, C++ firmware, CircuitPython (derivative version of MicroPython made from Adafruit Industries), etc.
Pico pinout
The Pinout here below is an enhanced documented version of the official PinOut.
On the following pinout, only the default position of each bus is annoted.
The official pinout contains the same bus at several positions. This may looks confusing but possible thanks to the "Bus Fabric" feature of the RP2040.
To benefits from the "Bus Fabric", the pin used must be mentionned when creating the bus instance (the simplified pinout demonstrated this for the I2C bus #0 & #1).
We strongly recommend to relies on the default bus location to not over-complicates code writing and schematics understanding. |
Pico pins description
Power Pins
- VBUS - (GP24 is HIGH)
- VSYS - (GP26 = VSYS/3)
- 3V3 -
- 3V3_EN -
- GND -
Digital Pins
xxx
Analog Pins
- GP28 - ADC2
- GP27 - ADC1
- GP26 - ADC0
- GP26 - VSYS/3
- AGND -
- ADC_VREF - 3.3V filtered, do not applies any voltage to that pin.
UARTs
REPL on UART(0)
Special Pins
- RUN - xxx. Act like Reset pin.
- 3V3_EN - Already mentionned. Deactivate the 3.3V power regulator when tied to the ground.
- GP23 - PowerSave internal board pin. Depending on the conditions, this pin can reduce the power consumption of the board.
- GP24 - Already mentionned. This internal board pin is High when the board is connected to a computer or wall adapter (when VBus = 5V).
- GP25 - Board LED
Debug Pins
- SWCLK et SWDIO - those contact points, visible under the board, are used to program the microcontroler. You can also use thoses contact to connect the SWD debugger.
Pico Ressource
The Github of MCHobby contains useful PICO ressources for designing schematic and board with the Pico.
The Pico overlay help to identifies Pins on the Pico.
Written by Meurisse D. for MCHobby