IDT SMBus Interfaces
PES12T3G2 User Manual
5 - 8
January 28, 2013
Notes
The following I/O expander configuration sequence is issued by the PES12T3G2 to I/O expander four
(i.e., the one that contains link up and link activity status).
–
Write link up status for all ports to the lower eight I/O expander pins (i.e., I/O-0.0 through I/O-0.7)
to I/O expander register 2.
–
Write link activity status for all ports to the upper eight I/O expander pins (i.e., I/O-1.0 through I/O-
1.7) to I/O expander register 3.
–
Write value 0x0 to I/O expander register 4 (no inversion in IO-0)
–
Write value 0x0 to I/O expander register 5 (no inversion in IO-1)
–
Write the configuration value to select all outputs in the lower eight I/O expander bits (i.e., I/O-0.0
through I/O-0.7) to I/O expander register 6.
–
Write the configuration value to select all outputs in the upper eight I/O expander bits (i.e., I/O-1.0
through I/O-1.7) to I/O expander register 7.
While the I/O expander is enabled, the PES12T3G2 maintains the I/O bus expander signals and the
PES12T3G2 internal view of the hot-plug signals in a consistent state. This means that whenever that I/O
bus expander state and the PES12T3G2 internal view of the signal state differs, an SMBus transaction is
initiated by the PES12T3G2 to resolve the state conflict.
–
An example of an event that may lead to a state conflict is a Hot Reset. When a Hot Reset occurs,
one or more hot-plug register control fields may be re-initialized to its default value. When this
occurs, the internal PES12T3G2 state of the hot-plug signals is in conflict with the state of I/O
expander hot-plug output signals. In such a situation, the PES12T3G2 will initiate an SMBus
transaction to modify the state of the I/O expander hot-plug outputs.
Each I/O expander has an open drain interrupt output that is asserted when a pin configured as an input
changes state from the value previously read. Each interrupt output from an I/O expander should be
connected to the corresponding PES12T3G2 I/O expander interrupt input. Since the PES12T3G2 I/O
expander interrupt inputs are GPIO alternate functions, the corresponding GPIOs should be initialized
during configuration to operate in alternate function mode. See Chapter 4, General Purpose I/O.
Whenever the PES12T3G2 needs to change the state of an I/O expander signal output, a master
SMBus transaction is initiated to update the state of the I/O expander. This write operation causes the
corresponding I/O expander to change the state of its output(s). The PES12T3G2 will not update the state
of an I/O expander output more frequently than once every 40 milliseconds. This 40 millisecond time
interval is referred to as the I/O expander update period.
Whenever an input to the I/O expander changes state from the value previously read, the interrupt
output of the I/O expander is asserted. This causes the PES12T3G2 to issue a master SMBus transaction
to read the updated state of the I/O expander inputs. Regardless of the state of the interrupt output of the I/
O expander, the PES12T3G2 will not issue a master SMBus transaction to read the updated state of the I/O
expander inputs more frequently than once every 40 milliseconds (i.e., the I/O expander update period).
This delay in sampling may be used to eliminate external debounce circuitry.
The I/O expander interrupt request output is negated whenever the input values are read or when the
input pin changes state back to the value previously read. The PES12T3G2 ensures that I/O expander
transactions are initiated on the master SMBus in a fair manner. This guarantees that all I/O expanders
have equal service latencies. Any errors detected during I/O expander SMBus read or write transactions is
reflected in the status bits of the SMBus Status (SMBUSSTS) register.
The I/O Expander Interface (IOEXPINTF) register allows direct testing and debugging of the I/O
expander functionality. The Select (SEL) field in the IOEXPINTF register selects the I/O expander number
on which other fields in the register operate. The I/O Expander Data field in the IOEXPINTF register reflect
the current state, as viewed by the PES12T3G2, of the I/O expander inputs and outputs selected by the
SEL field.
Writing a one to the Reload I/O Expander Signals (RELOADIOEX) bit in the IOEXPINTF register causes
the PES12T3G2 to generate SMBus write and read transactions to the I/O expander number selected in the
SEL field. This results in the value of the IOEDATA field being updated to reflect the current state of the
corresponding I/O expander signals. This feature may be used to aid in debugging I/O expander operation.
Summary of Contents for 89HPES12T3G2
Page 10: ...IDT Table of Contents PES12T3G2 User Manual iv January 28 2013 Notes...
Page 12: ...IDT List of Tables PES12T3G2 User Manual vi January 28 2013 Notes...
Page 14: ...IDT List of Figures PES12T3G2 User Manual viii January 28 2013 Notes...
Page 18: ...IDT Register List PES12T3G2 User Manual xii January 28 2013 Notes...
Page 46: ...IDT Link Operation PES12T3G2 User Manual 3 10 January 28 2013 Notes...
Page 66: ...IDT SMBus Interfaces PES12T3G2 User Manual 5 18 January 28 2013 Notes...
Page 70: ...IDT Power Management PES12T3G2 User Manual 6 4 January 28 2013 Notes...
Page 138: ...IDT Configuration Registers PES12T3G2 User Manual 8 62 January 28 2013 Notes...