NXP S32K1XX

The S32K1XX series is a family of automotive-grade general-purpose microcontrollers from NXP Semiconductors. The lower end of the family is based on an Arm Cortex-M0+ core and can run at clockspeeds up to 48 MHz. The higher end chips are based on the Arm Cortex-M4F core which runs at up to 80 or 112 MHz.

Supported MCUs

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

MCU

Support

Core

Frequency

S32K116

Yes*

Cortex-M0+

48 MHz

S32K118

Yes*

Cortex-M0+

48 MHz

S32K142

Yes*

Cortex-M4F

112 MHz

S32K144

Yes

Cortex-M4F

112 MHz

S32K146

Yes

Cortex-M4F

112 MHz

S32K148

Yes

Cortex-M4F

112 MHz

S32K142W

No**

Cortex-M4F

80 MHz

S32K144W

No**

Cortex-M4F

80 MHz

* Supported but (mostly) untested.
** Not supported (yet), but it is expected that existing code can be adapted with limited effort.

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 S32K1XX Reference Manual for a complete overview of its features.

Peripheral

Support

Comments

ADC

No

CMP

No

eDMA

No

EEPROM

Yes

EEPROM emulated by FlexRAM

ENET

Yes

FlexCAN

Yes

SocketCAN-compatible

FlexIO

No

FTM

Yes

PWM driver only

GPIO

Yes

LPI2C

Yes

I2C Master and Slave

LPSPI

Yes

LPUART

Yes

QSPI

No

RTC

Yes

SAI

No

ADC

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

CMP

Analog Comparator. No driver support (yet).

eDMA

Enhanced Direct Memory Access module. There is a driver that was copied from the i.MX RT port, but this was not tested on S32K1XX.

EEPROM

Emulated EEPROM (implemented by FlexRAM module). A basic block driver is available to read and write data.

ENET

10/100 Mbit/s Ethernet MAC. Only available on S32K148. Driver is available.

FlexCAN

The S32K1XX family has up to 3x FlexCAN modules (which may not all have 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.

FTM

A PWM driver based on FlexTimer (FTM) is available.

GPIO

Pins can be configured using s32k1xx_pinconfig() function. Writing to pins is done by s32k1xx_gpiowrite() function and reading is done by s32k1xx_gpioread().

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 s32k1xx_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 s32k1xx_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. No driver implemented.

RTC

Real-Time Clock module. A basic driver has been implemented.

SAI

The Synchronous Audio Interface for digital audio over I2S (Inter-IC Sound) is only available on S32K148. No driver implemented.

Supported Boards