AT32F421
Series Reference Manual
2022.11.11
Page 121
Rev 2.02
11.4.4 SMBus
The System Management Bus (SMBus) is a two-wire interface through which various devices can
communicate with each other. It is based on I
2
C. With SMBus, the device can provide manufacturer
information, tell the system its model/part number, report different types of errors and accept control
parameters and so on. For more information, refer to SMBus 2.0 protocol.
Differences between SMBus and I
2
C
1.
SMBus requires a minimum speed of 10 kHz for the purpose of management and monitor. It is
quite easy to know whether the bus is in Idle state or not as long as a parameter is input while
running on a certain transmission speed, without the need of detecting the STOP signals one after
another, or even keeping STOP and other parameter monitor. There is no limit for I
2
C.
2.
SMBus transmission speed ranges from 10 kHz to 100 kHz. In contrast, I2C has no minimum
requirement, and its maximum speed varies from one mode to another, namely, 100 kHz in
standard mode and 400 kHz in fast mode.
3.
After reset, SMBus needs timeout (35ms), but there is no limit for I
2
C in this regard.
SMBus applications
1.
The I
2
C interface is set in SMBus mode by setting PERMODE=1 in the I2C_CTRL1 register
.
2.
Select SMBus mode:
SMBMODE=1: SMBus host
SMBMODE=0: SMBus device
3.
Other configurations are the same as those of
I
2
C.
SMBus protocols are implemented by the user software, while
I
2
C interface only provide the address
identification of these protocols.
SMBus address resolution protocol (ARP)
SMBus address conflicts can be resolved by dynamically assigning a new unique address to each device.
Refer to SMBus 2.0 protocol for more information about ARP.
Setting the
ARPEN bit can enable the
I
2
C interface to recognize the default device address
(
0b1100001x
). However, unique device identifier (UDID) and the detailed protocol implementation
should be handled by software.
SMBus host notify protocol
The slave device can send data to the master device through SMBus host notify protocol. For example,
the slave can notify the host to implement ARP with this protocol. Refer to SMBus 2.0 protocol for details
on SMBus host notify protocol.
When the ARP mode is enabled (
ARPEN=1
) in host mode (
SMBMODE=1
), the I
2
C interface is enabled
to recognize the
0b0001000x (default host address)
SMBus Alert
SMBALERT is an optional signal that connects the ALERT pin between the host and the salve. With this
signal, the slave notifies the host to access the slave. SMBALERT is a wired-AND signal. For more
information about SMBus Alert, refer to SMBus2.0 protocol.
The detailed sequences are as follows:
SMBus host:
1.
Enable SMBus Alert mode by setting SMBALERT=1
2.
Enable ALERT interrupt if necessary
3.
When an alert event occurs on the ALERT pin (ALERT pin changes from high to low)
4.
The host will generate ALERT interrupt if enabled
5.
The host then processes the interrupt and accesses to all devices through ARA (Alert Response
Address 0001100x) so as to get the slave addresses. Only the devices with pulled-down
SMBALERT can acknowledge ARA.
6.
The host then continues to operate based on the slave addresses available.
SMBus slave: