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.

Pin Mux Utility for ARM MPU Processors

From Texas Instruments Wiki
Jump to: navigation, search

Starting in v4.3, Processor SDK documentation is no longer hosted on processors wiki.

Please bookmark the new links:


TIBanner.png

PinMux Tool v4 is the recommended version for Sitara processors. It is available from the Cloud Tools Portal.

A getting started video, list of devices supported, and tool overview can be found in the PinMux Tool v4 User's Guide.This page includes supplemental information specific to Sitara ARM Processors.

Introduction[edit]

The TI PinMux Tool is a Cloud, Windows, or Linux-based software tool for configuring pin multiplexing settings and I/O cell characteristics for TI Processors. Pin multiplexing controls the routing of internal signals to the external balls of the device while the I/O cell characteristics include enabling of internal pull-up / pull-down resistors. The Pin Mux Tool provides a graphical user interface for selecting the peripheral interfaces that will be used in the system design. Its intelligent solver atomatically selects pin combinations that help the designer make sure there are no multiplexing conflicts. All selections and settings can be saved as a pinmux design file which can be reloaded later.

Disclaimer[edit]

NOTE: Although these utilities are tested and intended to be accurate, they are provided ‘as is’ and are not guaranteed to provide accurate results. In the event of a conflict between the device data contained in this software tool and the device datasheet, the datasheet shall take precedence. Please check configuration results against the datasheet for your device to be assured your pinmux configuration is possible and accurate. It is up to the user to verify all of the bits in the registers based on the information in the device datasheet and that all IOSETs selected by the tool are valid and supported. Although we try to maintain backwards compatibility between PinMux Tool versions it isn't guarunteed.

Software User's Guide[edit]

A quick overview of the TI PinMux Tool's UI and usage is available on the main PinMux Tool Wiki. The rest of this guide will focus on usage for the Sitara Processors.

Release Notes[edit]

TI PinMux Tool Release Notes

Application Launch[edit]

At launch the tool will present the option to start a new design or to open an existing design. To start a new design use the drop-down menu indicating which devices are supported by this installation of the PinMux Tool. Select your device and click Start. Previously saved designs can be opened too. Although we try to maintain backwards compatibility between PinMux Tool versions it isn't guarunteed.

IOSETs[edit]

Timing restrictions make the concept of IOSETs an important subject for Sitara Processors. The device datasheet timing specifications define the relationship between clock lines and data lines. A peripheral instance like McASP may be available on any number of pins but not all combinations of clock and data pins may be available. We only define IOSETs for combinations of pins that are guarunteed to meet the datasheet timing requirements. Pin conflict errors will be raised if the remaining available pins don't come together to build an IOSET or if pins are manually selected that don't match a defined IOSET. This is why it is important to start your system design with the PinMux Tool first before any schematic or board design is started.

Use Cases[edit]

Some peripherals may expose Use Cases to allow you to quickly eliminate the signals you won't need.

AM57xx and MCASP[edit]

On the AM57xx series of devices there is a concept of IODELAY. It is a module in the IO of the SoC that makes it possible to ensure valid IO timings on data interfaces with a clock signal. On some peripherals the use case selected can change the IODELAY setting for an IO. MCASP is an advanced audio interface that allows each AXR pin to be an audio source or audio sink, it also allows the SoC to be the clock master or slave, and these configuration can be independently mixed and matched. This makes it important to select the correct use case and pin configurations since the IODELAY configuration changes depending on the options chosen. See the "Virtual Mode Case Details" tables in the datasheet for more information.







Power Domain Checking[edit]

Some devices support dual-voltage inputs on the IO pins (VDDSHVx). The PinMux Tool is capable of tracking the IO power supply domains of an SoC and allows you to select which voltage is applied on the dual-voltage IO rails. With this information the PinMux Tool can raise a voltage conflict warning if a peripheral's IO requires a different voltage than is applied to the dual-voltage IO rail.

Example: On the AM57xx pin B14 is supplied by VDDSHV3. If gpio5_0 is used on this pin, the IO will be either 1.8V or 3.3V depending on the supply level applied to VDDSHV3. Damage may occur to the SoC pin if a 3.3V signal was driven into gpio5_0 while it is operating at 1.8V.

