NXP S32K3XX

The S32K3XX series is a family of automotive-grade general-purpose microcontrollers from NXP Semiconductors. The chips are based around single, dual (lock-step) or triple Arm Cortex-M7 cores, running at clockspeeds up to 240 MHz.

Supported MCUs

The following list includes MCUs from the S32K3XX series and indicates whether they are supported in NuttX:

MCU

Support

Cores

Frequency

S32K311

No

1x Cortex-M7

120 MHz

S32K312

No

1x Cortex-M7

120 MHz

S32K314

Yes*

1x Cortex-M7

160 MHz

S32K322

No

2x Cortex-M7

160 MHz

S32K324

Yes*

2x Cortex-M7

160 MHz

S32K341

No

LS Cortex-M7

160 MHz

S32K342

No

LS Cortex-M7

160 MHz

S32K344

Yes*

LS Cortex-M7

160 MHz

S32K328

No

2x Cortex-M7

160 MHz

S32K338

No

3x Cortex-M7

240 MHz

S32K348

No

LS Cortex-M7

160 MHz

S32K358

No

LS + 1x Cortex-M7

160 MHz

* Same silicon in different configurations. Only a single core is currently being used (no SMP support).

Supported Modules & Peripherals

The following list indicates modules and peripherals supported in NuttX. Note that this list does not include all MCU modules. Please refer to the S32K3XX Reference Manual for a complete overview of its features.

Peripheral

Support

Comments

ADC

No

eDMA

Partial

eMIOS

No

EMAC

Yes

FlexCAN

Yes

SocketCAN-compatible

FlexIO

No

GPIO

Yes

LPCMP

No

LPI2C

Yes

I2C Master only

LPSPI

Yes

LPUART

Yes

QSPI

Yes

RTC

No

SAI

No

ADC

12-Bit Successive Approximation (SAR) Analog-to-Digital Converter (ADC). No driver support (yet).

eDMA

Enhanced Direct Memory Access module. There is a driver that was copied from the S32K1XX and i.MX RT ports. Some modifications have been made to make it work with S32K3XX, but it is far from feature-complete.

eMIOS

The Enhanced Modular IO Subsystem (eMIOS) is a flexible timer and I/O module for real-time control applications. Its channels can be used for (pulse) counters, PWM outputs, input period measurements, and more. There is no driver implementation available (yet).

EMAC

10/100/200 Mbit/s Ethernet MAC. Driver is available.

FlexCAN

The S32K3XX family has up to 8x FlexCAN modules with CAN FD support. A SocketCAN-compatible driver is available.

FlexIO

A configurable module providing a range of functionality like emulation of a variety of serial/parallel communication protocols, flexible 16-bit timers or programmable logic blocks. No driver available.

GPIO

Pins can be configured using s32k3xx_pinconfig() function. Writing to pins is done by s32k3xx_gpiowrite() function and reading is done by s32k3xx_gpioread().

LPCMP —

Analog Comparator. No driver support (yet).

LPI2C

Low-Power Inter-Integrated Circuit (I2C) module supporting an interface to an I2C bus as master and/or as a slave. The lower-half of this driver is initialize by calling s32k3xx_i2cbus_initialize().

LPSPI

Low-Power Serial Peripheral Interface (SPI) module that supports an interface to an SPI bus as a master and/or a slave. The lower-half of this driver is initialize by calling s32k3xx_lpspibus_initialize().

LPUART

Low-Power Universal Asynchronous Receiver/Transmitter (UART) module. UART is initialized automatically during MCU boot.

QSPI

QuadSPI memory interface for external serial flash devices. A basic driver is available.

RTC

Real-Time Clock module. A driver is not (yet) available.

SAI

Synchronous Audio Interface for digital audio over I2S (Inter-IC Sound). No driver implemented.

Supported Boards