FRDM-MCXE31B

Overview

The FRDM-MCXE31B board is a design and evaluation platform based on the NXP MCXE31B microcontroller (MCU). NXP MCXE31B MCU based on an Arm Cortex-M7 core, running at speeds of up to 160 MHz with a 2.97 to 5.5V supply.

Hardware

  • MCXE31B Arm Cortex-M7 microcontroller running up to 160 MHz

  • 4MB dual-bank on chip Flash

  • 320KB SRAM + 192KB TCM

  • 2x I2C

  • 6x SPI

  • 16x UART

  • On-board MCU-Link debugger with CMSIS-DAP

  • Arduino Header, mikroBUS

For more information about the MCXE31B SoC and FRDM-MCXE31B board, see:

Supported Features

The frdm_mcxe31b 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.

frdm_mcxe31b@default/mcxe31b target

On-target memory for this board target: 288 KiB of RAM, 3920 KiB of Flash.

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M7 CPU1

arm,cortex-m7

ADC

on-chip

NXP successive-approximation ADC (SAR ADC) controller12

nxp,sar-adc

CAN

on-chip

NXP FlexCAN CANFD controller15

nxp,flexcan-fd

Clock control

on-chip

Fast internal RC oscillator1

nxp,firc

on-chip

Fast external crystal oscillator1

nxp,fxosc

on-chip

Glitchless clock switching Clock Generation module1

nxp,mc-cgm

on-chip

Phase-locked loop1

nxp,plldig

Clock monitor

on-chip

NXP Clock Monitoring Unit - Frequency Check (CMU_FC)4

nxp,cmu-fc

on-chip

NXP Clock Monitoring Unit - Frequency Meter (CMU_FM)2

nxp,cmu-fm

Comparator

on-chip

NXP Low Power Comparator (LPCMP)3

nxp,lpcmp

Counter

on-chip

NXP Periodic Interrupt Timer (PIT)12

nxp,pit

on-chip

Child node for the Periodic Interrupt Timer node, intended for an individual timer channel12

nxp,pit-channel

on-chip

NXP System Timer Module (STM)11

nxp,stm

CRC

on-chip

NXP CRC device1

nxp,crc

DMA

on-chip

NXP MCUX EDMA controller1

nxp,mcux-edma

EDAC

on-chip

NXP Error Injection Module1

nxp,eim

on-chip

NXP Error Reporting Module1

nxp,erm

Ethernet

on-chip

NXP ENET QOS Ethernet Controller1

nxp,enet-qos

on-chip

Synopsys DesignWare MAC MDIO controller1

snps,dwmac-mdio

on-board

Generic MII PHY1

ethernet-phy

on-chip

Synopsys DesignWare MAC PTP (Precision Time Protocol) Clock1

snps,dwmac-ptp-clock

Flash controller

on-chip

NXP C40 Flash Controller1

nxp,c40-flash-controller

GPIO & Headers

on-chip

NXP SIUL2 GPIO controller59

nxp,siul2-gpio

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

Hardware information

on-chip

NXP MC_RGM (Reset Generation Module)1

nxp,mc-rgm

on-chip

NXP OTP unique chip identifier (UID)1

nxp,otp-uid

Hardware spinlock

on-chip

NXP SEMA42 hardware semaphore controller1

nxp,sema42

I2C

on-chip

NXP LPI2C controller2

nxp,lpi2c

I2S

on-chip

NXP mcux SAI-I2S controller11

nxp,mcux-i2s

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

NXP SIUL2 External Interrupts Request controller1

nxp,siul2-eirq

on-chip

NXP S32 Wake-up Unit1

nxp,s32-wkpu

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MIPI-DBI

on-board

NXP FlexIO LCD controller1

nxp,mipi-dbi-flexio-lcdif

Miscellaneous

on-chip

NXP FlexIO controller1

nxp,flexio

Multi-bit SPI

on-chip

NXP QSPI controller with MSPI interface1

nxp,qspi

MTD

on-board

Generic NOR flash on MSPI bus1

jedec,nor

on-chip

NXP C40 Internal Flash1

nxp,c40-flash

MUX

on-chip

NXP TRGMUX peripheral wrapper1

nxp,trgmux

Pin control

on-chip

NXP SIUL2 Pin Controller for MCXE31X SoCs1

nxp,mcxe31x-siul2-pinctrl

PWM

on-chip

Enhanced Modular IO SubSystem (eMIOS)12

nxp,emios

on-chip

NXP eMIOS PWM node12

nxp,emios-pwm

RTC

on-chip

NXP Real Time Clock (RTC) — JDP-generation RTC IP1

nxp,rtc-jdp

Sensors

on-board

FXLS8974 3-axis accelerometer sensor1

nxp,fxls8974

on-chip

