NXP-logo

NXP AN14179 Based Micro Controllers

NXP-AN14179-Based-Micro-Controllers-product-image

Specifications
  • Core Platform: Arm Cortex-M33 up to 150 MHz with TrustZone, MPU, FPU, SIMD, DSP SmartDMA
  • System Control: Power control, Clock generation unit, PMC, Secure DMA0, Secure DMA1, Secure AHB bus
  • Analog: 4x 16 b ADC, Temp sensor, 2x ACMP, Glitch detect, VREF
  • Interfaces: 8x LP flexcomm supporting UART, SPI, I2C, 4ch SAI, 2x CAN-FD, USB HS, 2x I3C
  • Memory: Flash up to 512 kB, RAM up to 320 kB, ECC RAM 32 kB
  • HMI: FlexIO, DMIC
  • Security: PKC, ECC-256, SHA-512, RNG AES-256, Multi-Rate Timer, Windowed WDT, Debug auth., PRINCE, RTC with anti-tamper pins
  • General Purpose Timers: 5x 32 b Timers
  • Other Features: Micro-Tick Timer, DICE + UUID, PFR, SRAM PUF, 2x FlexPWM with 2 QDC module, OS Event Timer, 2x Code WDG, OTP, Tamper detect

Product Usage Instructions

  • Step 1: Understanding the Migration Guide
    Read through the migration guide provided from MCXNx4x to MCXN23x to understand the differences and changes in the platforms.
  • Step 2: Assessing Application Compatibility
    Check if your current applications on MCXNx4x are compatible with the MCXN23x platform. Identify any specific features or peripherals that may need modification.
  • Step 3: Porting Applications
    Follow the guidelines in the migration guide to port your applications from MCXNx4x to MCXN23x. Make necessary code changes based on the platform variations.
  • Step 4: Testing and Validation
    After porting the applications, thoroughly test them on the MCXN23x platform to ensure proper functionality and performance.

Frequently Asked Questions (FAQ)

  • Q: What are the key differences between MCXNx4x and MCXN23x?
    A: MCXN23x is a cropped version of MCXNx4x with some co-processors and peripherals removed. The MCX series MCU is divided into subseries N, A, L, and W.
  • Q: How can I migrate my applications from MCXNx4x to MCXN23x?
    A: Refer to the migration guide provided by NXP that outlines the steps to migrate applications between the two platforms. Ensure compatibility and make necessary adjustments in the code.

AN14179
Migration Guide from MCXNx4x to MCXN23x
Rev. 1 — 6 May 2024

Application note

Document information

InformationContent
KeywordsAN14179, MCXNx4x, MCXN23x, migration guide
AbstractThis application note describes the differences between MCXNx4x and MCXN23x and guides customers on how to quickly migrate applications from the MCXNx4x platform to the MCXN23x platform.

Introduction

The MCXNx4x is a new-generation MCU launched by NXP after Kinetis and LPC. It integrates excellent IP from both Kinetis and LPC platforms, such as CMC, FlexCAN, FlexIO, and SPC from the Kinetis platform and PowerQuad, SmartDMA, PINT, RTC, and MRT from the LPC platform. The MCX series MCU is divided into four subseries: N, A, L, and W.

  • MCX N (Neural):
    • 150 MHz, 512KB-2MB
    • On-chip accelerators, enhanced peripherals, and advanced security
  • MCX A (All-purpose):
    • Up to 96 MHz, 32KB-1MB
    • Intelligent peripherals and various device options for a wide range of applications
  • • MCX W (Wireless):
    • Up to 96 MHz
    • Low-power Bluetooth LE, Thread, and Zigbee radio optimized for IIoT and Matter applications and advanced security
  • MCX L (Low-power):
    • Below 50 MHz, up to 1 MB
    • Optimized for always on battery operated applications with the lowest active power and leakage

The MCXNx4x series microcontrollers combine the Arm Cortex-M33 TrustZone core with a CoolFlux BSP32, a PowerQuad DSP Co-processor, and multiple high-speed connectivity options running at 150 MHz. To support a wide variety of applications, the MCX N series includes advanced serial peripherals, timers, high-precision analog, and state-of-the-art security features like secure user code, data, and communications. All MCXNx4x products include dual-bank flash, which supports read-while-write operation from internal flash. The MCXNx4x series also supports large external serial memory configurations.

The MCXNx4x MCU families are as follows:

  • N54x: Mainstream MCU with a second M33 core, advanced timers, analog and high-speed connectivity, including high-speed USB, 10/100 Ethernet, and FlexIO, which can be programmed as an LCD controller.
  • N94x: Integration of CPU and DSP serial connectivity, advanced timers, high precision analog, and high-speed connectivity, including high-speed USB, CAN 2.0, 10/100 Ethernet, and FlexIO, which can be programmed as an LCD controller.
  • MCXN23x is the second product in the MCX N series. It can be regarded as a cropped version of MCXNx4x. Almost all IPs are reused from MCXNx4x, and some co-processors and peripherals are removed. These removed modules are as follows:
  • Co-processor: Secondary Cortex-M33 Core, PowerQuad, NPU, CoolFlux BSP32, and so on.
  • Peripherals: FlexSPI, uSDHC, EMVSIM, Ethernet, 12-bit DAC, 14-bit DAC, and so on.
    This document describes how to migrate applications from the MCXNx4x platform to the MCXN23x platform. The system block diagram of MCXN23x is shown in Figure 1.

Migration Guide from MCXNx4x to MCXN23x

NXP-AN14179-Based-Micro-Controllers- (1) NXP-AN14179-Based-Micro-Controllers- (2)

Figure 1. MCXN23x system block diagram

Table 1 lists the comparison of system resources between the MCXNx4x and MCXN23x.

Table 1. Comparison of MCXNx4x and MCXN23x

MCU seriesMCXNx4xMCXN23x
PartMCXN947MCXN946MCXN547MCXN546MCXN236MCXN235
PackageVFBGA184 HLQFP100VFBGA184 HLQFP100VFBGA184 HLQFP100VFBGA184 HLQFP100VFBGA184 HLQFP100VFBGA184 HLQFP100
Temp range (junction)-40 ºC to 125 ºC-40 ºC to 125 ºC-40 ºC to 125 ºC-40 ºC to 125 ºC-40 ºC to 125 ºC-40 ºC to 125 ºC
MCU seriesMCXNx4xMCXN23x
PartMCXN947MCXN946MCXN547MCXN546MCXN236MCXN235
Core #1 Cortex- M33150 MHz TZM

+FPU+ETM

150 MHz TZM

+FPU+ETM

150 MHz TZM

+FPU+ETM

150 MHz TZM

+FPU+ETM

150 MHz TZM

+FPU+ETM

150 MHz TZM

+FPU+ETM

Core #1 Cache16 K16 K16 K16 K16 K16 K
Core #2 Cortex- M33150 MHz150 MHz150 MHz150 MHz
PowerQuad (DSP and Cordic)YYYY
NPUYYYY
SmartDMAYYYYYY
CoolFlux BSP32YY
Total flash2 MB1 MB2 MB1 MB1 MB512 kB
Dual bank flashYYYYYY
Flash ECC and CRCYYYYYY
Flash encrypt (Prince)YYYYYY
SRAM (ECC user configurable)480 K320 K480 K320 K320 K160 K
SRAM with ECC (in addition to main SRAM)32 K32 K32 K32 K32 K32 K
FlexSPI with 16 k cache1x, 2 ch1x, 2 ch1x, 2 ch1x, 2 ch
uSDHCY[1]YY
EMVSIMY[1]YY
Secure key managementPUF/UDFPUF/UDFPUF/UDFPUF/UDFPUF/UDFPUF/UDF
Secure subsystemYYYYYY
Anti-tamper pin[2]888866
Display controller (FlexIO)111111
TSI1[1]N11
DMIC4 ch[1]4 ch4 ch4 ch4 ch
SAI4 ch4 ch4 ch4 ch4 ch4 ch
LP_FLEXCOMM1010101088
I3C222222
USB HS11111
USB FS1111
MCU seriesMCXNx4xMCXN23x
PartMCXN947MCXN946MCXN547MCXN546MCXN236MCXN235
10/100 Ethernet MACMII/RMIIMII/RMIIMII/RMIIMII/RMII
FlexCAN (FD)221122
DAC 12b, 1 Msps2211
DAC 14b, 5 Msps11
Comparator332222
Opamp33
ADC222222
VREFYYYYYY
FlexPWM221122
Quadrature Decoder221122
SINC filterYY
RTC111111
32b timer555555
SCTimer1111
MRT 24b111111
uTick timer111111
WWDT111111
OS timer111111
  1. This feature is only supported on the MCXN947 VFBGA184 package.
  2. The 100HLQFP supports two Anti-tamper pins.

The following section compares the MCXNx4x and MCXN23x in terms of memory, clock, pinout, and peripherals.

Memory

This section provides details about flash memory and SRAM memory.

 Flash memory
