Change Note 2025-09-23

NXP MCX-A346 micro-controller

NXP MCX-A346 MCU

Overview

  • Exploration and basic support for the NXP MCX-A346 microcontroller.
  • This MCU has a single Cortex-M33 core, and lots of peripheral devices and IO in general. Apart from the core, it’s pretty much a different beast than the RP2350. Not better or worse, just of a different nature.
  • I have my eyes on the dual-core MCX-N947, but had decided to start with a simpler MCU to get into the NXP design approach, the flashing, all that.
  • There are example programs, initial library modules, an Astrobe config file, and a .bin to .elf binary converter (see below).

Boards Used

Library Modules

  • The initial library modules are in lib/v2.x for now.
  • I expect that lessons learned, and striving for source code compatibility among MCUs, will result in changes to the RPx library modules, hence the temporary separation, with the goal to unify the libraries at some point.
  • For example, for some time I have been mulling over a better handling of the code for the cores on the RPx MCUs,1, or how to approach GPIO with more than 32 pins (eg. with the RP2350B, see last change note), so working with a single core MCU, and way more IO pins will hopefully result in some insights. :)

Flashing

  • The MCU-Link software on the boards does not provide the useful functionality of the Pico and Pico2 boards to present as drives on the cross development host. Instead, a flashing utility is used to transfer the binary to the board: LinkServer.
  • Unfortunately, this utility is not without problems; the flashing works in general, but at times there are errors – repeating exactly the same command is usually successful.
  • I have had better results with .elf binary files, so I have written a utility that transforms Astrobe’s .bin file into this format: makeelf-nxp, in the tools directory.2
  • On the positive side, all NXP tools are available on Windows, macOS, and Linux (including their IDE).

Example Programs

  • MVP: a minimal viable program to get off the ground.
  • MVPplus: extend MVP to use the initial library modules for the MCX-A346.

  1. Eg. modules Config, Memory and RuntimeErrors↩︎

  2. Based on the makeelf utility I had written some time ago for the RP2040. ↩︎

Updated: 2025-09-23