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 256KiB
Flash 1024KiB
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 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.

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  adc_params.h
 Board specific configuration of direct mapped ADC.
 
file  board.h
 Board specific definitions for the FRDM-K64F.
 
file  periph_conf.h