NH82801HEM S LA5R Intel, NH82801HEM S LA5R Datasheet - Page 227

no-image

NH82801HEM S LA5R

Manufacturer Part Number
NH82801HEM S LA5R
Description
Manufacturer
Intel
Datasheet

Specifications of NH82801HEM S LA5R

Lead Free Status / RoHS Status
Compliant
Functional Description
Note:
Note:
Note:
Intel
®
ICH8 Family Datasheet
When programmed for the read byte/word command, the Transmit Slave Address and
Device Command Registers are sent. Data is received into the DATA0 on the read byte,
and the DAT0 and DATA1 registers on the read word. See Section 5.5.5 of the System
Management Bus (SMBus) Specification, Version 2.0 for the format of the protocol.
Process Call
The process call is so named because a command sends data and waits for the slave to
return a value dependent on that data. The protocol is simply a Write Word followed by
a Read Word, but without a second command or stop condition.
When programmed for the Process Call command, the ICH8 transmits the Transmit
Slave Address, Host Command, DATA0 and DATA1 registers. Data received from the
device is stored in the DATA0 and DATA1 registers. The Process Call command with
I2C_EN set and the PEC_EN bit set produces undefined results. Software must force
either I2C_EN or PEC_EN to 0 when running this command. See Section 5.5.6 of the
System Management Bus (SMBus) Specification, Version 2.0 for the format of the
protocol.
For process call command, the value written into bit 0 of the Transmit Slave Address
Register (SMB I/O register, offset 04h) needs to be 0.
If the I2C_EN bit is set, the protocol sequence changes slightly: the Command Code
(bits 18:11 in the bit sequence) are not sent - as a result, the slave will not
acknowledge (bit 19 in the sequence).
Block Read/Write
The ICH8 contains a 32-byte buffer for read and write data which can be enabled by
setting bit 1 of the Auxiliary Control register at offset 0Dh in I/O space, as opposed to a
single byte of buffering. This 32-byte buffer is filled with write data before
transmission, and filled with read data on reception. In the ICH8, the interrupt is
generated only after a transmission or reception of 32 bytes, or when the entire byte
count has been transmitted/received.
The byte count field is transmitted but ignored by the ICH8 as software will end the
transfer after all bytes it cares about have been sent or received.
For a Block Write, software must either force the I2C_EN bit or both the PEC_EN and
AAC bits to 0 when running this command.
The block write begins with a slave address and a write condition. After the command
code the ICH8 issues a byte count describing 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 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.
When programmed for a block write command, the Transmit Slave Address, Device
Command, and Data0 (count) registers are sent. Data is then sent from the Block Data
Byte register; the total data sent being the value stored in the Data0 Register. On block
read commands, the first byte received is stored in the Data0 register, and the
remaining bytes are stored in the Block Data Byte register. See Section 5.5.7 of the
System Management Bus (SMBus) Specification, Version 2.0 for the format of the
protocol.
For Block Write, if the I2C_EN bit is set, the format of the command changes slightly.
The ICH8 will still send the number of bytes (on writes) or receive the number of bytes
(on reads) indicated in the DATA0 register. However, it will not send the contents of the
DATA0 register as part of the message. Also, the Block Write protocol sequence
227

Related parts for NH82801HEM S LA5R