RD-RW612-BGA

Overview

The RW612 is a highly integrated, low-power tri-radio wireless MCU with an integrated 260 MHz ARM Cortex-M33 MCU and Wi-Fi 6 + Bluetooth Low Energy (LE) 5.3 / 802.15.4 radios designed for a broad array of applications, including connected smart home devices, gaming controllers, enterprise and industrial automation, smart accessories and smart energy.

The RW612 MCU subsystem includes 1.2 MB of on-chip SRAM and a high-bandwidth Quad SPI interface with an on-the-fly decryption engine for securely accessing off-chip XIP flash.

The advanced design of the RW612 delivers tight integration, low power and highly secure operation in a space- and cost-efficient wireless MCU requiring only a single 3.3 V power supply.

Hardware

  • 260 MHz ARM Cortex-M33, tri-radio cores for Wifi 6 + BLE 5.3 + 802.15.4

  • 1.2 MB on-chip SRAM

Supported Features

The rd_rw612_bga 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.
rd_rw612_bga
/

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M33F CPU1

arm,cortex-m33f

ADC

on-chip

NXP GAU GPADC1 1

nxp,gau-adc

ARM architecture

on-chip

LPC Flexcomm node2

nxp,lpc-flexcomm

on-chip

RW SOC controller node2

nxp,rw-soc-ctrl

on-chip

NXP NBU interruption information1

nxp,nbu

Audio

on-chip

NXP DMIC1

nxp,dmic

Bluetooth

on-chip

NXP BLE HCI information1

nxp,hci-ble

Clock control

on-chip

LPC SYSCON & CLKCTL IP node2

nxp,lpc-syscon

Counter

on-chip

Driver that uses the NXP LPC RTC High resolution counter1

nxp,lpc-rtc-highres

on-chip

NXP MCUX Standard Timer/Counter1 3

nxp,lpc-ctimer

on-chip

NXP Multirate Timer2

nxp,mrt

on-chip

NXP Multirate Timer Channel1 7

nxp,mrt-channel

DAC

on-chip

NXP GAU DAC1

nxp,gau-dac

DMA

on-chip

NXP LPC DMA controller1

nxp,lpc-dma

Ethernet

on-chip

NXP ENET IP Module1

nxp,enet

on-chip

NXP ENET MAC/L2 Device1

nxp,enet-mac

on-chip

NXP ENET PTP (Precision Time Protocol) Clock1

nxp,enet-ptp-clock

GPIO & Headers

on-chip

LPC GPIO1

nxp,lpc-gpio

on-chip

LPC GPIO port device2

nxp,lpc-gpio-port

on-board

GPIO pins exposed on Arduino Uno (R3) headers1

arduino-header-r3

on-board

GPIO pins exposed on NXP LCD 8080 interface (e.g., used on LCD-PAR-035 panel)1

nxp,lcd-8080

IEEE 802.15.4 HDLC RCP interface

on-chip

NXP HDLC RCP interface node1

nxp,hdlc-rcp-if

I2C

on-chip

LPC I2C1

nxp,lpc-i2c

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv8-M NVIC (Nested Vectored Interrupt Controller)1

arm,v8m-nvic

on-chip

NXP Pin interrupt and pattern match engine (PINT)1

nxp,pint

MDIO

on-chip

NXP ENET MDIO Features1

nxp,enet-mdio

MIPI-DBI

on-chip

NXP LCDIC Controller1

nxp,lcdic

MMU / MPU

on-chip

ARMv8-M MPU (Memory Protection Unit)1

arm,armv8m-mpu

MTD

on-board

NXP FlexSPI NOR1

nxp,imx-flexspi-nor

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

on-board

ISSI IS66WVQ8M4 pSRAM on NXP FlexSPI bus1

nxp,imx-flexspi-is66wvq8m4

Pin control

on-chip

MCI IO MUX Pin Controller1

nxp,mci-io-mux

Power management

on-chip

NXP RW PMU1

nxp,rw-pmu

on-chip

Some NXP SoC’s have pins dedicated to generate a wakeup interrupt1 1

nxp,aon-wakeup-pin

on-chip

Properties for NXP power management through the PDCFG register1 1

nxp,pdcfg-power

Power domain

on-chip

This power domain will Turn On and Off devices when transitioning in and out a specified Power State1

power-domain-soc-state-change

PWM

on-chip

