| .. zephyr:board:: frdm_mcxw71 |
| |
| Overview |
| ******** |
| |
| The FRDM-MCXW71 is a compact and scalable development board for rapid |
| prototyping of the MCX W71 wireless MCU. It offers easy evaluation of the MCX |
| W71's multiprotocol wireless support for Bluetooth LE, Zigbee, Thread and |
| Matter. The board includes an on-board MCU-Link debugger, industry standard |
| headers for easy access to the MCU’s I/Os, an accelerometer, a light sensor and |
| external SPI flash memory. |
| |
| The MCX W71x family features a 96 MHz Arm® Cortex®-M33 core coupled with a |
| multiprotocol radio subsystem supporting Matter, Thread, Zigbee and Bluetooth |
| LE. The independent radio subsystem, with a dedicated core and memory, offloads |
| the main CPU, preserving it for the primary application and allowing firmware |
| updates to support future wireless standards. |
| |
| Hardware |
| ******** |
| |
| - MCXW71 Arm Cortex-M33 microcontroller running up to 96 MHz |
| - 1MB on-chip Flash memory unit |
| - 128 KB TCM RAM |
| - On-board MCU-Link debugger with CMSIS-DAP |
| |
| For more information about the MCXW71 SoC and FRDM-MCXW71 board, see: |
| |
| - `MCXW71 SoC Website`_ |
| - `FRDM-MCXW71 Website`_ |
| |
| Supported Features |
| ================== |
| |
| .. zephyr:board-supported-hw:: |
| |
| Fetch Binary Blobs |
| ****************** |
| |
| To support Bluetooth, frdm_mcxw71 requires fetching binary blobs, which can be |
| achieved by running the following command: |
| |
| .. code-block:: console |
| |
| west blobs fetch hal_nxp |
| |
| Programming and Debugging |
| ************************* |
| |
| .. zephyr:board-supported-runners:: |
| |
| 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 MCU-Link CMSIS-DAP Onboard Debug Probe. |
| |
| Using LinkServer |
| ---------------- |
| |
| Linkserver is the default runner for this board, and supports the factory |
| default MCU-Link firmware. Follow the instructions in |
| :ref:`mcu-link-cmsis-onboard-debug-probe` to reprogram the default MCU-Link |
| firmware. This only needs to be done if the default onboard debug circuit |
| firmware was changed. To put the board in ``DFU mode`` to program the firmware, |
| short jumper J5. |
| |
| Using J-Link |
| ------------ |
| |
| There are two options. The onboard debug circuit can be updated with Segger |
| J-Link firmware by following the instructions in |
| :ref:`mcu-link-jlink-onboard-debug-probe`. |
| To be able to program the firmware, you need to put the board in ``DFU mode`` |
| by shortening the jumper JP5. |
| The second option is to attach a :ref:`jlink-external-debug-probe` to the |
| 10-pin SWD connector (J12) of the board. |
| For both options use the ``-r jlink`` option with west to use the jlink runner. |
| |
| .. code-block:: console |
| |
| west flash -r jlink |
| |
| Configuring a Console |
| ===================== |
| |
| Connect a USB cable from your PC to J10, and use the serial terminal of your choice |
| (minicom, putty, etc.) with the following settings: |
| |
| - Speed: 115200 |
| - Data: 8 bits |
| - Parity: None |
| - Stop bits: 1 |
| |
| Application Building |
| ==================== |
| |
| Openthread applications |
| ----------------------- |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/net/sockets/echo_server |
| :board: frdm_mcxw71 |
| :goals: build |
| :gen-args: -DEXTRA_CONF_FILE=overlay-ot.conf |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/net/sockets/echo_client |
| :board: frdm_mcxw71 |
| :goals: build |
| :gen-args: -DEXTRA_CONF_FILE=overlay-ot.conf |
| |
| Application Flashing |
| ==================== |
| |
| Here is an example for the :zephyr:code-sample:`hello_world` application. |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/hello_world |
| :board: frdm_mcxw71/mcxw716c |
| :goals: flash |
| |
| Open a serial terminal, reset the board (press the RESET button), and you should |
| see the following message in the terminal: |
| |
| .. code-block:: console |
| |
| *** Booting Zephyr OS build v3.7.0-xxx-xxxx *** |
| Hello World! frdm_mcxw71/mcxw716c |
| |
| Debugging |
| ========= |
| |
| Here is an example for the :zephyr:code-sample:`hello_world` application. |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/hello_world |
| :board: frdm_mcxw71/mcxw716c |
| :goals: debug |
| |
| Open a serial terminal, step through the application in your debugger, and you |
| should see the following message in the terminal: |
| |
| .. code-block:: console |
| |
| *** Booting Zephyr OS build v3.7.0-xxx-xxxx *** |
| Hello World! frdm_mcxw71/mcxw716c |
| |
| NBU Flashing |
| ============ |
| |
| BLE functionality requires to fetch binary blobs, so make sure to follow |
| the ``Fetch Binary Blobs`` section first. |
| |
| Two images must be written to the board: one for the host (CM33) and one for the NBU (CM3). |
| |
| - To flash the application (CM33) refer to the ``Application Flashing`` section above. |
| |
| - To flash the ``NBU Flashing``, follow the instructions below: |
| |
| * Install ``blhost`` from NXP's website. This is the tool that will allow you to flash the NBU. |
| * Enter ISP mode. To boot the MCU in ISP mode, follow these steps: |
| - Disconnect the ``FRDM-MCXW71`` board from all power sources. |
| - Keep the ``SW3`` (ISP) button on the board pressed, while connecting the board to the host computer USB port. |
| - Release the ``SW3`` (ISP) button. The MCXW71 MCU boots in ISP mode. |
| - Reconnect any external power supply, if needed. |
| * Use the following command to flash NBU file: |
| |
| .. tabs:: |
| |
| .. group-tab:: BLE NBU - Windows |
| |
| .. code-block:: console |
| :caption: Flash BLE only NBU on Windows |
| |
| blhost.exe -p COMxx -- receive-sb-file mcxw71_nbu_ble.sb3 |
| |
| .. group-tab:: BLE NBU - Linux |
| |
| .. code-block:: console |
| :caption: Flash BLE only NBU on Linux |
| |
| ./blhost -p /dev/ttyxx -- receive-sb-file mcxw71_nbu_ble.sb3 |
| |
| .. group-tab:: DYN NBU - Windows |
| |
| .. code-block:: console |
| :caption: Flash Dynamic NBU (BLE + 15.4) on Windows |
| |
| blhost.exe -p COMxx -- receive-sb-file mcxw71_nbu_ble_15_4_dyn.sb3 |
| |
| .. group-tab:: DYN NBU - Linux |
| |
| .. code-block:: console |
| :caption: Flash Dynamic NBU (BLE + 15.4) on Linux |
| |
| ./blhost -p /dev/ttyxx -- receive-sb-file mcxw71_nbu_ble_15_4_dyn.sb3 |
| |
| Please consider changing ``COMxx`` on Windows or ``ttyxx`` on Linux to the serial port used by your board. |
| |
| The NBU files can be found in : ``<zephyr workspace>/modules/hal/nxp/zephyr/blobs/mcxw71/`` folder. |
| |
| For more details: |
| |
| .. _MCXW71 In-System Programming Utility: |
| https://docs.nxp.com/bundle/AN14427/page/topics/introduction.html |
| |
| .. _blhost Website: |
| https://www.nxp.com/search?keyword=blhost&start=0 |
| |
| Troubleshooting |
| =============== |
| |
| .. include:: ../../common/segger-ecc-systemview.rst |
| :start-after: segger-ecc-systemview |
| |
| .. include:: ../../common/board-footer.rst |
| :start-after: nxp-board-footer |
| |
| References |
| ********** |
| |
| .. target-notes:: |
| |
| .. _MCXW71 SoC Website: |
| https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/mcx-arm-cortex-m/mcx-w-series-microcontrollers/mcx-w71x-secure-and-ultra-low-power-mcus-for-matter-thread-zigbee-and-bluetooth-le:MCX-W71X |
| |
| .. _FRDM-MCXW71 Website: |
| https://www.nxp.com/design/design-center/development-boards-and-designs/general-purpose-mcus/frdm-development-board-for-mcx-w71x-wireless-mcus:FRDM-MCXW71 |