Changing Pad Configuration Parameters[edit]

Pad configuration parameters are used to set the values of other bit fields in each Pad Configuration Register. The parameters are typically for internal resistor pull and a check box for enabling receive functionality. These configuration parameters are SoC specific and may vary.

K2Gxx[edit]

The pins on this device have a "buffer class" feature that lets you fine tune the output driver characteristics. For most I/Os the options are "Class B - Up to 100MHz" or "Class D - Up to 200MHz". The PinMux Tool gives you the option to select the buffer class for pins that support this feature (differential or SerDes I/Os for example don't support it).

RX Enable / Input Enable[edit]

Most devices, K2G excluded, support the ability to disable the input buffer on a pin. When the RX buffer is disabled the pin can still be used as an output for clocks and GPIO but it cannot be used as an input for any function. Many peripherals require the input buffer to be enabled even if it is an output. Examples are I2C clock, MDIO clock, SPI chip select, MMC/SD clock & cmd lines, etc. For the most part, the PinMux Tool will not let you disable the input buffer on pins that require it.







Output File Formats[edit]

Code files generated by the PinMux Tool vary by each device and its requirements. They generally include C code for Processor SDK RTOS which should be drop-in compatibile with the PDK Board Library. Reference the Processor SDK RTOS Board Support page for more details. A partial devicetree format is generated for Processor SDK Linux and that should be manually patched into the reference devicetree file included with the Linux kernel.

Some devices will have a generic format that is intended for use with U-boot. These devices require pin multiplexing to be done once, in isolation, and while executing from SRAM. U-boot takes care of this by applying pin configurations while the MLO file (secondary bootloader) executes from OCMC RAM. This guide will include how to convert the generic format for U-boot.

Processor SDK RTOS[edit]

After updating the files in the directories below you will need to recompile the board_lib and sbl components of the Processor SDK Platform Development Kit (PDK). Follow this guide on Rebuilding The PDK.

AM3, AM4, AMIC[edit]

Replace files in this directory

${PDK_INSTALL_DIR}\packages\ti\starterware\board\${SOC}\

File names will need to be prefixed by "${SOC}_". Pinmux header file is common for each SOC here, and may need to be updated manually.

Everything Else (AM5, K2G)[edit]

Replace files in this directory

${PDK_INSTALL_DIR}\packages\ti\board\src\${BOARD}\







Processor SDK Linux[edit]

Recompiling u-boot is required after making updates. Instructions are available in the Linux_Core_U-Boot_User's_Guide. Compiling the devicetree dts to dtb is also required after making updates. Instructions are available in the Linux Kernel Users Guide

devicetree[edit]

Edit the appropriate file in this directory/

${SDK_INSTALL_DIR}\board_support\linux-*\arch\arm\boot\dts\${BOARD}.dts

AM57xx u-boot[edit]

The PinMux tool will provide two files: genericFileFormatIOdelay.txt and genericFileFormatPadConf.txt. A perl script is provided to convert the generic formats and provide a format that can be used in u-boot. The script and the instructions to run the script are on git.ti.com. The output from the script is used to edit the file in this directory.

${SDK_INSTALL_DIR}\board_support\u-boot-*\board\ti\am57xx\mux_data.h

K2G u-boot[edit]

Replace the file in this directory.

${SDK_INSTALL_DIR}\board_support\u-boot-*\board\ti\ks2_evm\mux-k2g.h

AM3 and AM4 u-boot[edit]

The PinMux Tool does not export any u-boot files for these devices. But the file below may still need to be modified.

${SDK_INSTALL_DIR}\board_support\u-boot-*\board\ti\am335x\mux.c
${SDK_INSTALL_DIR}\board_support\u-boot-*\board\ti\am43xx\mux.c







Archived[edit]

Pin Mux Utility v2.4.1 User's Guide
Pin Mux Utility v1.x User's Guide
Sitara Linux SDK 06.00.00.00

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Pin Mux Utility for ARM MPU Processors v2 here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Pin Mux Utility for ARM MPU Processors v2 here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Pin Mux Utility for ARM MPU Processors v2 here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity