Creating custom Expansion Board and Header for the MCUXpresso Pins Tool

The MCUXpresso Pins Tool is part of the NXP configuration suite which makes pin assignments, configuration and muxing easy. What I have somehow missed from one of the latest updates and releases is that it allows me now to add my own custom headers definition. Not only the tool is now aware of the ‘standard’ Arduino headers, but I can add my own headers too. This can be useful for providers of breakout boards or any kind of board which can be added to a MCU board. In my case it is very useful for projects where we design our own (breadboard-friendly) board or a custom board with an expansion board: we can design a board header and use it in other projects.

Outline

The ‘Expansion Header‘ and ‘Expansion Board‘ simplifies using Boards with the MCUXpresso Pins tool. That way the signals between a board with headers and a possible expansion board can be simplified.

For example many evaluation boards as the NXP LPC55S69 board below have headers populated, on which expansion boards can be attached to, like the ‘Arduino’ headers below:

LPC55S69 EVK with Adafruit board

The NXP Configuration Tools already come with a set of header and board description files, but it is possible to extend that with custom headers and boards. Because the documentation about this is not very detailed (see links at the end of this article), I show it with the example of the LPC845-BRK board and a custom board I’m suing to control split-flap displays.

LPC845-BRK Header Pinout
Split-Flap driver board (left) ith LPC845-BRK (right)

Expansion Header

The Expansion Header is described in an XML file. On Windows, that XML file can be found here:

c:\ProgramData\NXP\mcu_data_{config_tools_version}\expansion_headers

The XML signal types used can be found here:

c:\ProgramData\NXP\mcu_data_{config_tools_version}\expansion_headers\signal_types\common_signal_types.xml.

❗ Be careful with selecting the correct sub-directory by the version number.

The Config Tools version number can be found here:

Configuration Tools Version

In my case, I’m using the version 11:

Location of Expansion Header Files

Keep in mind that these files are part of the usual MCUXpresso IDE installation with the configuration tools: There is currently (to my knowledge) no way to have the data file part of a project, so they are shared for the installation/version of the configuration tools. This means that I have to copy my files if I want it in a new version of the tools or if I want to use it on a different machine or installation.

To create a new header: the easiest way is to copy an existing file (e.g. micro_bus.xml) and save it as a new file (e.g. lpc845-brk.xml). Then give it a new ID and new name:

ID and Name for Expansion Header

After that, the file can be extended as needed. Below is an example configuration:

LPC845-BRK Header XML file

After changing the XML file, do not forget to restart the IDE.

Using the Header

The header files are read at tool/IDE startup. So make sure you restart the IDE if it is already running.

From the Pins Tool, select the ‘Expansion Header’ Tab:

Expansion Header in Pins Tool

From there, use the ‘+’ to add a new header:

Add New Expansion Header

In the dialog, give the header a name and select the type: the newly added header shall be listed (lpc845-brk in my case):

Header Name and Type

Next, add labels for the headers:

Connector Mapping

Next, the pins and connections can be changed as needed:


Expansion Header Pins

Expansion Board

Now any (compatible) expansion board can be assigned to the header. It is possible to create a custom board too, see this article.

The expansion board can be applied to the header using the toolbar:

Browse for the board XML file:

Select Board XML file

In the next dialog, map the connection pins:

Expansion Board Routing

That’s it! From here on mux and configure all the other pins as usual in the Pins tool

Summary

The feature of expansion headers and boards is useful for a class room environment, where I have to ‘distribute’ board definitions and configurations. It requires setting up XML files and manual distribution of the XML files. The feature might be useful for expansion board vendors, but as the files are specific to the NXP tools, I’m not sure if this will be used widely. But for some use cases like a classroom environment, the efforts to create the XML files can pay off.

Happy expanding 🙂

Links

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.