Skip to content

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 CMP eDMA No No No
EEPROM ENET Yes Yes EEPROM emulated by FlexRAM FlexCAN Yes SocketCAN-compatible FlexIO Yes Emulated I2C Master driver FTM GPIO Yes Yes PWM driver only LPI2C LPSPI LPUART QSPI RTC SAI Yes Yes Yes No Yes No I2C Master and Slave

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.

The s32k1xx_flexio_i2c.c driver implements an emulated I2C master using FlexIO. Albeit the current implementation has some limitations:

  • Max I2C speed of 400KHz
  • Max transfer of 12 bytes (Could be extended by utilizing EDMA)
  • No abort on NACK reception, shifter simplies continues on
  • No multi-master support
  • No restart support

FTM

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

GPIO

Pins can be configured using :cs32k1xx_pinconfig{.interpreted-text role="func"} function. Writing to pins is done by :cs32k1xx_gpiowrite function and reading is done by :cs32k1xx_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 :cs32k1xx_i2cbus_initialize{.interpreted-text role="func"}.

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 :cs32k1xx_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

boards//