Source: element14 > Development Platforms > Freescale Freedom > Docs
I received the first Freedom board for the Kinetis-K MCUs serie (ARM Cortex-M4) : the FRDM-K20D50M.
FRDM-K20D50M Board and Box
The board is orderable at element14 and has the same size and shape as the FRDM-KL25Z and it is compatible with Arduino R3 shields
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-M0 | ARM Cortex-M0+ | ARM Cortex-M3 | ARM Cortex-M4 | |
---|---|---|---|---|
Architecture | ARMv6-M | ARMv6-M | ARMv7-M | ARMv7-M |
CoreMark 1.0 / MHz | 1.62 | 1.77 | 2.17 | 2.19 |
Typical DMIPS @ MHz | 0.84 | 0.93 | 1.25 | 1.25 |
Max Number of IRQ | 32 + NMI | 32 + NMI | 240 + NMI | 240 + NMI |
System exceptions | 4 | 4 | 8 | 8 |
Exception Priority levels | 4(prog) + 2 (fixed) | 4(prog) + 2 (fixed) | 8 to 256(prog) +2(fixed) | 8 to 256(prog) +2(fixed) |
Masking registers | 1 | 1 | 3 | 3 |
Interrupt Latency (cycles) | 16 | 15 | 12 | 12 |
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.
The board includes the MMA8451QR1 accelerometer, a reset button, a RGB LED and touch slider area, similar to the FRDM-KL25Z and an additional ambiant light sensor.
FRDM-K20D50M Board
The differences are shown best in a comparison table:
FRDM-KL05Z | FRDM-KL25Z | FRDM-K20D50M | |
---|---|---|---|
CPU | KL05Z32 (QFN32), ARM Cortex-M0+ | KL25Z128 (LQFP80), ARM Cortex-M0+ | K20DX128 (LQFP64), ARM Cortex-M4 |
FLASH | 32 KByte | 128 KByte | 128 KByte |
SRAM | 4 KByte | 16 KByte | 16 KByte |
FLEX NVM | no | no | yes |
CRYSTAL | 32 kHz | 8 MHz | 8 MHz |
USB | no | yes | yes |
Arduino Headers | Single (not populated) | Dual (not populated) | Dual (not populated) |
RGB LED | yes | yes | yes |
Touch Slider | yes | yes | yes |
Accelerometer | MMA8451QR1 | MMA8451QR1 | MMA8451QR1 |
Ambiant Light Sensor | no | no | yes |
USB OpenSDA Debug | yes | yes | yes |
Kit Content | Board only | Board only | Board only |
Price | Euro 9.10 | Euro 10.37 | Euro 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.
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.
K20DX128 in the New Bareboard Project Wizard
Debugging will work exactly like on the FRDM-KL25Z with the OpenSDA interface.
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).