USB 2.0 High-Speed 4-Port Hub Controller

Datasheet

4.4SMBus Slave Interface

Instead of loading User-Defined Descriptor data from an external EEPROM, the SMSC Hub can be configured to receive a code load from an external processor via an SMBus interface. The SMBus interface shares the same pins as the EEPROM interface; if CFG_SEL1 & CFG_SEL0 activates the SMBus interface, external EEPROM support is no longer available (and the user-defined descriptor data must be downloaded via the SMBus). Due to system issues, the SMSC Hub waits indefinitely for the SMBus code load to complete and only “appears” as a newly connected device on USB after the code load is complete.

The Hub’s SMBus implementation is a subset of the SMBus interface to the host. The device is a slave-onlySMBus device. The implementation in the device is a subset of SMBus since it only supports two protocols.

The Write Block and Read Block protocols are the only valid SMBus protocols for the Hub. The Hub responds to other protocols as described in Section 4.4.2, "Invalid Protocol Response Behavior," on page 36. Reference the System Management Bus Specification, Rev 1.0.

The SMBus interface is used to read and write the registers in the device. The register set is shown in Section 4.3.1, "Internal Register Set (Common to EEPROM and SMBus)," on page 19.

4.4.1Bus Protocols

Typical Write Block and Read Block protocols are shown below. Register accesses are performed using 7-bit slave addressing, an 8-bit register address field, and an 8-bit data field. The shading indicates the Hub driving data on the SMBDATA line; otherwise, host data is on the SDA/SMBDATA line.

The slave address is the unique SMBus Interface Address for the Hub that identifies it on SMBus. The register address field is the internal address of the register to be accessed. The register data field is the data that the host is attempting to write to the register or the contents of the register that the host is attempting to read.

Note: Data bytes are transferred MSB first (msb first).

4.4.1.1Block Read/Write

The Block Write begins with a slave address and a write condition. After the command code, the host issues a byte count which describes how many more bytes will follow in the message. If a slave had 20 bytes to send, the first byte would be the number 20 (14h), followed by the 20 bytes of data. The byte count may not be 0. A Block Read or Write is allowed to transfer a maximum of 32 data bytes.

Note: For the following SMBus tables:

 

 

 

 

 

Denotes Master-to-Slave

 

Denotes Slave-to-Master

 

 

 

1

 

 

7

 

 

1

 

1

 

 

 

8

 

 

 

1

 

 

 

 

 

 

 

S

 

Slave Address

Wr

 

A

 

 

Register Address

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

1

 

 

8

 

1

8

 

 

1

 

 

 

8

1

 

1

 

Byte Count = N

 

 

 

Data byte 1

 

 

 

 

Data byte 2

 

 

 

 

 

 

 

Data byte N

 

 

P

 

 

A

 

 

 

A

 

 

A

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Block Write
Figure 4.1 Block Write

SMSC USB2514

35

Revision 1.98 (11-19-07)

 

DATASHEET