SMBus Timing Control
The SDD field in the SMBus Timing Control register is used to delay the recognition of the falling edge of the SDA signal. This feature
should be applied in cases where a data bit transition occurs close to the SCL falling edge that may cause a false START detection
when there is a significant mismatch between the impedance or capacitance on the SDA and SCL lines. This feature should also be
applied to improve the recognition of the repeated START bit when the SCL bus capacitance is very high. These kinds of events are not
expected in a standard SMBus- or I2C-compliant system.
Note:
In most systems this parameter should not be adjusted, and it is recommended that it be left at its default value.
The SDD field can be used to delay the recognition of the SDA falling edge by the SMBus hardware by 2, 4, or 8 SYSCLKs.
SMBus Control Register
SMB0CN0 is used to control the interface and to provide status information. The higher four bits of SMB0CN0 (MASTER, TXMODE,
STA, and STO) form a status vector that can be used to jump to service routines. MASTER indicates whether a device is the master or
slave during the current transfer. TXMODE indicates whether the device is transmitting or receiving data for the current byte.
STA and STO indicate that a START and/or STOP has been detected or generated since the last SMBus interrupt. STA and STO are
also used to generate START and STOP conditions when operating as a master. Writing a 1 to STA will cause the SMBus interface to
enter Master Mode and generate a START when the bus becomes free (STA is not cleared by hardware after the START is generated).
Writing a 1 to STO while in Master Mode will cause the interface to generate a STOP and end the current transfer after the next ACK
cycle. If STO and STA are both set (while in Master Mode), a STOP followed by a START will be generated.
The ARBLOST bit indicates that the interface has lost an arbitration. This may occur anytime the interface is transmitting (master or
slave). A lost arbitration while operating as a slave indicates a bus error condition. ARBLOST is cleared by hardware each time SI is
cleared.
The SI bit (SMBus Interrupt Flag) is set at the beginning and end of each transfer, after each byte frame, or when an arbitration is lost.
Note:
The SMBus interface is stalled while SI is set; if SCL is held low at this time, the bus is stalled until software clears SI.
EFM8UB3 Reference Manual
System Management Bus / I2C (SMB0)
silabs.com
| Building a more connected world.
Rev. 0.2 | 237