NXP on-die temperature sensor (TEMPSENSE)1

nxp,tempsense

Serial controller

on-chip

NXP LPUART115

nxp,lpuart

SPI

on-chip

NXP LPSPI controller15

nxp,lpspi

SRAM

on-chip

Generic on-chip SRAM2

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

Watchdog

on-chip

Software Watchdog Timer (SWT)1

nxp,s32-swt

frdm_mcxe31b@w25q64/mcxe31b target

On-target memory for this board target: 288 KiB of RAM, 3920 KiB of Flash.

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M7 CPU1

arm,cortex-m7

ADC

on-chip

NXP successive-approximation ADC (SAR ADC) controller12

nxp,sar-adc

CAN

on-chip

NXP FlexCAN CANFD controller15

nxp,flexcan-fd

Clock control

on-chip

Fast internal RC oscillator1

nxp,firc

on-chip

Fast external crystal oscillator1

nxp,fxosc

on-chip

Glitchless clock switching Clock Generation module1

nxp,mc-cgm

on-chip

Phase-locked loop1

nxp,plldig

Clock monitor

on-chip

NXP Clock Monitoring Unit - Frequency Check (CMU_FC)4

nxp,cmu-fc

on-chip

NXP Clock Monitoring Unit - Frequency Meter (CMU_FM)2

nxp,cmu-fm

Comparator

on-chip

NXP Low Power Comparator (LPCMP)3

nxp,lpcmp

Counter

on-chip

NXP Periodic Interrupt Timer (PIT)12

nxp,pit

on-chip

Child node for the Periodic Interrupt Timer node, intended for an individual timer channel12

nxp,pit-channel

on-chip

NXP System Timer Module (STM)11

nxp,stm

CRC

on-chip

NXP CRC device1

nxp,crc

DMA

on-chip

NXP MCUX EDMA controller1

nxp,mcux-edma

EDAC

on-chip

NXP Error Injection Module1

nxp,eim

on-chip

NXP Error Reporting Module1

nxp,erm

Ethernet

on-chip

NXP ENET QOS Ethernet Controller1

nxp,enet-qos

on-chip

Synopsys DesignWare MAC MDIO controller1

snps,dwmac-mdio

on-board

Generic MII PHY1

ethernet-phy

on-chip

Synopsys DesignWare MAC PTP (Precision Time Protocol) Clock1

snps,dwmac-ptp-clock

Flash controller

on-chip

NXP C40 Flash Controller1

nxp,c40-flash-controller

GPIO & Headers

on-chip

NXP SIUL2 GPIO controller59

nxp,siul2-gpio

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

Hardware information

on-chip

NXP MC_RGM (Reset Generation Module)1

nxp,mc-rgm

on-chip

NXP OTP unique chip identifier (UID)1

nxp,otp-uid

Hardware spinlock

on-chip

NXP SEMA42 hardware semaphore controller1

nxp,sema42

I2C

on-chip

NXP LPI2C controller2

nxp,lpi2c

I2S

on-chip

NXP mcux SAI-I2S controller11

nxp,mcux-i2s

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

NXP SIUL2 External Interrupts Request controller1

nxp,siul2-eirq

on-chip

NXP S32 Wake-up Unit1

nxp,s32-wkpu

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MIPI-DBI

on-board

NXP FlexIO LCD controller1

nxp,mipi-dbi-flexio-lcdif

Miscellaneous

on-chip

NXP FlexIO controller1

nxp,flexio

Multi-bit SPI

on-chip

NXP QSPI controller with MSPI interface1

nxp,qspi

MTD

on-board

Generic NOR flash on MSPI bus1

jedec,nor

on-chip

NXP C40 Internal Flash1

nxp,c40-flash

MUX

on-chip

NXP TRGMUX peripheral wrapper1

nxp,trgmux

Pin control

on-chip

NXP SIUL2 Pin Controller for MCXE31X SoCs1

nxp,mcxe31x-siul2-pinctrl

PWM

on-chip

Enhanced Modular IO SubSystem (eMIOS)12

nxp,emios

on-chip

NXP eMIOS PWM node12

nxp,emios-pwm

RTC

on-chip

NXP Real Time Clock (RTC) — JDP-generation RTC IP1

nxp,rtc-jdp

Sensors

on-board

FXLS8974 3-axis accelerometer sensor1

nxp,fxls8974

on-chip

NXP on-die temperature sensor (TEMPSENSE)1

nxp,tempsense

Serial controller

on-chip

NXP LPUART115

nxp,lpuart

SPI

on-chip

NXP LPSPI controller15

nxp,lpspi

SRAM

on-chip

Generic on-chip SRAM2

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

Watchdog

on-chip

Software Watchdog Timer (SWT)1

nxp,s32-swt

Shields for Supported Features

