Review for FRDM-K20D50M : the first Freescale Freedom Board for the Kinetis-K MCUs serie (ARM Cortex-M4)

Freescale.bmp Kinetis-L.jpg

 

Osterhase visited me earlier this year :-)

He didn't offer me chocolat, but in replacement, I received the first Freedom board for the Kinetis-K MCUs serie (ARM Cortex-M4) : the FRDM-K20D50M.

    

FRDM-K20D50M.bmp

FRDM-K20D50M Board and Box
    
  

      

The board is orderable at element14element14 and has the same size and shape as the FRDM-KL25Z and it is compatible with Arduino R3 shields

   

threeFRDM.jpg

3 Freedom Boards (black: FRDM-KL25Z, green: FRDM-KL05Z and red: new FRDM-K20D50M)

   

   

The FRDM-K20D50M features the K20D MCU based on an ARM Cortex-M4 @50MHz from the K20 family, which is the big brother of the KL25Z embedding also an USB controller.

 

Concerning the core itself, the following table explains why ARM Cortex-M4 is more powerfull than M3 or M0+/M0.

 


ARM Cortex-M0ARM Cortex-M0+ARM Cortex-M3ARM Cortex-M4
ArchitectureARMv6-MARMv6-MARMv7-MARMv7-M
CoreMark 1.0 / MHz1.621.772.172.19
Typical DMIPS @ MHz0.840.931.251.25
Max Number of IRQ

32 + NMI

32 + NMI

240 + NMI

240 + NMI

System exceptions

4

4

88
Exception Priority levels

4(prog) + 2 (fixed)

4(prog) + 2 (fixed)

8 to 256(prog) +2(fixed)

8 to 256(prog) +2(fixed)

Masking registers1133
Interrupt Latency (cycles)

16

151212
Register accesses

32-bit

32-bit

8/16/32-bit

8/16/32-bit

SysTick timer

Yes (Optional)

Yes (Optional)

Yes

Yes

Bit band

N (system option)

N (system option)

Y (system option)

Y (system option)

Fault Handling exceptions

1 (HardFault)

1 (HardFault)

4 (HardFault + 3 other handlers)

4 (HardFault + 3 other handlers)

 

 

ARM Cortex-M4 core can also handle more instructions than M3 or M0+/M0, which warranty shorter excecution time for complex functions, especially thanks to the DSP instructions.

  

Sans titre 2.bmp

   

   

The board includes the MMA8451QR1MMA8451QR1 accelerometer, a reset button, a RGB LED and touch slider area, similar to the FRDM-KL25Z and an additional ambiant light sensor.

  

Sans titre 1.jpg

  FRDM-K20D50M Board

 

   

The differences are shown best in a comparison table:

   


FRDM-KL05ZFRDM-KL25ZFRDM-K20D50M
CPUKL05Z32 (QFN32),
ARM Cortex-M0+
KL25Z128 (LQFP80),
ARM Cortex-M0+
K20DX128 (LQFP64),
ARM Cortex-M4
FLASH32 KByte128 KByte128 KByte
SRAM4 KByte16 KByte16 KByte
FLEX NVMnonoyes
CRYSTAL32 kHz8 MHz8 MHz
USBnoyesyes
Arduino HeadersSingle (not populated)Dual (not populated)Dual (not populated)
RGB LED yesyesyes
Touch Slider yesyesyes
AccelerometerMMA8451QR1MMA8451QR1MMA8451QR1MMA8451QR1MMA8451QR1MMA8451QR1
Ambiant Light Sensornonoyes
USB OpenSDA Debug yesyesyes
Kit Content Board onlyBoard onlyBoard only
PriceEuro 9.10Euro 9.10   Euro 10.37Euro 10.37    Euro 17.79Euro 17.79

 

 

Note: my board has the Arduino and the JTAG headers (both for the OpenSDA and for the K20) populated. The 'production' 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 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.

 

photo.JPG

FRDM-K20D50M Board Backside

   

     

Note : The FRDM-K20D50M board like FRDM-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 FRDM-KL05Z board. So I would expect that the FRDM-KL05Z board would be more ideal for low power applications. Still the OpenSDA USB port can be used e.g. for USB CDC (serial/terminal) communication.

  

Similar as the ‘small brother’ Freedom board: there are three jumpers/headers (J4, J5, J6) available for power measurement or to isolate the OpenSDA JTAG clock from the K20D50M.

 

 

CodeWarrior for MCU10.3

 

The K20DX128VLH5 microprocessor is supported by CodeWarrior for MCU10.3 out of the box but the OpenSDA debug interface will be accessible thanks to a the patch 1.0.0 that will be released March 22nd.

 

Sans titre 1.jpg

K20DX128 in the New Bareboard Project Wizard

 

 

 

Debugging will work exactly like on the FRDM-KL25Z with the OpenSDA interface.

 

Sans titre 1.jpg

  OpenSDA debugger in the New Bareboard Project Wizard

 

 

Even if I could not evaluate the OpenSDA debugger, Processor Expert components worked well. As for the KL2 family, ARM GNU gcc is used for the K20 family of processors.

 

 

Conclusion

 

The FRDM-K20D50M is an interesting alternative to the FRDM-KL25Z board, especially to evaluate the K20 microprocessor in 50MHz version with Flexmemory. K20 MCU is based on an ARM Cortex-M4 core, which is more powerfull than KL25 based on an ARM Cortex-M0+ especially thanks to the DSP instructions. Kinetis-K serie also embeds more features than Kinetis-L serie (additional memory, Vref, USB Host mode ...), so if your application has an higher complexity and requests more performances, FRDM-K20D50M will represente the right choice. Keep in mind that an upgrade from KL25 to K20 is still possible later as those two families will be software and pin-compatible (with limited adaptations).

   

  

Happy K20 Freedom :-)