NXP recently announced MCX microcontroller products

I. NXP Announces MCX Microcontroller Products 

NXP Semiconductors has officially launched a new MCX microcontroller portfolio designed to drive innovation in smart homes, smart factories, smart cities and many emerging industrial and IoT edge applications. The portfolio consists of four families, built on a common platform and supported by the widely adopted MCUXpresso development tools and software suite. Based on this, developers have full access to unified software across the portfolio, speeding up development. The portfolio also integrates for the first time NXP's new specialized neural processing unit (NPU) for accelerated edge inference, providing up to a 30x machine learning throughput boost compared to a separate CPU core. 

The MCX portfolio is built on a number of core technologies and supported by unified software tools to help customers address a range of design challenges with greater flexibility. MCX offers a broad and rich product portfolio that enables developers to choose the right device for their application needs, allowing them to focus on other aspects of their designs. 

Designed with a focus on ease of use, the four families of the MCX portfolio simplify the migration process and allow designs to be scaled or streamlined as needed, while minimizing development costs through the use of unified software tools. The portfolio is based on the high-performance Arm Cortex-M core and integrates a rich set of peripherals for design flexibility. MCX microcontroller products integrate up to 4MB of on-chip flash memory, low-power cache and advanced memory management controller, plus up to 1MB of on-chip SRAM to further improve real-time performance for edge applications. 

Machine learning and runtime inference will be supported by NXP's eIQ machine learning software development environment. Developers can use the easy-to-use tools provided by eIQ to train machine learning models for NPUs or CPU cores and deploy them on MCUs. The MCX family, built according to NXP's Secure by Design approach, will provide secure boot with immutable trust roots and hardware-accelerated encryption, and select families also offer a built-in EdgeLock security subsystem. 

Second, the choice of microcontrollers need to consider the four issues 

1. Develop a list of required hardware interfaces 

Using the overall hardware block diagram, develop a list of all external interfaces that the microcontroller needs to support. There are two general types of interfaces that need to be listed. The first interface is the communication interface, which includes peripheral interfaces such as USB, I2C, SPI, and UART. 

If the application requires USB or some form of Ethernet, make a special note. These interfaces have a significant impact on the amount of program space the microcontroller needs to support. The second type of interfaces are digital inputs and outputs, analog to digital inputs, and PWM interfaces, etc. 

2. Check the software architecture 

Software architecture and requirements have a significant impact on the choice of microcontroller. The weight of the processing requirements determines whether an 80 MHz DSP or an 8 MHz 8051 is used. as with hardware, all important requirements should be noted down. 

3. Selecting the architecture 

Using the information in steps 1 and 2, the engineer should be able to get an initial idea of the required architecture. Can the application be implemented with an 8-bit architecture? Or does it require a 32-bit ARM core? Between the application and the required software algorithms, these questions will start to come together into a solution. Don't forget about possible future requirements and functional extensions. 

Just because an 8-bit microcontroller meets your requirements now, you can't stop thinking about a 16-bit microcontroller for future functionality or ease of use. Remember, microcontroller selection can be an iterative process. You may select a 16-bit period in this step and find a 32-bit ARM part more suitable in a later step. This step simply allows the engineer to determine the right way forward. 

4. Determine memory requirements 

Flash and RAM are two very important components for any microcontroller. Ensuring that there is no shortage of program space, or variable space, is definitely the highest priority. When selecting components, it is easy to choose components with excessive functionality over those that are underpowered. 

It's not unusual to find at the end of a design that you need 110% more space or that you need to cut some functionality. After all, you will always start out wanting more and then move to a slightly more limited part in the same chip family. Using the software architecture and communication peripherals included in the application, engineers will be able to estimate the size of flash and RAM required for the application. Remember to leave some room for feature expansion and subsequent versions! This can save a lot of trouble in the future.