Raspberry Pi have just released a new product into a new market for them a low cost microcontroller. And not just a microcontroller using an existing piece of silicon, no, this is a in-house custom designed processor.
Why a microcontroller?
What does Raspberry Pi Pico look like?
As you can see, it is much smaller than even the Raspberry Pi Zero (a WH example above).
Out of the box it has only limited built in semsors and outputs, this is not a Circuit Playground Express.
Basically it has a green LED on GPIO pin 25 and a chip temperature sensor.
What is it for?
How do you get one?
What can you program it in?
Raspberry Pi RP2040
There is a full description of the RP2040 here, but these are the highlights:
- In-house design using dual core ARM Cortex M0+
- 264KB RAM
- Upto 16MB of external Flash memory via a QSPI bus.
- 30 GPIO pins (four owhich can be configured as analogue input)
- Two each of UART, SPI and I2C controllers
- 16 PWM channels
- USB host and device support plus mass-storage boot mode for drag and drop programming
- Eight Programmable I/O state machines
The eight PIO state machines are a particular innovation - they are programmable in a simple assembly language to perform tasks at set rates. Each instruction takes one cycle and is independent of the two main cores. This allows you to set up time sensitive operations at known speeds, irrespective of what the main processor is doing. Most microcontrollers would require bit-banging, using the processor to transmit or receive data by changing/reading the state of an input. The PIO allows this to be offloaded to a PIO with full control of the process. All the processor has to do is ensure that it is kept fed or emptied in time.
The chip is called an RP204 based on a naming system:
Cores: 2
CPU type: 0 ~ M0 - this is a loose description of the CPU type.
RAM: 4 = floor(log2(ram / 16k))
Flash: 0 = floor(log2(nonvolatile / 16k)) or zero in this case (the host board provides the Flash storage).