[Dprglist] New Raspberry Pi RP2040 boards
Murray Altheim
murray18 at altheim.com
Thu Jan 21 12:12:05 PST 2021
One of the things I didn't highlight was that the Pi RP2040 boards
don't have the overhead or complexity of a Linux OS, just a single
C/C++, MicroPython or CircuitPython program running, i.e., the new
boards are microcontrollers rather than single board computers.
Based on our discussions, to some of the DPRG members this would
be a distinct advantage. [I myself prefer the full Linux OS as I
generally ssh into my robot to program and control it, but the
RP2040 (as I mentioned previously) still looks appealing to me as
a slave processor.]
Two other highlights:
# Low Power, Sleep & Dormant Modes
The RP2040 uses about 100mA when active, and supporting two low
power modes: a SLEEP and DORMANT state> The latter puts the device
into a true zero-dynamic-power sleep state, where all clocks (and
all oscillators) are disabled. It can be awakened from that state
by activity on a GPIO pin or an RTC interrupt.
# PIO (Programmable I/O)
Another of the more important things I failed to mention about the
RP2040 is a new hardware feature called PIO or Programmable I/O.
The RP2040 has two PIO blocks, each with 4 state machines. Each of
these is actually a processor core:
PIO is programmable in the same sense as a processor. There are
two PIO blocks with four state machines each, that can
independently execute sequential programs to manipulate GPIOs
and transfer data.
PIO is highly performant as well as flexible, thanks to a
carefully selected set of fixed-function hardware inside each
state machine. When outputting DPI, PIO can sustain 360 Mb/s
during the active scanline period when running from a 48 MHz
system clock. In this example, one state machine is handling
frame/scanline timing and generating the pixel clock, while
another is handling the pixel data, and unpacking run-length-
encoded scanlines.
State machines' inputs and outputs are mapped to up to 32 GPIOs
(limited to 30 GPIOs for RP2040), and all state machines have
independent, simultaneous access to any GPIO.
Here's several articles and the Pico SDK docs about the PIO:
What is Programmable I/O on Raspberry Pi Pico?
https://hackspace.raspberrypi.org/articles/what-is-programmable-i-o-on-raspberry-pi-pico
Section 9 of the Raspberry Pi Python SDK is on PIO Support
https://datasheets.raspberrypi.org/pico/sdk/pico_python_sdk.pdf
Hands-On with the RP2040 and Pico, the First In-House Silicon
and Microcontroller From Raspberry Pi
https://www.hackster.io/news/hands-on-with-the-rp2040-and-pico-the-first-in-house-silicon-and-microcontroller-from-raspberry-pi-effc452fc25d
While not the same thing, I think the RP2040 is perhaps trying to
compete in this space with the Arduino MKR Vidor 4000, which is
their first implementation containing a FPGA or Field Programmable
Gate Array. There's a video on the product page by Massimo Banzi
(co-founder/CTO of Arduino) describing FPGAs:
https://store.arduino.cc/usa/mkr-vidor-4000
----
On a side note, on Google I searched for "pico pio" and found Pío
Pico, who was the last governor of California under Mexican rule. He
visited Los Angeles in 1845 when it had about 250 people. There's a
California state park near Whittier named after him. In 2017 a wildfire
in Whittier lasted twenty days and burned 18,430 acres (75 square km)
before it was contained.
Cheers,
Murray
...........................................................................
Murray Altheim <murray18 at altheim dot com> = = ===
http://www.altheim.com/murray/ === ===
= = ===
In the evening
The rice leaves in the garden
Rustle in the autumn wind
That blows through my reed hut.
-- Minamoto no Tsunenobu
More information about the DPRGlist
mailing list