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.
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 supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo
-
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M0+ CPU1 |
|
ADC |
on-chip |
Kinetis ADC161 |
|
Clock control |
on-chip |
NXP Kinetis Multipurpose Clock generator (MCG) IP node1 |
|
on-chip |
Kinetis System Integration Module (SIM) IP node1 |
||
on-chip |
Generic fixed factor clock provider2 |
||
Flash controller |
on-chip |
NXP Kinetis Flash Memory Module A (FTFA)1 |
|
GPIO & Headers |
on-chip |
||
on-board |
GPIO pins exposed on Arduino Uno (R3) headers1 |
||
I2C |
on-chip |
||
IEEE 802.15.4 |
on-chip |
NXP KW41Z IEEE 802.15.4 node1 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
on-board |
Group of PWM-controlled LEDs1 |
||
MTD |
on-chip |
Flash node1 |
|
on-board |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
Pin control |
on-chip |
NXP PORT Pin Controller3 |
|
on-chip |
NXP PORT Pin Controller1 |
||
PWM |
on-chip |
||
RNG |
on-chip |
Kinetis TRNG (True Random Number Generator)1 |
|
RTC |
on-chip |
NXP Real Time Clock (RTC)1 |
|
Sensors |
on-board |
FXOS8700 6-axis accelerometer/magnetometer sensor1 |
|
Serial controller |
on-chip |
NXP LPUART1 |
|
SPI |
on-chip |
||
SRAM |
on-chip |
Generic on-chip SRAM description1 |
|
Timer |
on-chip |
ARMv6-M System Tick1 |
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
Build and flash applications as usual (see Building an Application and Run an Application for more details).
Configuring a Debug Probe
A debug probe is used for both flashing and debugging the board. This board is configured by default to use the OpenSDA DAPLink Onboard Debug Probe.
Option 1: OpenSDA DAPLink Onboard Debug Probe (Recommended)
Install the pyOCD Debug Host Tools and make sure they are in your search path.
Follow the instructions in OpenSDA DAPLink Onboard Debug Probe to program the OpenSDA DAPLink FRDM-KW41Z Firmware.
Option 2: OpenSDA J-Link Onboard Debug Probe
Install the J-Link Debug Host Tools and make sure they are in your search path.
Follow the instructions in OpenSDA J-Link Onboard Debug Probe to program the OpenSDA J-Link FRDM-KW41Z Firmware.
Add the arguments -DBOARD_FLASH_RUNNER=jlink
and
-DBOARD_DEBUG_RUNNER=jlink
when you invoke west build
to override the
default runner from pyOCD to J-Link:
# From the root of the zephyr repository
west build -b frdm_kw41z samples/hello_world -- -DBOARD_FLASH_RUNNER=jlink -DBOARD_DEBUG_RUNNER=jlink
Configuring a Console
Regardless of your choice in debug probe, we will use the OpenSDA microcontroller as a usb-to-serial adapter for the serial console.
Connect a USB cable from your PC to J6.
Use the following settings with your serial terminal of choice (minicom, putty, etc.):
Speed: 115200
Data: 8 bits
Parity: None
Stop bits: 1
Flashing
Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b frdm_kw41z samples/hello_world
west flash
Open a serial terminal, reset the board (press the SW1 button), and you should see the following message in the terminal:
***** Booting Zephyr OS v1.14.0-rc1 *****
Hello World! frdm_kw41z
Debugging
Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b frdm_kw41z samples/hello_world
west debug
Open a serial terminal, step through the application in your debugger, and you should see the following message in the terminal:
***** Booting Zephyr OS v1.14.0-rc1 *****
Hello World! frdm_kw41z
Support Resources for Zephyr
MCUXpresso for VS Code, wiki documentation and Zephyr lab guides
NXP’s Zephyr landing page (including training resources)