NXP SCTimer PWM1

nxp,sctimer-pwm

Reset controller

on-chip

NXP RSTCTL Peripheral reset controller2

nxp,rstctl

RNG

on-chip

Kinetis TRNG (True Random Number Generator)1

nxp,kinetis-trng

RTC

on-chip

NXP LPC RTC1

nxp,lpc-rtc

Serial controller

on-chip

LPC USART1

nxp,lpc-usart

SPI

on-chip

NXP FlexSPI controller1

nxp,imx-flexspi

on-chip

NXP LPC SPI controller1

nxp,lpc-spi

SRAM

on-chip

Generic on-chip SRAM description2

mmio-sram

Timer

on-chip

ARMv8-M System Tick1

arm,armv8m-systick

on-chip

NXP OS Timer on i.MX-RT5xx/6xx1

nxp,os-timer

USB

on-chip

NXP EHCI USB device mode1

nxp,ehci

Watchdog

on-chip

LPC Windowed Watchdog Timer1

nxp,lpc-wwdt

Display Support

The rd_rw612_bga board supports several in-tree display modules. Setup for each module is described below:

GoWorld 16880 LCM

This module does not connect directly to the board, and must be connected via an adapter board and jumper wires. Connections are described in boards/nxp/rd_rw612_bga/dts/goworld_16880_lcm.overlay. The display sample can be built for this board like so:

west build -b rd_rw612_bga samples/drivers/display -- -DDTC_OVERLAY_FILE=goworld_16880_lcm.overlay

Adafruit 2.8 TFT

The Adafruit 2.8” TFT Touch Shield v2 connects to the board’s Arduino headers directly, but some modifications are required (see boards/shields/adafruit_2_8_tft_touch_v2/boards/rd_rw612_bga.overlay for a list). The display sample can be built for this module like so:

west build -b rd_rw612_bga --shield adafruit_2_8_tft_touch_v2 samples/drivers/display

NXP LCD_PAR_S035

The NXP LCD_PAR_S035 TFT LCD Module does not connect directly to the board, and must be connected via jumper wires. Connections and required board changes are described in boards/shields/lcd_par_s035/boards/rd_rw612_bga.overlay. The display sample can be built for the module like so:

west build -b rd_rw612_bga --shield lcd_par_s035_8080 samples/drivers/display

Fetch Binary Blobs

To support Bluetooth or Wi-Fi, rd_rw612_bga requires fetching binary blobs, which can be achieved by running the following command:

west blobs fetch hal_nxp

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 JLink Firmware.

Configuring a Console

Connect a USB cable from your PC to J7, 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

Flashing

Here is an example for the Hello World application. This example uses the J-Link Debug Host Tools as default.

# From the root of the zephyr repository
west build -b rd_rw612_bga samples/hello_world
west flash

Open a serial terminal, reset the board (press the RESET button), and you should see the following message in the terminal:

***** Booting Zephyr OS v3.4.0 *****
Hello World! rd_rw612_bga

Debugging

Here is an example for the Hello World application. This example uses the J-Link Debug Host Tools as default.

# From the root of the zephyr repository
west build -b rd_rw612_bga 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 zephyr-v3.6.0 *****
Hello World! rd_rw612_bga

Bluetooth

BLE functionality requires to fetch binary blobs, so make sure to follow the Fetch Binary Blobs section first.

rd_rw612_bga platform supports the monolithic feature. The required binary blob <zephyr workspace>/modules/hal/nxp/zephyr/blobs/rw61x_sb_ble_a2.bin will be linked with the application image directly, forming one single monolithic image.

Wi-Fi

Wi-Fi functionality requires to fetch binary blobs, so make sure to follow the Fetch Binary Blobs section first.

rd_rw612_bga platform supports the monolithic feature. The required binary blob <zephyr workspace>/modules/hal/nxp/zephyr/blobs/rw61x_sb_wifi_a2.bin will be linked with the application image directly, forming one single monolithic image.

Board variants

Ethernet

To use ethernet on the RD_RW612_BGA board, you first need to make the following modifications to the board hardware:

Add resistors:

  • R485

  • R486

  • R487

  • R488

  • R489

  • R491

  • R490

Remove resistors:

  • R522

  • R521

  • R520

  • R524

  • R523

  • R508

  • R505

Then, build for the board target rd_rw612_bga//ethernet.

Support Resources for Zephyr

Resources