Pin Mux Utility for ARM MPU Processors

TIBanner.png



This User's Guide supports Pin Mux Utility v2.2.0.0 (Nov 2011) or later which is available in the Sitara Linux SDK version 5.03

For any previous version of Pin Mux Utility see Pin Mux Utility v1.x User's Guide (archived)

Contents

[hide]

Introduction

The Pin Mux Utility for TI ARM Cortex-A8 based microprocessors is a Windows-based software tool for configuring pin

multiplexing settings and I/O cell characteristics for the AM335x, AM35xx, AM37xx / DM37xx, AM387x / DM814x,

AM389x / C6A816x / DM816x and OMAP35x devices.

Sitara processors provide pad configuration programmability to control the routing of internal

signals to the external balls of the device. Pad configuration also allows I/O cell characteristics to

be controlled. These include enabling of internal pull-up / pull-down resistors and specifying I/O cell

behavior independently in active and standby modes of operation.


The Pin Mux Utility provides a graphical user interface for selecting the peripheral interfaces that will

be used in the system design and for resolving pin multiplexing conflicts. The currect state of all settings

can be saved as a design state file which can be reloaded to restore the state of all tool settings.

The results can also be output as C header files. The first header file is device-specific and

it specifies all the pad configuration registers that can be programmed on the device. The second

header file is board-specific and it specifies all the pin multiplex and pad configuration settings that

were generated for your specific system design. The output sample header files are in the format used

for the AM35x / AM37x / OMAP35x U-Boot source code. For other supported devices, the source code

provides a complete description of all settings but is not directly usable as U-Boot source code.

Software Installation

Pin Mux Utility v2_04_01_00 is available for download from the ti.com website here. It is also installed

automatically as part of the Linux EZ Software Development Kit for Sitara ARM Microprocessors but the

version from the ti.com website is recommended to get the most recent updates.

If you are running Linux as a virtual machine on a Windows O/S, the Windows Installer and Pin Mux Utility

program can be run on the Linux host PC under the Windows O/S. The generated source files can then be

transferred to the Linux virtual machine via shared folders or another available method.

If your Linux O/S is not a virtual machine, the Windows installer and Pin Mux Utility program must be

run on a separate PC running the Windows O/S. To run the Windows Installer, run Setup.exe. The installer

should start running as shown below.


Pin Mux Utility v1.0 Installer Start.PNG


If a previous version of Pin Mux Utility was installed, the following message MAY appear.

Select "Remove Pin Mux Utility" and click Finish to uninstall the previous version. Then,

run Setup.exe again to install the new version.


Pin Mux Utility v1.0 Installer Remove-2.PNG


In some cases, if Pin Mux Utility was already installed the following message will appear

instead. In this case, use Add/Remove programs from the Windows Control Panel to

uninstall the original version, then run the installer again.


Pin Mux Utility Uninstall.PNG


After installation completes the following message will appear.

Pin Mux Utility v1.0 Installer Complete.PNG

Software User's Guide

Program Startup

To see the current release notes, click on this in the Windows Start menu:

All Programs > Pin Mux Utility > Release_Notes.txt

To start the program, double-click the Pin Mux Utility icon on the desktop, or click

All Programs > Pin Mux Utility > Pin Mux Utility

in the Windows Start menu.


Pin Mux Utility v1.0 TI Icon.PNG

Pin Mux Utility


A dialog box will appear indicating which devices are supported by this installation of the

Pin Mux Utility as shown below. Select your device and click OK.


Pin Mux Utility v2.1 Device Type Selection.PNG

Main Window

  • The main window opens with device data populated for the selected device type. All pin mux selections and pad configurations are in the

power-up-reset state.

  • The main window (and the Peripheral Interface View windows) may be maximized or resized so that the complete signal names can be seen.
  • Double-click at the divider between columns in the table row header area to set width of a column to match the widest column text.
  • The title bar indicates the path where output source files will be stored.
  • The Peripheral Interfaces data grid shows the current peripheral interface status for the member signals of each peripheral interface.
  • The Device Package selector controls which package type is used to populates the "Bot/Top Ball" ball location column.

