AT32WB415
Series Reference Manual
2022.04.13
Page 125
Ver 2.00
5.
Configure other parameters such as priority, memory data width, peripheral data width,
interrupts, etc in the DMA_CHCTRL register
6.
Enable the DMA channel by setting CHEN=1 in the DMA_CxCTRL register
7.
Enable
I
2
C
DMA request by setting DMAEN=1 in the
I2C_CTRL2 register. Once the RDBE
bit in the
I2C_STS1 register is set, the data is loaded from the
I2C_DT register
to the
programmed memory
through DMA
8.
When the number of data transfers, programmed in the DMA controller, is reached
(DMA_CxDTCNT=0), the data transfer is complete (An interrupt is generated if enabled).
9.
Master receiver: Clear the ACKFAIL flag, the STOP condition is generated, indicating that the
transfer is complete (when the number of bytes to be transferred is greater >=2 and
DMAEND=1, the NACK signal is generated automatically after transfer complete
(DMA_CxDTCNT=0))
Slave receiver: Once the STOPF flag is set, clear the STOPF flag, and the transfer is complete.
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 uique 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)