Skip to content

NXP FRDM-K64F Board

Support for the NXP FRDM-K64F

Overview

The board has a K64F Kinetis MCU and is supported by cpu/kinetis_common.

Hardware

frdm-k64f

MCUMK64FN1M0VLL12
FamilyARM Cortex-M4F
VendorFreescale
RAM256KiB
Flash1024KiB
Frequency120MHz
FPUyes
Timersyes
ADCsyes
UARTsyes
SPIsyes
I2Csyes
EthernetWIP
USBWIP
LPMTODO
DACTODO
VccTODO
Reference ManualTODO

The board has an integrated debugger adapter (k20dx128) with the firmware from ARMmbed. There are three interfaces available:

  • Drag-n-drop programming over Mass Storage Device
  • USB Serial Port (/dev/ttyACMx) connected to a K64F UART interface
  • CMSIS-DAP for debugging with e.g. OpenOCD

Please update the firmware to version 0221, see below.

OpenOCD

The latest (01.07.2015) OpenOCD version (also current git) does not support the K64F. There is a patch which makes flashing and debugging possible. A refactored and rebased version can be found here.

Flashing the Device

Over OpenOCD

make BOARD=frdm-k64f flash

Over MSD

Simply mount the mbed Mass Storage Device und copy new RIOT firmware. See also the ARMmbed [instructions](https://developer.mbed.org/platforms/FRDM-K64F/#getting-started- with-mbed).

Updating the Bootloader

A update of CMSIS-DAP firmware is necessary to using the board with OpenOCD. A good step by step guide is available here.

I can’t flash the device with OpenOCD anymore…

When a flash process has failed or a wrong firmware has been programmed, the following OpenOCD message may appear:

START...
Info : SWD IDCODE 0x2ba01477
Info : SWD IDCODE 0x2ba01477
Error: Failed to read memory at 0xe000ed00
Examination failed, GDB will be halted. Polling again in 300ms
TargetName Type Endian TapName State
-- ------------------ ---------- ------ ------------------ ------------
0* k64f.cpu cortex_m little k64f.cpu unknown
START...
Warn : *********** ATTENTION! ATTENTION! ATTENTION! ATTENTION! **********
Warn : **** ****
Warn : **** Your Kinetis MCU is in secured state, which means that, ****
Warn : **** with exception for very basic communication, JTAG/SWD ****
Warn : **** interface will NOT work. In order to restore its ****
Warn : **** functionality please issue 'kinetis mdm mass_erase' ****
Warn : **** command, power cycle the MCU and restart OpenOCD. ****
Warn : **** ****
Warn : *********** ATTENTION! ATTENTION! ATTENTION! ATTENTION! **********
in procedure 'reset'
in procedure 'ocd_bouncer'

Solution 1:

  • Hold the reset button and execute make BOARD=frdm-k64f flash in a project directory
  • Release reset button just after “Info : MDM: Chip is unsecured. Continuing.”

Solution 2:

  • Comment out line reset_config srst_only srst_nogate connect_assert_srst in boards/frdm-k64f/dist/openocd.cfg
  • Execute make BOARD=frdm-k64f flash in a project directory

Solution 3:

  • Ask Deep Thought