NXP FRDM-KW41Z

Overview

The FRDM-KW41Z is a development kit enabled by the Kinetis® W series KW41Z/31Z/21Z (KW41Z) family built on ARM® Cortex®-M0+ processor with integrated 2.4 GHz transceiver supporting Bluetooth® Smart/Bluetooth® Low Energy (BLE) v4.2, Generic FSK, IEEE® 802.15.4 and Thread.

The FRDM-KW41Z kit contains two Freedom boards that can be used as a development board or a shield to connect to a host processor. The FRDM-KW41Z is form-factor compatible with the Arduino™ R3 pin layout for more expansion options.

The FRDM-KW41Z highly-sensitive, optimized 2.4 GHz radio features a PCB F-antenna which can be bypassed to test via SMA connection, multiple power supply options, push/capacitive touch buttons, switches, LEDs and integrated sensors.

FRDM-KW41Z

Hardware

  • Can be configured as Host or Shield for connection to Host Processor
  • Supports all DC-DC configurations (Buck, Boost, Bypass)
  • PCB inverted F-type antenna
  • SMA RF Connector
  • RF regulatory certified
  • Serial Flash for OTA firmware upgrades
  • On board NXP FXOS8700CQ digital sensor, 3D Accelerometer ( ±2g/ ±4g/ ±8g) + 3D Magnetometer
  • OpenSDA and JTAG debug

For more information about the KW41Z SoC and FRDM-KW41Z board:

Supported Features

The frdm_kw41z board configuration supports the following hardware features:

Interface Controller Driver/Component
NVIC on-chip nested vector interrupt controller
SYSTICK on-chip systick
PINMUX on-chip pinmux
COUNTER on-chip rtc
GPIO on-chip gpio
I2C on-chip i2c
SPI on-chip spi
ADC on-chip adc
UART on-chip serial port-polling; serial port-interrupt
FLASH on-chip soc flash
SENSOR off-chip fxos8700 polling: fxos8700 trigger

The default configuration can be found in the defconfig file:

boards/arm/frdm_kw41z/frdm_kw41z_defconfig

Other hardware features are not currently supported by the port.

Connections and IOs

The KW41Z SoC has three pairs of pinmux/gpio controllers, but only two are currently enabled (PORTA/GPIOA and PORTC/GPIOC) for the FRDM-KW41Z board.

Name Function Usage
PTC1 GPIO Red LED / FXOS8700 INT1
PTA19 GPIO Green LED
PTA18 GPIO Blue LED
PTB2 ADC ADC0 channel 3
PTC2 I2C1_SCL I2C / FXOS8700
PTC3 I2C1_SDA I2C / FXOS8700
PTC4 GPIO SW3
PTC5 GPIO SW4
PTC6 LPUART0_RX UART Console
PTC7 LPUART0_TX UART Console
PTC16 SPI0_SCK SPI
PTC17 SPI0_SOUT SPI
PTC18 SPI0_SIN SPI
PTC19 SPI0_PCS0 SPI

System Clock

The KW41Z SoC is configured to use the 32 MHz external oscillator on the board with the on-chip FLL to generate a 40 MHz system clock.

Serial Port

The KW41Z SoC has one UART, which is used for the console.

Programming and Debugging

The FRDM-KW41Z includes the NXP OpenSDA serial and debug adapter built into the board to provide debugging, flash programming, and serial communication over USB.

To use the pyOCD tools with OpenSDA, follow the instructions in the pyOCD page using the DAPLink FRDM-KW41Z Firmware. The pyOCD tools are not the default for this board, therefore it is necessary to set OPENSDA_FW=daplink explicitly when using the default flash and debug mechanisms.

Note

pyOCD added support for KW41Z after support for this board was added to Zephyr, so you may need to build pyOCD from source based on the current master branch (f21d43d).

To use the Segger J-Link tools with OpenSDA, follow the instructions in the Segger J-Link page using the Segger J-Link OpenSDA V2.1 Firmware. The Segger J-Link tools are the default for this board, therefore it is not necessary to set OPENSDA_FW=jlink explicitly in the environment before programming and debugging.

With these mechanisms, applications for the frdm_kw41z board configuration can be built and debugged in the usual way (see Build an Application and Run an Application for more details).

Flashing

The Segger J-Link firmware does not support command line flashing, therefore the usual flash build system target is not supported.

Debugging

This example uses the Hello World sample with the Segger J-Link tools. Run the following to build your Zephyr application, invoke the J-Link GDB server, attach a GDB client, and program your Zephyr application to flash. It will leave you at a gdb prompt.

# On Linux/macOS
cd $ZEPHYR_BASE/samples/hello_world
mkdir build && cd build

# On Windows
cd %ZEPHYR_BASE%\samples\hello_world
mkdir build & cd build


# Use cmake to configure a Ninja-based build system:
cmake -GNinja -DBOARD=frdm_kw41z ..

# Now run ninja on the generated build system:
ninja debug