The MCXNx4x has a flash size of up to 2 MB, while the MCXN23x has a flash size of up to 1 MB, both support dual bank flash and dual image boot. The configuration of flash size for each part is listed in Table 2 and Table 3.
Table 2. MCXNx4x part list

Part NumberEmbedded memoryFeaturesPackage
Flash (MB)SRAM (kB)Tamper pins (max)GPIOs

(max)

SRAM PUFPin countType
(P)MCXN547VNLT2512274Y100HLQFP
Part NumberEmbedded memoryFeaturesPackage
Flash (MB)SRAM (kB)Tamper pins (max)GPIOs

(max)

SRAM PUFPin countType
(P)MCXN546VNLT1352274Y100HLQFP
(P)MCXN547VDFT25128124Y184VFBGA
(P)MCXN546VDFT13528124Y184VFBGA
(P)MCXN947VDFT25128124Y184VFBGA
(P)MCXN947VNLT2512278Y100HLQFP
(P)MCXN946VNLT1352278Y100HLQFP
(P)MCXN946VDFT13528124Y184VFBGA

Table 3. MCXN23x part list

Part NumberEmbedded MemoryFeaturesPackage
Flash (MB)SRAM (kB)Tamper pins (max)GPIOs (max)SRAM PUFPin countType
(P)MCXN236VNLT1352674Y100HLQFP
(P)MCXN236VDFT13526108Y184VFBGA
(P)MCXN235VNLT0.512192674Y100HLQFP
(P)MCXN235VDFT0.5121926108Y184VFBGA

 SRAM memory
The RAM size of the MCXNx4x is up to 512 kB, and the RAM size of the MCXN23x is up to 352 kB. The size of flash and RAM for each part of the MCXNx4x and MCXN23x is listed in Table 4.
Table 4. Flash and RAM size of different parts

PartsMCXNx47MCXNx46MCXN236MCXN235
Flash2M1M1M512 kB
SRAM (kB)Total size512352352192
SRAMX96 (0x04000000- 0x04017FFF)96 (0x04000000- 0x04017FFF)96 (0x04000000- 0x04017FFF)32 (0x04000000- 0x04007FFF)
SRAMA32 (0x20000000- 0x20007FFF)32 (0x20000000- 0x20007FFF)32 (0x20000000- 0x20007FFF) 32 (0x20000000- 0x20007FFF)
SRAMB32 (0x20008000- 0x2000FFFF)32 (0x20008000- 0x2000FFFF)32 (0x20008000- 0x2000FFFF)32 (0x20008000- 0x2000FFFF)
SRAMC64 (0x20010000- 0x2001FFFF)64 (0x20010000- 0x2001FFFF)64 (0x20010000- 0x2001FFFF)64 (0x20010000- 0x2001FFFF)
SRAMD64 (0x20020000- 0x2002FFFFF)64 (0x20020000- 0x2002FFFFF)64 (0x20020000- 0x2002FFFFF)64 (0x20020000- 0x2002FFFFF)
SRAME64 (0x20030000- 0x2003FFFFF)64 (0x20030000- 0x2003FFFFF)64 (0x20030000- 0x2003FFFFF)64 (0x20030000- 0x2003FFFFF)
PartsMCXNx47MCXNx46MCXN236MCXN235
SRAMF64 (0x20040000- 0x2004FFFFF)
SRAMG64 (0x20050000- 0x2005FFFFF)
SRAMH32 (0x20060000- 0x20067FFF)

Clock system

The MCXN23x and MCXNx4x use almost the same clock system, with a few differences.

 FRG
A Fractional Rate Generator (FRG) is added to the MCXN23x to generate a more accurate clock for the CLKOUT divider. The FRG output is used as the input of the CLKOUT divider, see Figure 2. It can be used to obtain more precise baud rates when the function clock is not a multiple of standard baud rates. This can be primarily used to create a base baud rate clock for USART functions, and can be used for other purposes, such as metering applications.

 

NXP-AN14179-Based-Micro-Controllers- (3)

Figure 2. MCXN23x CLKOUT diagram
For the CLKOUT diagram of the MCXNx4x, see Figure 3. NXP-AN14179-Based-Micro-Controllers- (4)

Figure 3. MCXNx4x CLKOUT diagram
The CLKOUT_FRGCTRL register has been added to the SYSCON module of MCXN23x and used to configure numerator and denominator values.

 UTICK
The clock sources of UTICK (Micro-Tick) on the MCNX23x have been expanded from 1 to 3, and xtal32k[2] and clk_in have been added as clock sources of UTICK. The clock source of UTICK on the MCXN23x is shown in Figure 4. NXP-AN14179-Based-Micro-Controllers- (5)

