Continuing with our microprocessor discussion today we’ll look at the NXP Kinetis® KL2x family of Ultra-Low-Power Microcontrollers (MCUs) based on Arm® Cortex®-M0+ Core, specifically the MKL25Z128.
The MKL25Z128VLK4 is a more modern competitor to the MSP430 we discussed last week and provides better low power at 47 uA/MHz (versus 120uA/MHz). However, the standyby/deep sleep power levels are actually a bit higher then we see in the MSP430 only getting down to about 4 uA.
The MKL25Z family was designed with flexibility and is compatible with the other NXP processors in the Kinetis K2x family. Main advantage is this it provides an ultra-efficient Cortex-M0+ processor running at 48MHz or higher providing considerably more processing power then the MSP430. Simple signal processing algorithms are possible.
Memory options are much more limited with just various flash sizes combined with SRAM to provide a more standard architecture but losing the flexibility of the FRAM used by TI. The MKL25Z128VLK4 has 128KB flash and 16KB RAM, so pretty small, but the flash is zero wait state. On interesting feature with NXP flash its possible to write and read (execute) flash at the same time. So long as you are running in one block you can be writing to another block, which can be handy when upgrading firmware on the fly.
This processor provides touch sensor interface lots of general purpose IO (66 lines) and a full/low speed USB on the GO controller. The all come with one handy low power UART module and in this case 2 regular UARTs and 2 SPI modules and 2 I2C modules to integrate various IO and interfaces too. In general the MSP430 family is older and has far more IO options, but NXP has done a good job providing the most commonly available IO you might need in various processor options. NXP has variations specially mixed with IO for the automotive industry.
I did find in initial inspection that the debugger breakpoint system was a bit finicky compared to the MSP430 which was rock solid, which is a bit concerning for a firmware developer, might be a driver issue and needs more investigation.
The driver libraries provided have proven functional and relatively easy to integrate, documentation of the library code was a bit scarce and lacking compared to TI. There is an active community where you can get help and was helpful in a previous project where I was using the MKL43Z variant, so I recommend registering for that to get help rather then banging your head on a problem.
So, to conclude MKL25Z processors are very competitive in terms of speed and flexible IO, the price range is about $6 depending on the variant used, but if you have a very tough low power problem and not a lot of processing need, then I’d say the MSP430 is still a better option. If you need some processing in low power or just collecting and need some modest DSP processing done then the MKL25Z family is a good option.
Cheers!