When a signal has been selected and the IO Pad is not connected to any device ball this ball has a RED background in the "Bot/Top Ball"

column and the "Pkg Conflict!" indicater is shown below the Device Package drop-down box. IO Pads that are not connected to any device ball

should have all signals Not Selected and be defaulted to the "Selected (Ball Available)" state (unless the ball has a fixed mux mode).

  • The Legend describes the color scheme that is used to give a visual indication of the state of each peripheral interface and the state of each

signal in the Pin Mux Grid.

  • The main Pin Mux Grid represents one device ball in each row and contains columns to display the current pad configuration and ball location(s).

Columns labeled Mode 0 to Mode N represent the pin mux state at each ball. The state may be changed by double clicking on a cell.
Multiple cells may be selected in either the Pad Configs column or in the Mux Mode columns. R-Click and use context menu to edit these
settings.

  • The status bar indicates the total number of device balls, number of balls remaining and the number of balls with conflicting mux settings.
  • The Reset button is used to set all mux selections and pad configurations to the power-on-reset state.
  • The close button exits the program

NOTE: For devices other than AM335x the IO Set Violation, IO Set Subset and IO Set Match statuses are not shown. The Peripheral Interface uses a GREEN=Selected status in place of those,

meaning that at least one interface member signal is selected and there are no conflicts.

For devices other AM335x, the IO Power column is not used.

PinMuxUtility MainWindow.PNG


Menu Items

File Menu

  • File > Save > Design

Saves current pin mux selections and pad configurations to a data file that can be reloaded at any time or

on a subsequent run of the program. This file, by default, will be stored at:

<My Documents Folder>\Pin Mux Utility\Design1\<device_name>\PinMuxDesignState_<device_name>.dat


  • File > Open > Design

Opens data file stored previously with the File > Save > Design menu item. Must open a file for the same

device type that was selected at program startup. This will populate all mux selections and pad configuration

parameters from the data file.

  • File > Save > Source > Linux

Saves the current pin mux selections and pad configurations to C header files.


  • File > Exit

Exits the program. You will be prompted to "Save changes to mux selections and/or pad configurations?". If

Yes is clicked, this will open a file save dialog to save the design data file as when the File > Save > Design

menu command is used.

Help Menu

  • Help > ReadMe

Displays a window describing features of the program and a link to this User Guide Wiki article.

  • Help > About

Displays the program version.


Saving Your Work to a Design State File

Use File > Save > Design, to save your work to a design state file. This file can later be reloaded

to continue working on your design.

PinMuxUtility save design.PNG

Opening an Existing Design State File

Use File > Open > Design , to open saved design state file. For some devices,

an example design file is provided with settings that match the TI EVM board.

Pin Mux Utility v1.0 AM37xx Open Design.PNG

Legend

The legend below shows the visual indicators that are used to display the status of the pin mux settings at the

peripheral interface and individual ball levels. The tables below describe how these states are to be interpreted.


Legend: As displayed for all device types except AM335x

Pin Mux Utility v2.1 Legend 2.PNG


Legend: As displayed for AM335x device

Pin Mux Utility v2.1 Legend.PNG



Description - Peripheral Interface Status Used with All Device Types
Peripheral Interface StatusDescription
RED = ConflictingAt least one interface member signal is involved in a conflict with another signal on the same ball. These conflicts must be resolved before obtaining a final pin mux configuration for the device.
VIOLET = Multi-Muxed ViolationThis involves cases where the same internal signal is muxed to multiple ball locations and the signal has been selected at more than one of those ball locations. The interface view will contain a status message (at upper left) that indicates the first two multi-muxed signals that are found to be selected. These conflicts must be resolved before obtaining a final pin mux configuration for the device.
GREEN = SelectedAt least one interface member signal is selected and there are no conflicts or violations.
AQUA = All AvailableAll member signals of the interface are available for selection.
BLUE=Partially AvailableAt least one but not all member signals of the interface are available for selection. One or more member signal(s) are not available because another interface is already using the ball(s).
WHITE=Nothing AvailableNone of the member signals of the interface are available for selection. All member signals are unavailable because other interface(s) are already using the ball(s).