In the metering application, UTICK is used to measure power line frequency. To support metering applications, clk_in and xtal32k[2] are added to the MCXN23x for high-accuracy clock source.

I3C
The clock diagram of I3C on the MCXN23x is shown in Figure 5.

NXP-AN14179-Based-Micro-Controllers- (6)

Add clk_1m as the clock source to the I3C_FCLK divider, and keep CLK_SLOW and CLK_SLOW_TC synchronized with FCLK.
The I3C clock diagram of MCXNx4x is shown in Figure 6.

Migration Guide from MCXNx4x to MCXN23x NXP-AN14179-Based-Micro-Controllers- (7)

Pinout

This section compares the pinout differences between MCXNx4x and MCXN23x, including 184VFBGA and 100HLQFP packages.

184VFBGA
For the 184VFBGA package, the MCXN23x is pin-to-pin compatible with the MCXNx4x. However, there are some differences between the two. In MCXN23x, 28 pins are removed, including 18 GPIO pins, eight analog pins, and two USB pins. The pinout of the MCXN23x 184VFBGA package is illustrated in Figure 7.
NXP-AN14179-Based-Micro-Controllers- (8) NXP-AN14179-Based-Micro-Controllers- (9)

In Figure 7, the removed pins are labeled “NC” and are highlighted in yellow. The removed pins on the MCXN23x 184VFBGA are as follows:

GPIO pins:

  • P0_8
  • P0_9
  • P0_10
  • P0_11
  • P0_12
  • P0_13
  • P0_30
  • P0_31
  • P1_20
  • P1_21
  • P1_22
  • P1_23
  • P3_3
  • P3_4
  • P3_5
  • P3_19
  • P5_8
  • P5_9

Analog pins:

  • ANA_0
  • ANA_1
  • ANA_4
  • ANA_5
  • ANA_6
  • ANA_14
  • ANA_18
  • ANA_22

USB pins:

  • USB0_DM
  • USB0_DP

The pinout of the MCXNx4x 184VFBGA package is shown in Figure 8.

NXP-AN14179-Based-Micro-Controllers- (10) NXP-AN14179-Based-Micro-Controllers- (11)

 100HLQFP
For the 100HLQFP package, MCXN23x is almost pin-to-pin compatible with MCXN54x. The only difference is the USB pin. The MCXN54x supports full-speed USB (USB0) and high-speed USB (USB1), but the MCXN23x only supports USB1, so the MCXN23x does not have USB0_DM and USB0_DP pins. The pinout of the MCXN23x 100HLQFP package is as shown in Figure 9.

Migration Guide from MCXNx4x to MCXN23x NXP-AN14179-Based-Micro-Controllers- (12)

The pinout of the MCXN54x and MCXN94x 100HLQFP package is shown in Figure 10. NXP-AN14179-Based-Micro-Controllers- (13)

MCXN94x has six pins P4_19, P4_20, P4_21, P4_23, USB0_DM, and USB0_DP. However, MCXN23x does not have these six pins but instead has four different pins USB1_DP, USB1_DM, USB1_VBUS, and VSS_USB.
For more detailed information about the pinouts, refer to the pinout table in the attachments of MCX Nx4x Reference Manual (document MCXNX4XRM) and MCXN23x Reference Manual (document MCXN23XRM).

Peripherals

In Table 1, we have compared the differences between MCNX23x and MCXNx4x. The MCXN23x does not have various modules such as FlexSPI, PowerQuad, NPU, CoolFlux BSP32, uSDHC, EMVSIM, TSI, USB FS, Ethernet, 12-bit DAC, 14-bit DAC, Opamp, SINC Filter, and SCTimer. The following section describes the differences between the common peripherals between the MCXN23x and MCXNx4x.

GPIO
As described in Section 4.1, the MCXNx4x supports up to 124 GPIOs, and the MCXN23x supports up to 106 GPIOs. However, in the case of MCXN23x, 18 GPIO pins are not supported. Apart from being used as GPIOs, these 16 pins also support the functions listed in Table 5.
Table 5. Removed GPIOs on the MCXN23x 184VFBGA package

184BGA ALL184BGA

ALL Pin Name

