The New Chip in Town: RP235X

If you’re in the embedded world, you’ve likely been swamped in the last 2 days about the new RP235X chip from Raspberry Pi, that is set to power the Pico2. Rather than putting a bunch of specs that everyone seems to be covering, I thought I would write about what I love about this chip and how it could be a game changer. For Specs, prices, and details check the attached images towards the end. It’s mostly self-explanatory.


I wrote about the first chip RP2040 from RPi some 3+ years back on how it was the most bang for buck chip out there at that time with ridiculously low prices and massive community support. RP2040 has proved beyond doubt its capabilities as of today. With the new RP235X, RPi seems to have outdone itself in making everything better and even keeping prices relatively similar(Not even accounting for inflation). It’s so audacious that they have put its manufacturing support at 20 years from now. I have not heard of any company backing support to their chips for 20yrs at launch. It’s ridiculous!

The most exciting part for me is the dual M33 chipset paired with dual RISC-V Hazard3 cores. Users can activate any two, even in combination(Not sure why though). This will single-handedly bring RISC-V support to a heck of a lot of software libraries from the community, potentially making RISC-V as close to mainstream as possible. I have a feeling that RPi is using this chip as a testbed for a future controller entirely in RISC-V. Heck, that will make the future chips potentially even cheaper with no ARM licensing.
I had 2 major cribs with the initial RP2040 while using them in my projects. One it always needed an external flash for storing programs, increasing footprint and BOM cost. The RP2354 series comes with a dedicated 2MB flash. Second was its poor sleep power consumption, they seem to have brought it down to a respectable 57uA@3.3V in the new chip.

All in all, RP235X is a worthing successor to RP2040 with more than double the performance. I think it will be the best chip in its price class. If you know of any other chips that even come close, let me know in the comments. What excites you most about this new chip?

If you liked the post, Share it with your friends!

Back To Basics: DMA

Direct Memory Access (DMA) is a feature in embedded systems that folks often overlook. In a typical microcontroller, the CPU is responsible for transferring data between peripherals and memory. This means the CPU has to read data from a peripheral, process it, and then write it to memory. This process is not only time-consuming but also keeps the CPU busy, preventing it from performing other tasks.


Enter DMA controller. Think of these as a separate co-processor with limited capabilities in your uC. Technically it’s a state machine that can do at least 3 things, Wait for a control input, read from a place, and write to another place. It acts on its own with involvement from CPU freeing it to do other tasks. This is crucial in real-time systems where the CPU needs to perform critical tasks without interruption. By offloading data transfer tasks, DMA can handle large amounts of data quickly and efficiently. Think, continuous input streams from an external accelerometer or an audio stream. CPU kicks in only when the data transfer is complete to process the data, it doesn’t have to concern itself with the transfer. Another key advantage is since the CPU can remain in a low-power state during DMA operations, overall power consumption is reduced. This is vital in battery-powered devices.

Different manufacturers implement DMA in uCs in various ways. Usually you DMA channels, with each channel assigned for a particular task like one for reading from an ADC, one for writing to a USB bus etc. Each can have its own priority of execution. There can even be multiple DMA reading and writing to separate memory regions. It comes in all flavours. One beautiful implementation of DMA is driving RGB WS28 series LEDs in the Neopixel library. You can read more about them in the Adafruit blogs.

So if you haven’t used DMAs before, do give it a shot next time you need a large data transfer. You can effectively utilize DMA to enhance the performance of your embedded solution.

If you liked the post, Share it with your friends!
1 19 20 21 22 23 89