Description - Additional Peripheral Interface Status Used with AM335x Device
Peripheral Interface StatusDescription
BROWN = IO Power ViolationThe peripheral interface has member signals selected and the IO Cells are not all connected to the same voltage.
ORANGE = IO Set ViolationThe selected members of the interface do not satisfy the requirements of any of the pre-defined IO Sets for the interface. The selected signals are a superset of all the pre-defined IO Sets. These violations must be resolved before obtaining a final pin mux configuration for the device.
YELLOW = IO Set SubsetThe selected members of the interface are a subset of the specified signals for one or more IO Sets. This is an informational status and is acceptable for a final pin mux configuration for a device.
GREEN = IO Set MatchThe selected members of the interface match one of the pre-defined IO Sets exactly. Or, if no IO Sets are defined for the interface, it means at least one interface member signal is selected without conflicts or violations.



Below is the description for the status that occurs on the cells of an individual device ball.

A device ball corresponds to one row in the Pin Mux Grid in the main window or in an

Interface View.


Legend for Pin Mux Grid or Interface View
Pin Mux Grid StatusDescription
RED = ConflictingThe Conflicting status means the user has tried to select two or more signals at the same ball. Conflicting signals are all shown in RED. Conflicting signals must be deselected until not more than one signal is selected at each ball to generate a valid pin mux configuration for the device.
GREEN = SelectedThe Selected status means this signal is selected for this ball without any conflict. (There still may be violations reported at the peripheral interface level.)
AQUA = Selected (Ball Available)The Selected (Ball Available) status means the mux mode is selected by default because no other signal in the row is selected.
In addition, the Selected (Ball Available) status means the ball is available for use - you may select any other signal in the row
without causing a conflict.
WHITE = Not SelectedThe Not Selected status means this signal is not selected for this ball.
GREY = ReservedThe Reserved status means this mux mode is not a valid selection. These cells cannot be changed.

Main Data Grid

The main data grid provides a view of all multiplexed signals that can be brought out to the pads of the die.

The "Bot / Top Ball" column indicates the ball location(s) that are connected to the die pads. If this column

indicates "- / -", the die pad does not connect to a ball of the device (for the selected device package).

Each row represents one pad on the die. Each column labeled Mode 0 to Mode 7 represents one mux mode.

Each row is independent. To scroll to the first signal of a peripheral interface, double click the

corresponding cell in the peripheral interfaces grid.


Changing State of an Individual Cell

To change the state of an individual cell, double-click the cell. This applies to the Mode0 - Mode7 columns in the

Pin Mux Grid. Changes occur according to the following table.


Cell State Change when Double-Clicking a Cell

Original

Cell State

New

Cell State

Conflicting

Not Selected

Selected

Not Selected

Selected (Ball Available)

Selected (Ball Available) - Nothing happens when clicking cell with status Selected (Ball Available). Select any other signal in the row to remove the Selected (Ball Available) status.

Not Selected

Selected if no other cells in row are already selected or

conflicting

Conflicting if any other signal in row is already selected or

conflicting

ReservedReserved - Cannot be changed


Changing State of a Group of Cells

You may select a group of cells in the Mode 0 - Mode N columns. To select a group of

cells, click on a cell in this area and drag the mouse down. R-Click on any selected cell

and select Change Selected Mux Mode Cells to change the state of a group of cells at once.


You can also click and drag to select a group of cells in the Pad Config column. R-Click

any selected cell in the Pad Configs column and select Edit Selected Pad Configs from

the context menu to edit the pad configuration for a group of cells.

Interface Views

The interface view displays only the balls that make up a peripheral interface. To open an Interface View, R-Click

on a cell in the Peripheral Interfaces data grid in the main window and select View Pins from the context menu.

Any number of Interface View windows may be opened at the same time. The signals that are members of the