AnalogALT0ALT1ALT2ALT3ALT4ALT5ALT6ALT7ALT10ALT11
K5P1_20ADC1_A20/ CMP1_IN3P1_20TRIG_IN2FC5_P4FC4_P0CT3_MAT2SCT0_ OUT8FLEXIO0_ D28SmartDMA_ PIO16CAN1_TXD
L5P1_21ADC1_A21/ CMP2_IN3P1_21TRIG_OUT2FC5_P5FC4_P1CT3_MAT3SCT0_ OUT9FLEXIO0_ D29SmartDMA_ PIO17SAI1_ MCLKCAN1_RXD
L4P1_22ADC1_A22P1_22TRIG_IN3FC5_P6FC4_P2CT_INP14SCT0_ OUT4FLEXIO0_ D30SmartDMA_ PIO18
M4P1_23ADC1_A23P1_23FC4_P3CT_INP15SCT0_ OUT5FLEXIO0_ D31SmartDMA_ PIO19
L14P5_8ADC1_B16P5_8TRIG_OUT7TAMPER6
M14P5_9ADC1_B17P5_9TAMPER7
K17P3_19P3_19FC7_P6CT2_MAT1PWM1_X1FLEXIO0_ D27SmartDMA_ PIO19SAI1_RX_ FS
G14P3_5P3_5FC7_P3CT_INP19PWM0_X3FLEXIO0_ D13SmartDMA_ PIO5
F14P3_4P3_4FC7_P2CT_INP18PWM0_X2FLEXIO0_ D12SmartDMA_ PIO4
D16P3_3P3_3FC7_P1CT4_MAT1PWM0_X1FLEXIO0_ D11SmartDMA_ PIO3
C12P0_8ADC0_B8P0_8FC0_P4CT_INP0FLEXIO0_ D0
A12P0_9ADC0_B9P0_9FC0_P5CT_INP1FLEXIO0_ D1
B12P0_10ADC0_B10P0_10FC0_P6CT0_MAT0FLEXIO0_ D2
B11P0_11ADC0_B11P0_11CT0_MAT1FLEXIO0_ D3
D11P0_12ADC0_B12P0_12FC1_P4FC0_P0CT0_MAT2FLEXIO0_ D4
F12P0_13ADC0_B13P0_13FC1_P5FC0_P1CT0_MAT3FLEXIO0_ D5
E7P0_30ADC0_B22P0_30FC1_P6FC0_P6CT_INP2
D7P0_31ADC0_B23P0_31CT_INP3

Table 5 lists the specific pins, including LP_FLEXCOMM0/1/4/5/7, TRIG, CTimer, FlexPWM, FlexIO, SmartDMA, and SAI1 are involved. However, the other pins on the MCX23x can also implement the same functions as these pins. Before migrating from the MCXNx4x to MCXN23x, it is important to check if your design on the MCXNx4x uses these pins. If it does, you must reassign the pins to meet your requirements.

  •  USB
    All the MCXN54x parts and the MCXN94x 184VFBGA packages support FS USB (USB0) and HS USB (USB1). Whereas the MCXN94x 100HLQFP package only supports HS USB. All the MCXN23x parts only support HS USB.
  • DMIC
    All parts of the MCXN23x and MCXN54x have a DMIC module and support up to four digital microphone channels. However, for the MCXN94x series, the MCXN946 does not support the DMIC module, and the MCXN947 only supports the DMIC module on the 184VFBGA package.
  • LP_FLEXCOMM
    The MCXNx4x series supports 10 LP_FLEXCOMM modules. Each LP_FLEXCOMM can be configured as UART, I2C, and SPI. Among them, the IO of LP_FLEXCOMM6/7/8/9 is high-speed IO, and the highest clock that can be configured is 150 MHz. The MCXN23x only supports eight LP_FLEXCOMM modules and does not support LP_FLEXCOMM8 and LP_FLEXCOMM9, only LP_FLEXCOMM6 and LP_FLEXCOMM7 can use high-speed IOs.
  • Comparator
    The MCXN94x series supports three Comparator (CMP) modules, while the MCXN54x and MCXN23x series only support two CMP modules.
  • ADC
    The MCXNx4x and MCXN23x series have two 16-bit ADC modules but differ in the number of ADC channels they support. The MCXNx4x can support up to 75 ADC channels, while the MCXN23x can support up to 63 ADC channels. For the 184VFBGA package, the MCXN23x cannot support the 12 ADC channels listed in Table 6 because the 16 pins mentioned in Table 6 are removed.

Table 6. Removed ADC channels on MCXN23x

184BGA ALL Pin NameAnalog
P1_20ADC1_A20/CMP1_IN3
P1_21ADC1_A21/CMP2_IN3
P1_22ADC1_A22
P1_23ADC1_A23
P5_8ADC1_B16
P5_9ADC1_B17
P3_19
P3_5
P3_4
P3_3
P0_8ADC0_B8
P0_9ADC0_B9
P0_10ADC0_B10
P0_11ADC0_B11
184BGA ALL Pin NameAnalog
P0_12ADC0_B12
P0_13ADC0_B13
P0_30ADC0_B22
P0_31ADC0_B23

