Arm HC32L110 MCU
The Arm HC32L110 microcontroller packs a single Cortex M0+ core into a tiny 1.56 x 1.44mm package. For context, the Raspberry Pi RP2040 uses two M0+ cores in a 7 x 7mm package. The chip is available for around 60 pence a piece! The chip comes in a compact CSP-16 package (0.35mm pitch 16-pin BGA).
The chip features an 32-bit M0+ cortex core running at up to 32MHz with up to 4KB RAM and 32KB of flash storage. Up to 16 GPIO ports are available, with some of these being multiplexed with analogue pins. There is one SPI interface and 1 I2C interface and an two UART controllers. It has a 9 channel 12-bit ADC which is quite impressive!
Unfortunately, at the time of writing, there are no English datasheets (a Chinese version does exist here and a Google translated version available at the bottom of this page). However, with dev boards such as the LilyGO T-HC32 becoming available, good translations and documentation is likely to surface.
LilyGO T-HC32 dev board
The LilyGO T-HC32 development board featuring the Arm HC32L110B6 MCU is available for £6.69 (about $9) on Aliexpress and currently offers the best way to play with this tiny MCU. The board itself is very basic offering barebones features, two buttons and a WS2812 RGB LED is likely to be the only standout features. This board uses the 32KB flash version of the HC32L110 chip.
This board is intended as a development board and hence does not take full advantage of the small size of the chip as there is a lot of empty space. However, it does break out all the I/O which is useful. The USB-C connector is a good choice and is nice to see at this price point.
As you can see in the above image, the chip is barely distinguishable from a resistor or capacitor. If you are using this chip on it’s own I hope you don’t drop it…
Instructions for programming this board can be found on LilyGO’s GitHub page. Support for JLINK programmers connected via the SWD interface is supported as well as the T-U2T USB to TTL adapter that LilyGO sell as a kit. Keil MDK support is provided, there is currently no Arduino IDE support but we can see the community developing this.
This board is available here.