peripheral interface are shown in bold text.


Interface View with Pin Mux Conflicts (all device types)

Here is an example of a Pin Mux conflict (AM35xx device in this example). The Peripheral Interfaces grid indicates a conflict between the I2C3

and UART4 interfaces (RED status). This conflict occurs if more than one signal has been selected on the same device ball. There is a conflict

at Ball ID AA21. R-Click and select View Pins in the Peripheral Interfaces grid on the I2C3 and UART4 interfaces to open the Interface Views

for these two interfaces. These views show all the I2C3 and UART4 signals. Note that i2c3_sda and i2c3_scl are multiplexed to two

different locations (the same names occur twice). In some devices, such as AM335x multi-muxed signals have an added prefix, so that these

would appear as i2c3_scl_mux0 & i2c3_sda_mux0 and i2c3_scl_mux1 and i2c3_sda_mux1 to more clearly show that the same internal signals are

multiplexed to two locations.


Pin Mux Utility v2.1 AM35xx Conflict PI Grid.PNG



Pin Mux Utility v2.1 AM35xx I2C3 Conflict 2.PNG



Pin Mux Utility v2.1 AM35xx UART4 Conflict.PNG


An example solution to resolving this conflict is shown below. In the I2C3 interface view double click i2c3_sda and i2c3_scl in the Mode 3 column to desect those

signals. Double-click i2c3_scl and i2c3_sda in the Mode 0 column to resolve the conflict. I2C3 is now selected on balls W16 and W17 and there is no more conflict

with the UART4 interface. For devices without IO Set support the tool does not restrict which signals are chosen. For those devices, it is generally best to select

signals that are grouped together in the same mux mode as shown below.


Pin Mux Utility v2.1 AM35xx I2C3 Fixed 2.PNG

Interface View with Multi-Muxed Violation (all device types)

Below is an example (AM35xx device) of a interface with a Multi-Muxed Violation. The same name (i2c3_sda appears twice in

the interface view in bold text meaning that the same internal signal is muxed to two different locations.) The Peripheral

Interfaces grid flags a Multi-Muxed Violation (VIOLET status) if the same internal signal is selected in more than one ball location.

i2c3_sda is selected at ball W22 and at ball W17. The interface view shows the status text "Multi-Muxed Violation: i2c3_sda, i2c3_sda

to indicate the first pair of conflicting multi-muxed signals that were found. To remove this violation, double-click i2c3_sda in the Mode 3 column to

deselect it. For devices like AM335x, the multi-muxed signals would have a suffix and would be shown as i2c3_sda_mux0

and i2c3_sda_mux1 and selecting both of those would cause a multi-muxed violation.



Pin Mux Utility v2.1 AM35xx Multi Muxed Conflict PI Grid.PNG


Pin Mux Utility v2.1 AM35xx I2C3 Multi Muxed Conflict.PNG

Repeated Rows in Interface Views

The interface view highlights all the member signals of a peripheral interface (in bold text) -- one signal per row. In cases

where there is more than one interface member signal at the same ball, that ball will be repeated in the interface view.

In the example below, SPI1_CS1_MUX1 and SPI1_SCLK_MUX0 are both muxed to ball C18, and ball C18 is repeated in

the interface view. The repeated rows behave as a single row - if a cell is changed in either row, the change occurs in both

rows.


PinMuxUtility Dup Rows.PNG


IO Sets Functionality (AM335x device only)

Currently, only the AM335x device provides IO Set functionality. Instead of allowing selection of any set of interface

member signals, limited pre-defined sets of interface member signals are allowed. Information describing the available

IO Sets is read in after the AM335x device type is selected at program startup. The IO Sets are used to guide the user

into using a tested configuration that meets timing requirements. Either all or a subset of the interface member signals

specified by an IO Set may be selected. See the legend description and examples below for a description of the peripheral

interface statuses IO Set Match, IO Set Subset and IO Set Violation.


Interface View With IO Set Support (AM335x device only)