Note: The term ADC channels refer to the external ADC input channels.

 FlexPWM and Quadrature Decoder (QDC)
The MCXN94x and MCXN23x are compatible with dual-motor applications as they support two FlexPWM modules and two QDC modules. But, the MCXN54x supports only one FlexPWM module and one QDC module, making it suitable for single-motor solutions only.

DMA
The MCXNx4X has two eDMA modules, eDMA0 and eDMA1. Each module supports 16 DMA channels. The MCXN23x also has 2 eDMA modules, but eDMA1 only supports eight channels.

Anti-tamper pin
The tamper pins for MCXNx4x are listed in Table 7 and Table 8. The MCXNx4x has eight tamper pins, and the MCXN23x has six tamper pins. Pin P5_8 and P5_9 are removed on MCXN23x.
Note: The 100HLQFP packaged parts of MCXN4x and MCXN23x only support two tamper pins.

Table 7. Tamper pins on MCXNx4x

184BGA all184VFBGA

pin name

100HLQFP N94x100HLQFP

N94x pin name

100HLQFP N54x100HLQFP

N54x pin name

ALT0ALT3
M10P5_250P5_250P5_2P5_2TAMPER0
N11P5_351P5_351P5_3P5_3TAMPER1
M12P5_4P5_4TAMPER2
K12P5_5P5_5TAMPER3
K13P5_6P5_6TAMPER4
L13P5_7P5_7TAMPER5
L14P5_8P5_8TAMPER6
M14P5_9P5_9TAMPER7

Table 8. Tamper pins on MCXN23x

184BGA ball184VFBGA pin

name

100HLQFP100HLQFP pin

name

ALT0ALT3
M10P5_250P5_2P5_2TAMPER0
N11P5_351P5_3P5_3TAMPER1
M12P5_4P5_4TAMPER2
184BGA ball184VFBGA pin

name

100HLQFP100HLQFP pin

name

ALT0ALT3
K12P5_5P5_5TAMPER3
K13P5_6P5_6TAMPER4
L13P5_7P5_7TAMPER5

Miscellaneous

This section provides details about the boot source and debugging.

  1. Boot source
    The MCXN23x does not have the FlexSPI module and does not support external flash boot, but the MCXNx4x
    supports external flash boot, which can be configured with the BOOT_CFG field in the Customer Manufacturing/Factory Configuration Area (CMPA) to implement this function.
  2. Debug
    The MCXNx4x debug module supports ITM, DWT, ETM, ETB W/2KB RAM, and TPIU function, but the ETM and ETB W/2KB functions are removed on the MCXN23x.
  3. Power management
    Power management The power management of MCXN23x and MCXNx4x is identical, so they can use the same power supply circuit.

 Software

This chapter describes some software considerations when porting the code from the MCXNx4x platform to
the MCXN23x platform. In this section, take the hello_world project from the FRDM-MCXN236 SDK as an example, and the IDE is IAR 9.40.1.

  1.  Chip-specified header files
    Each SDK project has a device directory containing chip-specific header files. These header files must be replaced when porting code between platforms, see Figure 11.NXP-AN14179-Based-Micro-Controllers- (14)
  2. SDK driver
    Ensure that the SDK driver directory does not include unsupported modules such as FlexSPI and uSDHC for MCXN23x.
  3. Start_up file
    Replace the start_up file of MCXNx4x with MCXN23x start_up file, as some modules are removed, and the interrupt vector table is different.
  4. Linker file
    The MCXN23x and MCXNx4x can have different Flash and RAM sizes, so the customer must replace the linker file to ensure the Flash and RAM range used in the linker file is suitable.
  5. IDE-related configuration update
    When porting code from the MCXNx4x to MCXN23x, update IDE-related configurations such as path and macro definition, see Figure 12.

NXP-AN14179-Based-Micro-Controllers- (15).Note: If the customer does not use the removed pins and peripherals on the MCXN23x, then the customer can directly solder the MCXN23x chip to the MCXNx4x board and can directly use the MCXNx4x software, but the linker file must be updated to match the flash and RAM size of MCXN23x. Currently, this method has only been verified on IAR IDE.

 Conclusion

This document compares system resources and software differences between the MCXNx4x and MCXN23x, making project migration quick and easy.

Related documentation/resources

Table 9 lists additional documents and resources that can be referred to for more information. Some of the documents listed below may be available only under a non-disclosure agreement (NDA). To request access to these documents, contact local field applications engineer (FAE) or sales representative.

Table 9. Related documentation/resources

