UM0306 Inter-integrated circuit (I2C) interface
341/519
A slave-only device can signal the host through SMBALERT that it wants to talk by setting
ALERT bit in I2C_CR1 register. The host processes the interrupt and simultaneously
accesses all SMBALERT devices through the Alert Response Address (known as ARA
having a value 0001 100X). Only the device(s) which pulled SMBALERT low will
acknowledge the Alert Response Address. This status is identified using SMBALERT Status
flag in I2C_SR1 register. The host performs a modified Receive Byte operation. The 7 bit
device address provided by the slave transmit device is placed in the 7 most significant bits
of the byte. The eighth bit can be a zero or one.
If more than one device pulls SMBALERT low, the highest priority (lowest address) device
will win communication rights via standard arbitration during the slave address transfer. After
acknowledging the slave address the device must disengage its SMBALERT pull-down. If
the host still sees SMBALERT low when the message transfer is complete, it knows to read
the ARA again.
A host which does not implement the SMBALERT signal may periodically access the ARA.
For more details on SMBus Alert mode, refer to SMBus specification ver. 2.0
(http://smbus.org/specs/).
Time-out error
There are differences in the timing specifications between I
2
C and SMBus.
SMBus defines a clock low time-out, TIMEOUT of 35 ms. Also SMBus specifies TLOW:
SEXT as the cumulative clock low extend time for a slave device. SMBus specifies TLOW:
MEXT as the cumulative clock low extend time for a master device. For more details on
these time-outs, refer to SMBus specification ver. 2.0 (http://smbus.org/specs/).
The status flag Timeout or Tlow Error in I2C_SR1 shows the status of this feature.
How to use the interface in SMBus mode
To switch from I
2
C mode to SMBus mode, the following sequence should be performed.
● Set the SMBus bit in the I2C_CR1 register
● Configure the SMBTYPE and ENARP bits in the I2C_CR1 register as required for the
application
If you want to configure the device as a master, follow the Start condition generation
procedure in Section 15.4.2: I2C master mode. Otherwise, follow the sequence in
Section 15.4.1: I2C slave mode.
The application has to control the various SMBus protocols by software.
● SMB Device Default Address acknowledged if ENARP=1 and SMBTYPE=0
● SMB Host Header acknowledged if ENARP=1 and SMBTYPE=1
● SMB Alert Response Address acknowledged if SMBALERT=1
15.4.6 DMA requests
DMA requests (when enabled) are generated only for data transfer. DMA requests are
generated by Data Register becoming empty in transmission and Data Register becoming
full in reception. When the number of data transfers which has been programmed for the