Below is an example of an interface view that provides IO Sets (the I2C2 Interface View for the AM335x device). The IO Set information for each peripheral

interface is read in by the program after the device type is selected. The IO Sets information is used to limit the selections to a supported group of pin-muxing

configurations.

In this example, the following IO Sets are pre-defined:

IO Set #1: I2C2_SCL_MUX0 & I2C2_SDA_MUX0

IO Set #2: I2C2_SCL_MUX1 & I2C2_SDA_MUX1

IO Set #3: I2C2_SCL_MUX2 & I2C2_SDA_MUX2

For interfaces that provide IO Sets, there are additional GUI controls as shown below:

Select IO Set to Apply (drop-down box)

You can see how many IO Sets are defined and choose a particular IO Set. Click Apply IO Set button and

the currently selected interface member signals will be cleared and the selected IO Set will get selected.

Prev IO Set and Next IO Set Buttons

Use these buttons to quickly jump from one defined IO Set to the next or previous IO Set.

Deselect Interface Button

This button deselects all interface member signals and sets each ball to the Selected (Ball Available) state.

(Some signals do not have a programmable mux mode - for example they always have Mode 0 selected. These

are not changed by the Deselect Interface button.)


Pin Mux Utility v2.1 AM335x I2C2.PNG

IO Set Match Status

In this example the SPI1 interface has the IO Set Match (GREEN) status. This means that the signals selected

for SPI1 match one of the provided IO Sets exactly.

Pin Mux Utility v2.1 AM335x SPI1 IO Set Match PI Grid.PNG


In the SPI1 interface view, the user has set the drop-down box to "IO Set 1" and has clicked the Apply IO Set button. The IO Set status text reads

"Current selections match IO Set #1 exactly."


Pin Mux Utility v2.1 AM335x SPI1 IO Set Match.PNG


IO Set Subset Status

In this example the SPI1 interface has the IO Set Subset (YELLOW) status. This means that the signals selected
for SPI1 comprise a subset of one or more pre-defined IO Sets but does not match any IO Set exactly. This is an

acceptable status. In this case there are signals in the IO Set that have been deselected because they are not needed

in the design. Since there is not an IO Set Violation status, there is no violation of the defined IO Sets.

Pin Mux Utility v2.1 AM335x SPI1 IO Set Subset PI Grid.PNG


In the SPI1 interface view, the user has selected IO Set 1, then double-clicked the second chip select (SPI1_CS1_MUX1) to deselect it because this signal is

not required in the design. The IO Set status text reads "Current selections are a subset of IO Set(s) 1". This is an acceptable status.

Pin Mux Utility v2.1 AM335x SPI1 IO Set Subset.PNG

IO Set Violation Status

In this example the SPI1 interface has the IO Set Violation (ORANGE) status. This means that the signals selected
for SPI1 are not all contained in any of the pre-defined IO Sets. The pre-defined IO Sets are designed to screen out

combinations of signal selections that are not allowed to be used together. This status needs to be eliminated before arriving

at a final Pin Mux solution.

Pin Mux Utility v2.1 AM335x SPI1 IO Set Violation PI Grid.PNG


In the SPI1 interface view, the user has selected IO Set 1, then the user deselected SPI1_D0_MUX1 and instead

selected SPI1_D0_MUX0. There is no IO Set that uses both SPI1_D0_MUX0 and SPI1_D1_MUX1 at the same time.

The IO Set status text reads "IO Set Violation!" This status must be eliminated. This can be done by selecting one

of the pre-defined IO Sets.

Pin Mux Utility v2.1 AM335x SPI1 IO Set Violation.PNG


Interface Views without IO Set Support

With the AM335x device some interface views do not use IO Sets. This example is called the MISC interface. These signals have been separated out here because they are not subject to the rules about being connected to the same IO power voltages (as are all other signals in an MMCx interface).


PinMuxUtility NonIoSets-Misc-2.PNG

IO Cell Power Domain Checking (AM335x device only)

For AM335x, the GUI includes a column that displays the IO power supply domain name and voltage for each ball of the device.

