Puya Semiconductor (Shanghai) PY32 Arm Cortex-M0+ microcontroller family may be the world’s cheapest 32-bit Arm MCUs with one of the parts – PY32F002AL15S6TU – selling for under 8 cents per unit in 5K+ orders with 3KB SRAM, 20KB flash in an 8-pin SOP-8 package.
Back in 2016, when I searched for the world’s cheapest MCU, I found Holtek HT48R002 8-bit microcontroller, and a few years later (2019), Padauk PMS150C “3 Cents” MCU came to my attention. However, both are 8-bit microcontrollers that come with OTG (One-Time Programming) ROM, meaning they can’t be easily used for development or updated. The Puya PY32 microcontrollers are in the same price range but offer a 32-bit Arm Cortex-M0+ core clocked at 24 to 48MHz, 16KB to 64KB flash storage, and 2KB to 8KB SRAM.
There are three PY32 sub-families, but let’s check out the PY32F002 family in detail since those are the cheapest parts.
PY32F002A key features and specifications:
- MCU Core – 32-bit Arm Cortex-M0+ @ 24 MHz
- Memory – 3KB SRAM
- Storage – 20KB flash
- Up to 18x GPIOs
- 1x USART
- 1x I2C, 1x SPI, PWM
- Up to 9-channel 12-bit ADC
- 1x general-purpose 16-bit timers
- 1x 16-bit advanced control timer
- 1x low-power timer (LPTIM) to support wake-up from stop mode
- 1x SysTick timer
- 1x watchdog timers (IWDT)
- 4/24MHz RC (HSI)
- 32.768KHz RC (LSI)
- 4~24MHz HSE (External crystal oscillator)
- Supply Voltage – 1.7V to 5.5V DC
- Packages – SOP8 (4.9×3.7×1.75 mm), SOP16, ESSOP10, TSSOP20
- Temperature Range – – 40°C to +85°C
The PY32F003 family adds DMA, up to 8KB SRAM, up to 64KB flash, a wider range of peripherals, a few more timers, and can run at up to 32 MHz, but somehow lacks the HSE interface for an external crystal oscillator.
The PY32F030 further builds on that with up to a 48 MHz clock, even more peripherals (2x SPI, 2x USART…), a PLL, and an LED display controller.
Puya Semiconductor says the PY32 family can be used in controllers, handheld devices, PC peripherals, game GPS platforms, industrial applications, toys, Smart Home devices, cooling fans, chargers, smart appliances, battery management, and healthcare products.
The datasheets, documentation, and development tools can be found on the product page (scroll to the right in the products matrix), and we can also find two more sub-family with the PY32F072 Arm Cortex-M0+ MCU clocked at 72 MHz, and the PY32F403 Arm Cortex-M4 microcontroller at up to 160 MHz, which may or may not be compatible with STM32 parts. The PY32 microcontrollers can be programmed with IAR Embedded Workbench or the Arm Keil MDK.
The company also provides the PUYA003 and PUYA030 development boards with a USB Type-C port, a button, and headers for the I/Os. I did not have the opportunity to test any of those myself, but Jay Carlon did. He built some sample code with VSCode, managed to flash the firmware through Segger’s J-Link GDB and pyOCD servers, and was surprised by how it was easy to debug the board with those tools.
You’ll find a range of PY32 microcontrollers for sale on LCSC with the cheapest being the PY32F002AL15S6TU as mentioned in the introduction.
The development boards are not dirt cheap yet, with the PUYA003 and PUYA030 going for around $4.92.
Thanks to Claude1079 for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.