GD32A50x User Manual
528
Configuration and Power Management Interface (abbreviated to ACPI) specifications.
Address resolution protocol
The SMBus uses I2C hardware and I2C hardware addressing, but adds second-level
software for building special systems. Additionally, its specifications include an Address
Resolution Protocol that can make dynamic address allocations. Dynamic reconfiguration of
the hardware and software allow bus devices to be ‘hot-plugged’ and used immediately,
without restarting the system. The devices are recognized automatically and assigned unique
addresses. This advantage results in a plug-and-play user interface. In this protocol there is
a very useful distinction between a system host and all the other devices in the system, that
is the host provides address assignment function.
SMBus slave byte control
The slave byte control of SMBus receiver is the same as I2C. It allows the ACK control of
each byte.The Slave Byte Control mode must be enabled by setting SBCTL bit in I2C_CTL0
register.
Host Notify protocol
When the SMBHAEN bit in the I2C_CTL0 register is set, the SMBus supports the host notify
protocol. In this protocol, the device acts as a master and the host as a slave, and the host
will acknowledge the SMBus host address.
Time-out feature
SMBus has a time-out feature which resets devices if a communication takes too long. This
explains the minimum clock frequency of 10 kHz to prevent locking up the bus. I2C can be a
‘DC’ bus, meaning that a slave device stretches the master clock when performing some
routine while the master is accessing it. This will notify to the master that the slave is busy but
does not want to lose the communication. The slave device will allow continuation after its
task is completed. There is no limit in the I2C bus protocol as to how long this delay can be,
whereas for a SMBus system, it would be limited to 25~35ms. SMBus protocol just assumes
that if something takes too long, then it means that there is a problem on the bus and that all
devices must reset in order to clear this mode. Slave devices are not allowed to hold the clock
low too long.
The timeout detection can be enabled by setting TOEN and EXTOEN bits in the
I2C_TIMEOUT register. The timer must be configured to guarantee that the timeout detected
before the maximum time given in the SMBus specification.
The value programmed in BUSTOA[11:0] is used to check the t
TIMEOUT
parameter. To detect
the SCL low level timeout, the TOIDLE bit must be 0. And the timer can be enabled by setting
the TOEN bit in the I2C_TIMEOUT register, after the TOEN bit is set, the BUSTOA[11:0] and
the TOIDLE bit cannot be changed. If the low level time of SCL is greater than