NXP FRDM-K64F Board

Support for the NXP FRDM-K64F. More...

Detailed Description

Support for the NXP FRDM-K64F.

Overview

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

Hardware

frdm-k64f
MCU MK64FN1M0VLL12
Family ARM Cortex-M4F
Vendor Freescale
RAM 256Kb
Flash 1024Kb
Frequency 120MHz
FPU yes
Timers yes
ADCs yes
UARTs yes
SPIs yes
I2Cs yes
Ethernet WIP
USB WIP
LPM TODO
DAC TODO
Vcc TODO
Reference Manual TODO

The board has an integrated debuger 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.

Updating the Booloader

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:

Solution 2:

Solution 3:

Files

file  frdm-k64f/include/board.h
 Board specific definitions for the FRDM-K64F.
 
file  boards/frdm-k64f/include/periph_conf.h