1.. zephyr:board:: rd_rw612_bga 2 3Overview 4******** 5 6The RW612 is a highly integrated, low-power tri-radio wireless MCU with an 7integrated 260 MHz ARM Cortex-M33 MCU and Wi-Fi 6 + Bluetooth Low Energy (LE) 5.3 / 802.15.4 8radios designed for a broad array of applications, including connected smart home devices, 9gaming controllers, enterprise and industrial automation, smart accessories and smart energy. 10 11The RW612 MCU subsystem includes 1.2 MB of on-chip SRAM and a high-bandwidth Quad SPI interface 12with an on-the-fly decryption engine for securely accessing off-chip XIP flash. 13 14The advanced design of the RW612 delivers tight integration, low power and highly secure 15operation in a space- and cost-efficient wireless MCU requiring only a single 3.3 V power supply. 16 17Hardware 18******** 19 20- 260 MHz ARM Cortex-M33, tri-radio cores for Wifi 6 + BLE 5.3 + 802.15.4 21- 1.2 MB on-chip SRAM 22 23Supported Features 24================== 25 26+-----------+------------+-----------------------------------+ 27| Interface | Controller | Driver/Component | 28+===========+============+===================================+ 29| NVIC | on-chip | nested vector interrupt controller| 30+-----------+------------+-----------------------------------+ 31| SYSTICK | on-chip | systick | 32+-----------+------------+-----------------------------------+ 33| MCI_IOMUX | on-chip | pinmux | 34+-----------+------------+-----------------------------------+ 35| GPIO | on-chip | gpio | 36+-----------+------------+-----------------------------------+ 37| USART | on-chip | serial | 38+-----------+------------+-----------------------------------+ 39| DMA | on-chip | dma | 40+-----------+------------+-----------------------------------+ 41| SPI | on-chip | spi | 42+-----------+------------+-----------------------------------+ 43| I2C | on-chip | i2c | 44+-----------+------------+-----------------------------------+ 45| FLEXSPI | on-chip | flash/memc | 46+-----------+------------+-----------------------------------+ 47| TRNG | on-chip | entropy | 48+-----------+------------+-----------------------------------+ 49| DMIC | on-chip | dmic | 50+-----------+------------+-----------------------------------+ 51| LCDIC | on-chip | mipi-dbi | 52+-----------+------------+-----------------------------------+ 53| WWDT | on-chip | watchdog | 54+-----------+------------+-----------------------------------+ 55| USBOTG | on-chip | usb | 56+-----------+------------+-----------------------------------+ 57| CTIMER | on-chip | counter | 58+-----------+------------+-----------------------------------+ 59| SCTIMER | on-chip | pwm | 60+-----------+------------+-----------------------------------+ 61| MRT | on-chip | counter | 62+-----------+------------+-----------------------------------+ 63| OS_TIMER | on-chip | os timer | 64+-----------+------------+-----------------------------------+ 65| PM | on-chip | power management; uses SoC Power | 66| | | Modes 1 and 2 | 67+-----------+------------+-----------------------------------+ 68| BLE | on-chip | Bluetooth | 69+-----------+------------+-----------------------------------+ 70| ADC | on-chip | adc | 71+-----------+------------+-----------------------------------+ 72| DAC | on-chip | dac | 73+-----------+------------+-----------------------------------+ 74| ENET | on-chip | ethernet | 75+-----------+------------+-----------------------------------+ 76| Wi-Fi | on-chip | Wi-Fi | 77+-----------+------------+-----------------------------------+ 78 79The default configuration can be found in the defconfig file: 80 81 :zephyr_file:`boards/nxp/rd_rw612_bga/rd_rw612_bga_defconfig/` 82 83Other hardware features are not currently supported 84 85 86Display Support 87*************** 88 89The rd_rw612_bga board supports several in-tree display modules. Setup for 90each module is described below: 91 92GoWorld 16880 LCM 93================= 94 95This module does not connect directly to the board, and must be connected 96via an adapter board and jumper wires. Connections are described in 97:zephyr_file:`boards/nxp/rd_rw612_bga/dts/goworld_16880_lcm.overlay`. The 98display sample can be built for this board like so: 99 100.. zephyr-app-commands:: 101 :board: rd_rw612_bga 102 :gen-args: -DDTC_OVERLAY_FILE=goworld_16880_lcm.overlay 103 :zephyr-app: samples/drivers/display 104 :goals: build 105 :compact: 106 107Adafruit 2.8 TFT 108================ 109 110The :ref:`adafruit_2_8_tft_touch_v2` connects to the board's Arduino headers 111directly, but some modifications are required (see 112:zephyr_file:`boards/shields/adafruit_2_8_tft_touch_v2/boards/rd_rw612_bga.overlay` 113for a list). The display sample can be built for this module like so: 114 115.. zephyr-app-commands:: 116 :board: rd_rw612_bga 117 :shield: adafruit_2_8_tft_touch_v2 118 :zephyr-app: samples/drivers/display 119 :goals: build 120 :compact: 121 122NXP LCD_PAR_S035 123================ 124 125The :ref:`lcd_par_s035` does not connect directly to the board, and must be 126connected via jumper wires. Connections and required board changes are 127described in 128:zephyr_file:`boards/shields/lcd_par_s035/boards/rd_rw612_bga.overlay`. The 129display sample can be built for the module like so: 130 131.. zephyr-app-commands:: 132 :board: rd_rw612_bga 133 :shield: lcd_par_s035_8080 134 :zephyr-app: samples/drivers/display 135 :goals: build 136 :compact: 137 138Fetch Binary Blobs 139****************** 140 141To support Bluetooth or Wi-Fi, rd_rw612_bga requires fetching binary blobs, which can be 142achieved by running the following command: 143 144.. code-block:: console 145 146 west blobs fetch hal_nxp 147 148Programming and Debugging 149************************* 150 151Build and flash applications as usual (see :ref:`build_an_application` and 152:ref:`application_run` for more details). 153 154Configuring a Debug Probe 155========================= 156 157A debug probe is used for both flashing and debugging the board. This board is 158configured by default to use the JLink Firmware. 159 160Configuring a Console 161===================== 162 163Connect a USB cable from your PC to J7, and use the serial terminal of your choice 164(minicom, putty, etc.) with the following settings: 165 166- Speed: 115200 167- Data: 8 bits 168- Parity: None 169- Stop bits: 1 170 171Flashing 172======== 173 174Here is an example for the :zephyr:code-sample:`hello_world` application. This example uses the 175:ref:`jlink-debug-host-tools` as default. 176 177.. zephyr-app-commands:: 178 :zephyr-app: samples/hello_world 179 :board: rd_rw612_bga 180 :goals: flash 181 182Open a serial terminal, reset the board (press the RESET button), and you should 183see the following message in the terminal: 184 185.. code-block:: console 186 187 ***** Booting Zephyr OS v3.4.0 ***** 188 Hello World! rd_rw612_bga 189 190Debugging 191========= 192 193Here is an example for the :zephyr:code-sample:`hello_world` application. This example uses the 194:ref:`jlink-debug-host-tools` as default. 195 196.. zephyr-app-commands:: 197 :zephyr-app: samples/hello_world 198 :board: rd_rw612_bga 199 :goals: debug 200 201Open a serial terminal, step through the application in your debugger, and you 202should see the following message in the terminal: 203 204.. code-block:: console 205 206 ***** Booting Zephyr OS zephyr-v3.6.0 ***** 207 Hello World! rd_rw612_bga 208 209Bluetooth 210********* 211 212BLE functionality requires to fetch binary blobs, so make sure to follow 213the ``Fetch Binary Blobs`` section first. 214 215rd_rw612_bga platform supports the monolithic feature. The required binary blob 216``<zephyr workspace>/modules/hal/nxp/zephyr/blobs/rw61x_sb_ble_a2.bin`` will be linked 217with the application image directly, forming one single monolithic image. 218 219Wi-Fi 220***** 221 222Wi-Fi functionality requires to fetch binary blobs, so make sure to follow 223the ``Fetch Binary Blobs`` section first. 224 225rd_rw612_bga platform supports the monolithic feature. The required binary blob 226``<zephyr workspace>/modules/hal/nxp/zephyr/blobs/rw61x_sb_wifi_a2.bin`` will be linked 227with the application image directly, forming one single monolithic image. 228 229Board variants 230************** 231 232Ethernet 233======== 234 235To use ethernet on the RD_RW612_BGA board, you first need to make the following 236modifications to the board hardware: 237 238Add resistors: 239 240- R485 241- R486 242- R487 243- R488 244- R489 245- R491 246- R490 247 248Remove resistors: 249 250- R522 251- R521 252- R520 253- R524 254- R523 255- R508 256- R505 257 258Then, build for the board target ``rd_rw612_bga//ethernet``. 259 260Resources 261********* 262 263.. target-notes:: 264 265.. _RW612 Website: 266 https://www.nxp.com/products/wireless-connectivity/wi-fi-plus-bluetooth-plus-802-15-4/wireless-mcu-with-integrated-tri-radiobr1x1-wi-fi-6-plus-bluetooth-low-energy-5-3-802-15-4:RW612 267