At program startup, the user is prompted to select the package type and then the voltage that will be applied to the IO power

supply domains that support more than one voltage as shown below.


PinMuxUtility Voltages.PNG

IO Power Violation Status (AM335x device only)

In this example, the AM335x device is used and the 15 x 15 ZCZ package type is selected.

At program startup, you will be prompted for the package type and to specify the IO power

supply voltages. The voltages can be changed later by clicking the Change Voltages button

in the Main Window or it will automatically open when the package type drop-down is changed.

In this example, the IO power supplies are selected to use 1.8V for most of the IO power domains,

and to use 3.3V for the MMC IO power groups as shown below.


Pin Mux Utility v2.1 AM335x MMC0 IO Power.PNG


The Peripheral Interfaces grid indicates an IO Power Violation (BROWN) status

for the MMC0 interface.


Pin Mux Utility v2.1 AM335x MMC0 IO Power Violation PI Grid.PNG


In the MMC0 Interface View you can see in the IO Power column that only MMC0_DAT(3-0), MMC0_CLK and MMC0_CMD have their IO cells

supplied by VDDSHV4 (which user set to 3.3V). The remaining MMC0 signals are connected to 1.8V IO cell power. Selection of the MMC0_DAT(7-0)

signals has caused an IO Power Violation, because not all of the selected interface member signals are connected to the same IO power supply voltage.

(Using multiple IO Power domains is OK, as long as they are the same voltage.) In this example, MMC0 would be limited to operation with a 4-bit

data bus.


PinMuxUtility MMC0 IO Power Violation.PNG

Saving Results to Source Files

Click the "File > Save > Source > Linux" menu item to save results as C header files. File

save dialogs will open to speciy the file names for a device-dependent header file (default name: mux.h)

and a board-dependent header file (default name: pinmux.h).


Pin Mux Utility v1.0 AM37xx Save Device Header 3.PNG


Pin Mux Utility v1.0 AM37xx Save Board Header 4.PNG


Examples of the device-dependent and board-dependent header files are shown below.


Pin Mux Utility v1.0 AM37xx Device Header File 4.PNG

Pin Mux Utility v1.0 AM37xx Board Header File 4.PNG

Using the Generated Header Files (AM35x / AM37x / OMAP35x)

The generated header files are in the format used for the AM35x / AM37x / OMAP35x U-Boot source code.

For other supported devices, the source code provides a complete description of all settings but is not directly usable

as U-Boot source code.


For AM35x / AM37x / OMAP35x the generated pinmux settings may be used to customize the U-Boot source code.

Before rebuilding U-BOOT for your system, the following steps are neccessary:

1) Replace the mux.h header file with the mux.h output file from Pin Mux Utility

2) Copy the pinmux.h output file from Pin Mux Utility into the directory containing the evm.h file.

3) Modify the original evm.h file, commenting out or deleting the original section of code that

makes the pin mux programming macro calls.

4) Replace this code with #include "pinmux.h"

The following shows modificatios to the original evm.h file to include pinmux settings from a separate header file.


Pin Mux Utility v1.0 AM37xx Modified Board Header File.PNG


Locations for U-Boot Linux Source Files
Device TypeDevice-Dependent Header FileBoard-Dependent Header File
OMAP35xxinclude/asm-arm/arch-omap3/mux.h

board/ti/evm/evm.h

board/ti/evm/pinmux.h (new)

AM37xxinclude/asm-arm/arch-omap3/mux.h

board/ti/evm/evm.h

board/ti/evm/pinmux.h (new)

AM35xxinclude/asm-arm/arch-omap3/mux.h

board/ti/am3517evm/am3517evm.h

board/am3517evm/pinmux.h (new)


The original mux.h file includes register name defines for OMAP35xx, AM35xx and AM37xx. By setting the configuration

for the make utility, U-BOOT can be built for any of these platforms. However, the Pin Mux Utility generated mux.h file

will only contain register name defines for the device that was selected when Pin Mux Utility was run. So, U-BOOT can be

rebuilt for that selected device only.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值