DocumentLink/how to access
MCX Nx4x Reference Manual (document MCXNX4XRM)MCXNX4XRM
MCXN23x Reference Manual (document MCXN23XRM) (document MCXN23XRM)MCXN23XRM

 Acronyms and abbreviations

Table 10 defines the acronyms and abbreviations used in this document.

Table 10. Acronyms and abbreviations

AcronymDefinition
ADCAnalog-to-Digital Converter
CANController Area Network
CMPComparator
CMPACustomer Manufacturing/Factory Configuration Area
CPUCentral Processing Unit
CRCCyclic Redundancy Check
DACDigital-to-Analog Converter
DMADirect Memory Access
DSPDigital Signal Processor
DWTDrop-Weight Tear
ECCError Correcting Code
eDMAEnhanced Direct Memory Access
ETMEmbedded Trace Macrocell
ETBEmbedded Trace Buffer
FlexCANFlexible Controller Area Network Interface
FlexIOFlexible Input/Output
GPIOGeneral-Purpose Input/Output
HS USBHigh-Speed USB
I2CInter-Integrated Circuit
ITMInstrumentation Trace Macrocell
IPInternet Protocol
LDOLiquid Crystal Display
LPCLow Pin Count
MACMedia Access Control
MCUMicrocontroller Unit
MIIMedia-Independent Interface
NDANon-Disclosure Agreement
OSOperating System
QDCQuadrature Decoder
RTCReal-Time Clock
TPIUTrace Port Interface Unit
TSITouch System Interface
SAISerial Audio Interface
SDKSoftware Development Kit
SPISerial Peripheral Interface
SRAMStatic Random-Access Memory
AcronymDefinition
RAMRandom-Access Memory
RMIIReduced Media Independent Interface
TPIUTrace Port Interface Unit
UARTUniversal Asynchronous Receiver Transmitter
USBUniversal Serial Bus
VREFVoltage Reference

Note about the source code in the document

Example code shown in this document has the following copyright and BSD-3-Clause license:
Copyright 2024 NXP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1.  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials must be provided with the distribution.
  3.  Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Revision history

Table 11 summarizes the revisions to this document.

Table 11. Revision history

Document IDRelease dateDescription
AN14179 v.1.006 May 2024Initial public version

Legal information

Definitions
Draft — A draft status on a document indicates that the content is still under internal review and subject to formal approval, which may result
in modifications or additions. NXP Semiconductors does not give any representations or warranties as to the accuracy or completeness of information included in a draft version of a document and shall have no liability for the consequences of use of such information.

Disclaimers
Limited warranty and liability — Information in this document is believed to be accurate and reliable. However, NXP Semiconductors does not give any representations or warranties, expressed or implied, as to the accuracy or completeness of such information and shall have no liability for the consequences of use of such information. NXP Semiconductors takes no responsibility for the content in this document if provided by an information source outside of NXP Semiconductors.
In no event shall NXP Semiconductors be liable for any indirect, incidental, punitive, special or consequential damages (including – without limitation -lost profits, lost savings, business interruption, costs related to the removal or replacement of any products or rework charges) whether or not such damages are based on tort (including negligence), warranty, breach of contract or any other legal theory.
Notwithstanding any damages that customer might incur for any reason whatsoever, NXP Semiconductors’ aggregate and cumulative liability towards customer for the products described herein shall be limited in accordance with the Terms and conditions of commercial sale of NXP Semiconductors.

Right to make changes — NXP Semiconductors reserves the right to make changes to information published in this document, including without limitation specifications and product descriptions, at any time and without notice. This document supersedes and replaces all information supplied prior to the publication hereof.
Suitability for use — NXP Semiconductors products are not designed, authorized or warranted to be suitable for use in life support, life-critical or safety-critical systems or equipment, nor in applications where failure or malfunction of an NXP Semiconductors product can reasonably be expected to result in personal injury, death or severe property or environmental damage. NXP Semiconductors and its suppliers accept no liability for inclusion and/or use of NXP Semiconductors products in such equipment or applications and therefore such inclusion and/or use is at the customer’s own risk.
Applications — Applications that are described herein for any of these products are for illustrative purposes only. NXP Semiconductors makes no representation or warranty that such applications will be suitable for the specified use without further testing or modification.

