| .. _usb_kw24d512: |
| |
| NXP USB-KW24D512 |
| ################ |
| |
| Overview |
| ******** |
| |
| The USB-KW24D512 is an evaluation board in a convenient USB dongle |
| form factor based on the NXP MKW24D512 System-in-Package (SiP) device |
| (KW2xD wireless MCU series). |
| MKW24D512 wireless MCU provides a low-power, compact device with |
| integrated IEEE 802.15.4 radio. The board can be used as a packet sniffer, |
| network node, border router or as a development board. |
| |
| Hardware |
| ******** |
| |
| - Kinetis KW2xD-2.4 GHz 802.15.4 Wireless Radio Microcontroller |
| (50 MHz, 512 KB flash memory, 64 KB RAM, low-power, crystal-less USB) |
| - USB Type A Connector |
| - Two blue LEDs |
| - One user push button |
| - One reset button |
| - Integrated PCB Folded F-type antenna |
| - 10-pin (0.05”) JTAG debug port for target MCU |
| |
| For more information about the KW2xD SiP and USB-KW24D512 board: |
| |
| - `KW2xD Website`_ |
| - `KW2xD Datasheet`_ |
| - `KW2xD Reference Manual`_ |
| - `USB-KW24D512 Website`_ |
| - `USB-KW24D512 Hardware Reference Manual`_ |
| |
| Supported Features |
| ================== |
| |
| The USB-KW24D512 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 | |
| +-----------+------------+-------------------------------------+ |
| | GPIO | on-chip | gpio | |
| +-----------+------------+-------------------------------------+ |
| | I2C | on-chip | i2c | |
| +-----------+------------+-------------------------------------+ |
| | SPI | on-chip | spi | |
| +-----------+------------+-------------------------------------+ |
| | WATCHDOG | on-chip | watchdog | |
| +-----------+------------+-------------------------------------+ |
| | UART | on-chip | serial port-polling; | |
| | | | serial port-interrupt | |
| +-----------+------------+-------------------------------------+ |
| | FLASH | on-chip | soc flash | |
| +-----------+------------+-------------------------------------+ |
| | USB | on-chip | USB device | |
| +-----------+------------+-------------------------------------+ |
| | RNGA | on-chip | entropy; | |
| | | | random | |
| +-----------+------------+-------------------------------------+ |
| | FTFL | on-chip | flash programming | |
| +-----------+------------+-------------------------------------+ |
| |
| The default configuration can be found in the defconfig file: |
| |
| ``boards/arm/usb_kw24d512/usb_kw24d512_defconfig`` |
| |
| Other hardware features are not currently supported by the port. |
| |
| Connections and IOs |
| =================== |
| |
| The KW2xD SoC has five pairs of pinmux/gpio controllers. |
| |
| +-------+-----------------+--------------------------------------+ |
| | Name | Function | Usage | |
| +=======+=================+======================================+ |
| | PTA1 | UART0_RX | UART Console | |
| +-------+-----------------+--------------------------------------+ |
| | PTA2 | UART0_TX | UART Console | |
| +-------+-----------------+--------------------------------------+ |
| | PTC4 | GPIO | SW1 | |
| +-------+-----------------+--------------------------------------+ |
| | PTD4 | GPIO | Blue LED (D2) | |
| +-------+-----------------+--------------------------------------+ |
| | PTD5 | GPIO | Blue LED (D3) | |
| +-------+-----------------+--------------------------------------+ |
| | PTB10 | SPI1_PCS0 | internal connected to MCR20A | |
| +-------+-----------------+--------------------------------------+ |
| | PTB11 | SPI1_SCK | internal connected to MCR20A | |
| +-------+-----------------+--------------------------------------+ |
| | PTB16 | SPI1_SOUT | internal connected to MCR20A | |
| +-------+-----------------+--------------------------------------+ |
| | PTB17 | SPI1_SIN | internal connected to MCR20A | |
| +-------+-----------------+--------------------------------------+ |
| | PTB19 | GPIO | internal connected to MCR20A (Reset) | |
| +-------+-----------------+--------------------------------------+ |
| | PTB3 | GPIO | internal connected to MCR20A (IRQ_B) | |
| +-------+-----------------+--------------------------------------+ |
| | PTC0 | GPIO | internal connected to MCR20A (GPIO5) | |
| +-------+-----------------+--------------------------------------+ |
| |
| System Clock |
| ============ |
| |
| USB-KW24D512 contains 32 MHz oscillator crystal, which is connected to the |
| clock pins of the radio transceiver. The MCU is configured to |
| use the 4 MHz external clock from the transceiver with the on-chip PLL |
| to generate a 48 MHz system clock. |
| |
| Serial Port |
| =========== |
| |
| The KW2xD SoC has three UARTs. One is configured and can be used for the |
| console, but it uses the same pins as the JTAG interface and is only |
| accessible via the JTAG SWD connector. |
| |
| USB |
| === |
| |
| The KW2xD SoC has a USB OTG (USBOTG) controller that supports both |
| device and host functions. Only USB device function is supported in Zephyr |
| at the moment. The USB-KW24D512 board has a USB Type A connector and |
| can only be used in device mode. |
| |
| Programming and Debugging |
| ************************* |
| |
| Build and flash applications as usual (see :ref:`build_an_application` and |
| :ref:`application_run` 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 :ref:`jlink-external-debug-probe`. |
| |
| :ref:`jlink-external-debug-probe` |
| --------------------------------- |
| |
| Install the :ref:`jlink-debug-host-tools` and make sure they are in your search |
| path. |
| |
| Attach a J-Link 10-pin connector to J1. |
| |
| Configuring a Console |
| ===================== |
| |
| The console is available using `Segger RTT`_. |
| |
| Connect a USB cable from your PC to J5. |
| |
| Once you have started a debug session, run telnet: |
| |
| .. code-block:: console |
| |
| Trying 127.0.0.1... |
| Connected to localhost. |
| Escape character is '^]'. |
| SEGGER J-Link V6.44 - Real time terminal output |
| SEGGER J-Link ARM V10.1, SN=600111924 |
| Process: JLinkGDBServerCLExe |
| |
| Flashing |
| ======== |
| |
| Here is an example for the :ref:`hello_world` application. |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/hello_world |
| :board: usb_kw24d512 |
| :goals: flash |
| |
| The Segger RTT console is only available during a debug session. Use ``attach`` |
| to start one: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/hello_world |
| :board: usb_kw24d512 |
| :goals: attach |
| |
| Run telnet as shown earlier, and you should see the following message in the |
| terminal: |
| |
| .. code-block:: console |
| |
| ***** Booting Zephyr OS v1.14.0-rc1 ***** |
| Hello World! usb_kw24d512 |
| |
| Debugging |
| ========= |
| |
| Here is an example for the :ref:`hello_world` application. |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/hello_world |
| :board: usb_kw24d512 |
| :goals: debug |
| |
| Run telnet as shown earlier, step through the application in your debugger, and |
| you should see the following message in the terminal: |
| |
| .. code-block:: console |
| |
| ***** Booting Zephyr OS v1.14.0-rc1 ***** |
| Hello World! usb_kw24d512 |
| |
| .. _USB-KW24D512 Website: |
| https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/kinetis-cortex-m-mcus/w-serieswireless-conn.m0-plus-m4/ieee-802.15.4-packet-sniffer-usb-dongle-form-factor:USB-KW24D512 |
| |
| .. _USB-KW24D512 Hardware Reference Manual: |
| https://www.nxp.com/webapp/Download?colCode=USB-KW2XHWRM |
| |
| .. _KW2xD Website: |
| https://www.nxp.com/products/wireless/thread/kinetis-kw2xd-2.4-ghz-802.15.4-wireless-radio-microcontroller-mcu-based-on-arm-cortex-m4-core:KW2xD |
| |
| .. _KW2xD Datasheet: |
| https://www.nxp.com/docs/en/data-sheet/MKW2xDxxx.pdf |
| |
| .. _KW2xD Reference Manual: |
| https://www.nxp.com/webapp/Download?colCode=MKW2XDXXXRM |
| |
| .. _Segger RTT: |
| https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/ |