Christmas and New Year time is great: Gifts and time to work on my home projects. But this post is not about one gift I have organized for myself: a Raspberry Pi ;-)). No, this post is about a gift I have received from Freescale: a *new* Freedom board, the FRDM-KL05Z.
The board is available for pre-orders at element14 and has the same size and shape as the FRDM-KL25Z.
The KL05Z features the KL05Z processor from the KL0 family, which is the smallest and tiny brother of the KL2(5Z).
The board includes the MMA8451Q accelerometer, a reset button, a RGB LED and touch slider area, similar to the FRDM-KL25Z.
The differences are shown best in a comparison table:
|CPU||KL05Z32 (QFN32), ARM Cortex-M0+||KL25Z128 (LQFP80), ARM Cortex-M0+|
|FLASH||32 KByte||128 KByte|
|SRAM||4 KByte||16 KByte|
|Crystal||32 kHz||8 MHz|
|Arduino Headers||Single (not populated)||Dual (not populated)|
|USB OpenSDA Debug||yes||yes|
|Kit Content||Board only||Board only|
|Price||Euro 9.10||Euro 10.37|
Note: my board has the Arduino and the JTAG headers (both for the OpenSDA and for the KL05) populated. I expect that the final board (as the KL25Z) will *not* have these headers and battery holder populated. See this post about possible parts to populate the board. My board has as the ‘white’ KL25Z boards U5 with an external EEPROM populated, while I expect that this part will not be present on the final boards (as on the black KL25Z). The picture on element14 site even does not show the U5 footprint any more.
💡 The KL25Z board has a 8 MHz crystal which is needed for USB operation. Such a 8 MHz crystal usually draws more current than a 32 kHz one as found on the KL05Z. So I would expect that the FRDM-KL05Z board woudl be more ideal for low power applications. But at the price of not having a USB port for the microcontroller. Still the OpenSDA USB port can be used e.g. for USB CDC (serial/terminal) communication.
Similar as the ‘big brother’ Freedom board: there are three jumpers/headers (J4, J5, J6) available for power measurement or to isolate the OpenSDA JTAG clock from the KL05Z.
As small detail: the mounting holes are slightly different compared to the KL25Z. The ones of the KL25Z do not match exactly to the Arduino shilds I have, and the one of the KL05Z have the same issue. Not a big deal, but having difference to the KL25Z seems odd to me.
My board is labeled as Rev X1, and the parts on the board are slightly differently located than on the picture on the element14 site: such as on my board the reset button is nearby the J9, while on the element14 site picture it is placed nearby the USB connector (which is a better place in my view).
CodeWarrior for MCU10.3
The KL05Z32 microprocessor is supported by CodeWarrior for MCU10.3 out of the box:
Debugging works exactly like on the FRDM-KL25Z with the OpenSDA interface. Debugging worked fine, and as well my Processor Expert components worked well. As for the KL2 family, ARM GNU gcc is used for the KL0 family of processors.
Note: Accidentially I downloaded a K25Z application through OpenSDA to the KL05Z, which then caused a hard fault on the KL05Z. While this is clearly a user error, I think the Open SDA interface should be able to verify if application binary and device are matching?
The FRDM-KL05Z is an interesting alternative to the FRDM-KL25Z board, especially to evaluate the KL05Z microprocessor. However, I get a lot more power and functionality (USB, more RAM and ROM) with the KL25Z for just about one Euro more. The FRDM-KL05Z could be a good alternative because of the different clock configuration for ultra-low power applications. Another consideration for the KL05 is the pin compatibility with the S08P 8bit processors: this makes the KL05Z an ideal candidate to migrate 8bit applications to the ARM 32bit world.
Happy KL0 Freedom