About a year ago, on December 7th 2015, Freescale and NXP have announced the completion of their merger. Now it is Qualcomm which wants to acquire NXP? It looks like these mergers are happening faster and faster. The reality is that merging products take more time than anticipated, and nearly one year later I can see the outcome of what comes out of the marriage between Freescale and NXP or between Kinetis and LPC: NXP has announced the MCUXpresso software and tools for Kinetis and LPC microcontroller:
MCUXpresso Software and Tools
The MCUXpresso suite of software and tools (see http://www.nxp.com/mcuxpresso) is targeting Kinetis and LPC microcontroller. It has three parts:
- MCUXpresso IDE: From the set of features and capabilities it looks like a combination of the former Freescale Kinetis Design Studio and the NXP LPCXpresso IDE. I have used the LPCXpresso IDE with Processor Expert for several projects (see “Merging NXP LPCXpresso IDE with Freescale Kinetis Design Studio, Processor Expert and Kinetis SDK“). There is no word about Processor Expert, so based on that information the new IDE will not have that ability. From a Kinetis Design Studio user perspective it finally re-adds hardware trace and multicore capabilities, from a LPCXpresso user perspective it adds unlimited code size. I’m looking forward to that Eclipse based IDE which is supposed to be released March next year. With this looks like the one and common Eclipse based IDE for all NXP microcontroller.
- MCUXpresso SDK: This is basically the Kinetis SDK V2 (see “First NXP Kinetis SDK Release: SDK V2.0 with Online On-Demand Package Builder“), re-branded and now finally targeting LPC devices in addition to Kinetis. With this, that SDK is getting the standard for all NXP microcontroller. Before using a device, make sure to check the list of supported devices at https://community.nxp.com/docs/DOC-333073.
- MCUXpresso Config Tools: This is now going to be re-branded what Freescale had as ‘Kinetis Expert Tools’ (see “Tutorial: Muxing with the New NXP Pins Tool“). These set of tools are supposed to be the set of tools after Processor Expert which already had a SDK builder and a pin muxing tool. With the announcement of the MCUXpresso brand, NXP has added and released a tool for system clock configuration (more about this below). The clocks tool is part of the version 2 of the configuration tools (version 1 included the pins tool only).
Because the V2 version of the configuration tools is the real new thing, here are some items I think are worth to mention (more details are in the release notes):
New in V2
As noted in the about box, the ‘Kinetis Expert Version 2.0’ includes two tools (icons): Pins and Clocks:
In the Pins Tool there are now two extra columns with ‘Label’ and ‘Identifier’: with the label I can give the pin a description label, and with the identifier I can name #define’s which are generated in the source code:
Using the define in my application code I can use a symbolic way to use the pin port/pin/label/etc now.
The Pins (and Clocks) tool are downloading the needed data from the internet on demand. Now it is possible to specify and download the data on demand: I use the menu File > Export and I have a menu to download the data:
Then I can select the data files for the selected architectures:
That way I can get the data before I have to disconnect from the network. Or to download upfront all the data needed for class labs instead having all the students to get the data.
I can now export a configuration as template with the menu File > Export:
This creates a template I can use to create new projects which is useful for passing templates in classes for labs:
As an added bonus, it is now possible to import the Processor Expert for i.MX Pin Muxing files. I had a configuration for a i.MX device which never ended up in a project, so now I can migrate that work it to the new pins tool.
New: Clocks Tool
The big new plus is the Clocks Tool. I can switch between the Pins and Clocks tool using a menu:
Similar to the Pins tool I can configure now the system clocks of the microcontroller. The real cool part is a graphical view of the clock tree:
In the upper part of the view I get the details (e.g. which clocks are enabled), and in the graphical view on the bottom I can follow and edit the settings of the clock path. The functionality is about the same what I’m using in the Processor Expert CPU component and the clock settings there (so it is about the core clock and the clock outputs to the peripherals, not about e.g. the prescalers inside the UART peripheral).
The tool tries to find the best match, and I can lock or unlock settings in the clocks:
I still need to have a fundamental understanding of the clocking of the device, but that graphical view makes it easier to understand the blocks and how they depend on each other:
The generated configuration code is for the Kinetis (sorry: now MCUXpresso) SDK V2. To use it in a Kinetis Design Studio project, the files can be put into a SDK project like below:
Because they are normal source/text files, I can have them in a version control system without any problems. I put the .mex file under version control only for convenience, as I can import the .c files as they already contain all the needed information.
NXP shows with the MCUXpresso software and tools that they are combining the Kinetis and LPC ARM microcontroller software enablement and tools under one umbrella. But this applies to the non-automotive parts (see https://community.nxp.com/docs/DOC-333073): the automotive parts in NXP have their own IDE (S32 Design Studio) and a special SDK. It will be interesting if that will continue or eventually get merged too.
The V2 release of the configuration tools adds the clocks tool which closes the gap left in the SDK version 2. There are more things scheduled to come in 2017 (see http://www.nxp.com/products/software-and-tools/run-time-software/mcuxpresso-software-and-tools/mcuxpresso-config-tools:MCUXpresso-Config-Tools#overviewExpand):
I’m looking forward especially to the Peripherals Tool and of course to the MCUXpresso IDE. I’m using now the Pins and Clocks tool together in several projects and plan to roll it out in the next semester course targeting Kinetis K22 and potentially a LPC device.
Happy Xpressing 🙂
- MCUXpresso web site: http://www.nxp.com/mcuxpresso
- SDK V2: First NXP Kinetis SDK Release: SDK V2.0 with Online On-Demand Package Builder
- V1 of the configuration tools with the Pins tool: Tutorial: Muxing with the New NXP Pins Tool
- MCUXpresso list of supported devices: https://community.nxp.com/docs/DOC-333073