Un Feather propulsé par le microcontrôleur RP2040 du Raspberry-Pi Pico
The RP2040 is the new chip from Raspberry-Pi foundation to create a new range of microcontroler board. This chip is promising and going to be awesome.
This new chip now fits on a new Feather board: the Feather RP2040. This new feather board bring together the benefits of RP2040 MCU with the Feather goodies and ecosystem.
The RP2040 does have a USB UF2 bootloader. As many board, you can send a new firmware to your board by drag & drop a file onto the USB Drive attached to the board when it is booted in UF2 bootloader mode. To switch the board into UF2 Booloader mode, just hold down the BOOTSEL button powering the board (so when plug it into USB or pulling down the RUN/Reset pin to ground). When the board is in UF2 Bootloader mode then is appears as an USB drive where you can drag the new firmware file!
The two cores of the RP2040 MCU are clocked at 125 MHz. The RP2040 is also a Cortex M0 meaning that it lakes of floating point unit or DSP hardware support. As a consequence, heavy floating-point math will not be as performant since done with software code. For any other tasks, you may expect the performances of a Cortex M4 at the same speed!
The RP2040 does also have many peripherals: 2x I2C controllers, 2x SPI controllers, 2x UARTs that are multiplexed across the GPIO. Just check the pinout to see which pin can be set to which function. There are 16 PWM channels, each pin has a channel it can be set to (see the pinout).
There is no I2S, SDIO or camera peripheral on the RP2040. Instead of specific hardware support, the RP2040 comes with the Programmable Input Output state machine system. Named PIO for short, it is powerful way to create custom hardware logic and data processing blocks. The PIO are running on their own without charging the CPU.
For example, when using WS2812/NeoPixel, firmware usually need to bitbang the data at the right time as it is a time-specific protocol. With PIO, the data are read from the buffer and bit stream send at the appropriate time with accuracy. It is exactly the same for digital audio (I2S), VGA output, Matrix display or any SPI alike bus.
In MicroPython and CircuitPython you can create PIO control commands to script the peripheral and load it in at runtime.
The RP2040 features 2 PIO peripherals with 4 state machines each.
The RP2040 does have Official MicroPython, CircuitPython, Official C/C++ and Arduino support!
Finally the RP2040 has lots of onboard RAM (264Kio) but doesn't feature built-in FLASH memory. The Flash storage is taken in charge with external QSPI flash chip. This board have 8 Mio shared between the firmware and file storage (used by MicroPython or CircuitPython, about 7 Mio available for script, images, fonts, etc). When creating your firmware with C/C++/Arduino, you get the whole flash memory available.
Feather RP2040 Features
- RP2040 32-bit Cortex M0+ dual core @ ~125 MHz
- 3.3V logic and power
- 3.3V 500mA peak current onboard regulator
- 264 Kio RAM
- 8 Mio SPI FLASH chip (for storing files and script under CircuitPython/MicroPython).
- No EEPROM
- Tons of GPIO!
- 21x GPIO pins.
- 4x ADCs (12 bits, one more than Pico)
- 2x I2C,
- 2x SPI
- 16x PWM outputs - for servos, LEDs, etc
- The 8 digital 'non-ADC/non-peripheral' GPIO are consecutive for maximum PIO compatibility
- Lipo charger: 200mA+, Chaging LED indicator
- Red LED on Pin #13
- RGB NeoPixel for full color indication.
- On-board JST-SH 4 poins
STEMMA QT, Qwiic compatible for I2C devices.
Grove I2C devices possible with adapter cable!
- Reset & Bootloader buttons
- Power enable: shutdown the 3.3V with a pin
- Optional SWD debug port (can be soldered in for debug access)
- 4 mounting holes
- 24 MHz crystal for perfect timing.
- USB Type C connector.
USB bootloader, serial port
- Dimension: 50.8mm x 22.8mm x 7mm (without headers)
- Weight: : 5 gr
- Dual ARM Cortex-M0+ @ 133MHz
- 264kB on-chip SRAM in six independent banks
- Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
- DMA controller
- Fully-connected AHB crossbar (Advanced Microcontroler Bus Architecture)
- Interpolator and integer divider peripherals
- On-chip programmable LDO to generate core voltage
- 2 on-chip PLLs to generate USB and core clocks
- 30 GPIO pins, 4 of which can be used as analog inputs
- 2x UARTs
- 2x SPI controllers
- 2x I2C controllers
- 16 PWM channels
- USB 1.1 controller and PHY, with host and device support
- 8 PIO state machines
For each order, you will receive the Feather with UF2 USB bootloader.
The board is assembled and tested. This board fits an USB-C connector so you may need an USB-A to USB-C cable.