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