NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
TI PinMux Tool v3
Contents
Overview[edit]
This page refers to an older version of the tool. Please refer to TI_PinMux_Tool_v4 for the latest version.
PinMux determines a mux configuration for your system once you've specified the peripheral signals your system requires external pinouts for. This determination is automatic based on your requirements - you do not need to manually try multiple configurations or resolve conflicts. Once determined, the tool can either generate source code that configures the device at runtime, or a summary file showing the configuration.
Support[edit]
Please submit your questions, comments, and recommendations at the CCS TI E2E Community
Devices Supported[edit]
CC3200, AM335x (Rev 2.1 and up), AM437x, F2807x, F2837xS, and F2837xD Processors.
Download the Latest Offline PinMux Tool[edit]
<imagemap>
Image:WindowsDownload.png|left|alt=Download PinMux for Windows
default Download PinMux for Windows
desc none
</imagemap>
<imagemap>
Image:LinuxDownload.png|alt=Download PinMux for Windows
default Download PinMux for Linux
desc none
</imagemap>
Access the latest Cloud PinMux Tool[edit]
The latest version of the Cloud-based PinMux Tool is available on the TI Cloud Tools Portal here: http://dev.ti.com
NOTE: the offline and Cloud versions of PinMux may be different versions due to differences in release schedules. The user interface appearance may be different due to styling changes. The underlying features of the tool are largely unchanged.
Getting Started[edit]
After installing, launch the tool, select your device and hit configure. You'll then see a screen similar to this. The left side lists all the peripheral types available on the device. The middle gives specifics on an individual specific peripheral. The picture on the far right shows what device pins are in use or available.
To start inputting your system's requirements. Select a peripheral type from the list on the left and select "Add" in the middle column. The tool will automatically select external pins for the signals of that peripheral. Those pins will appear green in the picture on the right. You do not have to select them yourself.
If your system doesn't need every signal on the peripheral, unselect the signal using the checkbox to its left. The fewer signals selected, the less external pins are used and therefore available for other peripheral signals.
Some devices may expose Use Cases for some peripherals to allow you to quickly eliminate the signals you won't need.
Once finished, optionally give this selection a name and then begin adding another peripheral.
Every time you change something, all pin assignments (both new and existing) are recalculated in order to satisfy all requirements. If a pin conflict occurs, that means there is no way to configure the device to meet the specifications you've entered and you'll have to remove something. See below for more information on resolving conflicts. Once all specifications are entered, you can select "Generate", browse to a folder, and hit ok. The tool will generate one or more source files in that folder that will configure the system at runtime.
Overrides[edit]
You can choose to ignore the selections made by the tool and instead override either the specific peripheral selected and/or the external pin selected. This is done by clicking on the drop down entry beside the choice and choosing a specific choice.
Since there may be dependencies between the choices within a peripheral, the available choices you can override a subsequent choice to may be restricted. Unavailable choices will be shown, but will be grayed out. For this reason, a lock icon will appear next to overrides. To remove the override, select "Any" from the list of available choices. Overriding choices will not allow you to fix pin conflicts. The tool always recalculates all assignments on any change, so anything you could change has already been tested. Overriding will only shift the pin conflict to another signal. Instead, overriding is intended for cases where part of the configuration must match something that already exists in the design that can't change, or you would prefer the external pins to be located on a specific part of the chip to reduce connections.
Pin Conflicts[edit]
Because the tool always recalculates all assignments on any change, you will not be able to resolve a pin conflict by manually choosing different choices. You will can only eliminate a pin conflict by removing a signal or an entire peripheral, or by removing an override you previously setup. The tooltip for a pin conflict indicates why none of the choices would work. The tooltip on the diagram on the far right for a specific pin will indicate what other signals can be connected to that pin. Those two pieces of information are a good first choice as to what to look at eliminating, but there may be more subtle changes that aren't so obvious (as any change will re-calculate everything). As such, it's always a good idea to remove any unnecessary signals regardless.
[edit]
A tooltip saying that a choice "is unavailable on" the chosen peripheral means that that external pin can only be connected to this signal type on a different peripheral. A different peripheral was not automatically chosen because of
- an override
- other signal choices for this peripheral wouldn't be possible
- another requirement is already using that peripheral
Keep in mind that not every signal is always available on every peripheral
Choice Already in Use[edit]
A tooltip saying that a choice "is in use by" means that another signal is already muxed to that external pin. The other signal is also constrained in its choices, or another choice would have been chosen for it. The tooltip will indicate the specific requirement and signal that's using it.
Choice Not Valid in IOSet[edit]
Some devices also have IOSets. An IOSet is a group of several specific muxing choices that are valid for this peripheral. Although other choices might appear possible, they'd introduce timing problems on the peripheral if used. IOSets can be viewed in the "View IO Sets" link, which really exists only for reference. If a tooltip indicates this is the error, it means that another signal's choice is restricting what IOSet can be used, and thus eliminates this choice for the current signal.