Some features in the table above are tested with Zephyr shields. These shields are tested on this board:

  • NXP LCD_PAR_S035 TFT LCD Module - supports the Display interface. This board uses the MIPI_DBI interface of the shield, connected to the FlexIO on-chip peripheral.

Connections and IOs

Each GPIO port is divided into two banks: low bank, from pin 0 to 15, and high bank, from pin 16 to 31. For example, PTA2 is the pin 2 of gpioa_l (low bank), and PTA20 is the pin 4 of gpioa_h (high bank).

The GPIO controller provides the option to route external input pad interrupts to either the SIUL2 EIRQ or WKPU interrupt controllers, as supported by the SoC. By default, GPIO interrupts are routed to SIUL2 EIRQ interrupt controller, unless they are explicitly configured to be directed to the WKPU interrupt controller, as outlined in dts/bindings/gpio/nxp,siul2-gpio.yaml.

To find information about which GPIOs are compatible with each interrupt controller, refer to the device reference manual.

Name

Function

Usage

PTC16

GPIO

Red LED

PTB22

GPIO

Green LED

PTC14

GPIO

Blue LED

PTE3

LPUART5_RX

UART Console

PTE14

LPUART5_TX

UART Console

PTA7

FLEXCAN0

CAN0 TX

PTA6

FLEXCAN0

CAN0 RX

PTB4

EMAC

Ethernet MDIO

PTB5

EMAC

Ethernet MDC

PTC0

EMAC

Ethernet RMII RXD1

PTC1

EMAC

Ethernet RMII RXD0

PTC2

EMAC

Ethernet RMII TXD0

PTC3

GPIO

Ethernet PHY reset

PTC17

EMAC

Ethernet RMII RX_DV

PTD7

EMAC

Ethernet RMII TXD1

PTD11

EMAC

Ethernet RMII REF_CLK

PTD12

EMAC

Ethernet RMII TX_EN

Ethernet

The board carries a Microchip LAN8741 10/100 Mbit/s PHY on MDIO address 0, connected to the MCXE31B EMAC over RMII. The EMAC is a Synopsys DesignWare Ethernet QoS core and is driven by the generic drivers/ethernet/dwc_mac driver, not by the NXP HAL based eth_nxp_enet_qos driver.

The PHY sources the 50 MHz RMII reference clock, which the SoC takes in on PTD11 and divides by two to clock the MAC’s MII side. The driver also supports MII, selected with phy-connection-type, though this board is wired for RMII.

System Clock

The MCXE31B SoC is configured to use PLL running at 160MHz as a source for the system clock.

Serial Port

The MCXE31B LPUART5 is used for the console.

Programming and Debugging

The frdm_mcxe31b board supports the runners and associated west commands listed below.

flash debug attach debugserver rtt reset
jlink ✅ ✅ ✅ ✅ ✅ ✅
linkserver ✅ (default) ✅ (default) ✅ ✅

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 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 MCU-Link CMSIS-DAP 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 ISP mode to program the firmware, short jumper JP3.

Configuring a Console

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

# From the root of the zephyr repository
west build -b frdm_mcxe31b 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 build v4.2.0-2092-g17e93a718422 ***
Hello World! frdm_mcxe31b/mcxe31b

Debugging

Here is an example for the Hello World application.

# From the root of the zephyr repository
west build -b frdm_mcxe31b 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 build v4.2.0-2092-g17e93a718422 ***
Hello World! frdm_mcxe31b/mcxe31b

Troubleshooting

Using Segger SystemView and RTT

Note that when using SEGGER SystemView or RTT with this SOC, the RTT control block address must be set manually within SystemView or the RTT Viewer. The address provided to the tool should be the location of the _SEGGER_RTT symbol, which can be found using a debugger or by examining the zephyr.map file output by the linker.

The RTT control block address must be provided manually because this SOC supports ECC RAM. If the SEGGER tooling searches the ECC RAM space for the control block a fault will occur, provided that ECC is enabled and the RAM segment being searched has not been initialized to a known value.

QSPI Flash

The FRDM-MCXE31B board is populated with an on-board Winbond W25Q64 (64 Mbit) QSPI NOR flash. The QSPI data and clock signals are not connected to the flash by default, so the w25q64 node is disabled on the default board target and enabled by the w25q64 board revision.

Note

In order to use the on-board QSPI flash, populate resistors R126, R128, R129, R130, R131 and R133, and remove resistors R153 and R154.

Once the rework is done, build for the frdm_mcxe31b@w25q64 revision to exercise the flash with the MSPI flash sample (samples/drivers/mspi/mspi_flash):

# From the root of the zephyr repository
west build -b frdm_mcxe31b@w25q64 samples/drivers/mspi/mspi_flash
west flash

Support Resources for Zephyr