Customers are responsible for the design and operation of their applications and products using NXP Semiconductors products, and NXP Semiconductors accepts no liability for any assistance with applications or customer product design. It is customer’s sole responsibility to determine whether the NXP Semiconductors product is suitable and fit for the customer’s applications and products planned, as well as for the planned application and use of customer’s third party customer(s). Customers should provide appropriate design and operating safeguards to minimize the risks associated with their applications and products.
NXP Semiconductors does not accept any liability related to any default, damage, costs or problem which is based on any weakness or default
in the customer’s applications or products, or the application or use by customer’s third party customer(s). Customer is responsible for doing all necessary testing for the customer’s applications and products using NXP Semiconductors products in order to avoid a default of the applications
and the products or of the application or use by customer’s third party customer(s). NXP does not accept any liability in this respect.

Terms and conditions of commercial sale — NXP Semiconductors products are sold subject to the general terms and conditions of commercial sale, as published at https://www.nxp.com/profile/terms, unless otherwise agreed in a valid written individual agreement. In case an individual agreement is concluded only the terms and conditions of the respective agreement shall apply. NXP Semiconductors hereby expressly objects to applying the customer’s general terms and conditions with regard to the purchase of NXP Semiconductors products by customer.

Export control — This document as well as the item(s) described herein may be subject to export control regulations. Export might require a prior authorization from competent authorities.
Suitability for use in non-automotive qualified products — Unless
this document expressly states that this specific NXP Semiconductors product is automotive qualified, the product is not suitable for automotive use. It is neither qualified nor tested in accordance with automotive testing or application requirements. NXP Semiconductors accepts no liability for inclusion and/or use of non-automotive qualified products in automotive equipment or applications.

In the event that customer uses the product for design-in and use in automotive applications to automotive specifications and standards, customer (a) shall use the product without NXP Semiconductors’ warranty of the product for such automotive applications, use and specifications, and (b) whenever customer uses the product for automotive applications beyond NXP Semiconductors’ specifications such use shall be solely at customer’s own risk, and (c) customer fully indemnifies NXP Semiconductors for any liability, damages or failed product claims resulting from customer design and use of the product for automotive applications beyond NXP Semiconductors’ standard warranty and NXP Semiconductors’ product specifications.

Translations — A non-English (translated) version of a document, including the legal information in that document, is for reference only. The English version shall prevail in case of any discrepancy between the translated and English versions.
Security — Customer understands that all NXP products may be subject to unidentified vulnerabilities or may support established security standards or specifications with known limitations. Customer is responsible for the design and operation of its applications and products throughout their lifecycles
to reduce the effect of these vulnerabilities on customer’s applications
and products. Customer’s responsibility also extends to other open and/or proprietary technologies supported by NXP products for use in customer’s applications. NXP accepts no liability for any vulnerability. Customer should regularly check security updates from NXP and follow up appropriately.

Customer shall select products with security features that best meet rules, regulations, and standards of the intended application and make the ultimate design decisions regarding its products and is solely responsible for compliance with all legal, regulatory, and security related requirements concerning its products, regardless of any information or support that may be provided by NXP.
NXP has a Product Security Incident Response Team (PSIRT) (reachable at PSIRT@nxp.com) that manages the investigation, reporting, and solution release to security vulnerabilities of NXP products.
NXP B.V. — NXP B.V. is not an operating company and it does not distribute or sell products.

Trademarks
Notice: All referenced brands, product names, service names, and trademarks are the property of their respective owners.
NXP — wordmark and logo are trademarks of NXP B.V.

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — are trademarks and/or registered trademarks of Arm Limited (or its subsidiaries or affiliates) in the US and/or elsewhere. The related technology may be protected by any or all of patents, copyrights, designs and trade secrets. All rights reserved.
Bluetooth — the Bluetooth wordmark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by NXP Semiconductors is under license.

  • CoolFlux — is a trademark of NXP B.V.
  • CoolFlux DSP — is a trademark of NXP B.V.
  • EdgeLock — is a trademark of NXP B.V.
  • IAR — is a trademark of IAR Systems AB.
  • Kinetis — is a trademark of NXP B.V.
  • Matter, Zigbee — are developed by the Connectivity Standards Alliance. The Alliance’s Brands and all goodwill associated therewith, are the exclusive property of the Alliance.
  • MCX — is a trademark of NXP B.V.

Please be aware that important notices concerning this document and the product(s) described herein, have been included in section ‘Legal information’.

  • © 2024 NXP B.V.
  • For more information, please visit: https://www.nxp.com
  • All rights reserved.
  • Date of release: 6 May 2024 Document identifier: AN14179

Documents / Resources

NXP AN14179 Based Micro Controllers [pdf] User Guide
MCXNx4x, MCXN23x, AN14179 Based Micro Controllers, AN14179, Based Micro Controllers, Micro Controllers, Controllers

References

Leave a comment

Your email address will not be published. Required fields are marked *