EasyManuals Logo

STMicroelectronics STM32F05 series User Manual

STMicroelectronics STM32F05 series
742 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #505 background imageLoading...
Page #505 background image
RM0091 Inter-integrated circuit (I
2
C) interface
Doc ID 018940 Rev 1 505/742
Timeout detection
The timeout detection is enabled by setting the TIMOUTEN and TEXTEN bits in the
I2Cx_TIMEOUTR register. The timers must be programmed in such a way that they detect a
timeout before the maximum time given in the SMBus specification ver. 2.0.
t
TIMEOUT
check
In order to enable the t
TIMEOUT
check, the 12-bit TIMEOUTA[11:0] bits must be
programmed with the timer reload value in order to check the t
TIMEOUT
parameter. The
TIDLE bit must be configured to ‘0’ in order to detect the SCL low level timeout.
Then the timer is enabled by setting the TIMOUTEN in the I2Cx_TIMEOUTR register.
If SCL is tied low for a time greater than (TIMEOUTA+1) x 2048 x t
I2CCLK
, the TIMEOUT
flag is set in the I2Cx_ISR register.
Refer to Table 72: Examples of TIMEOUTA settings for various I2CCLK frequencies
Caution: Changing the TIMEOUTA[11:0] bits and TIDLE bit configuration is not allowed when the
TIMEOUTEN bit is set.
t
LOW:SEXT
and t
LOW:MEXT
check
Depending on if the peripheral is configured as a master or as a slave, The 12-bit
TIMEOUTB timer must be configured in order to check t
LOW:SEXT
for a slave and
t
LOW:MEXT
for a master. As the standard specifies only a maximum, you can choose the
same value for the both.
Then the timer is enabled by setting the TEXTEN bit in the I2Cx_TIMEOUTR register.
If the SMBus peripheral performs a cumulative SCL stretch for a time greater than
(TIMEOUTB+1) x 2048 x t
I2CCLK
, and in the timeout interval described in Bus idle
detection on page 503 section, the TIMEOUT flag is set in the I2Cx_ISR register.
Refer to Table 73: Examples of TIMEOUTB settings for various I2CCLK frequencies
Caution: Changing the TIMEOUTB configuration is not allowed when the TEXTEN bit is set.
Bus Idle detection
In order to enable the t
IDLE
check, the 12-bit TIMEOUTA[11:0] field must be
programmed with the timer reload value in order to obtain the t
IDLE
parameter. The
TIDLE bit must be configured to ‘1 in order to detect both SCL and SDA high level
timeout.
Then the timer is enabled by setting the TIMOUTEN bit in the I2Cx_TIMEOUTR
register.
If both the SCL and SDA lines remain high for a time greater than (TIMEOUTA+1) x 4 x
t
I2CCLK
, the TIMEOUT flag is set in the I2Cx_ISR register.
Refer to Table 74: Examples of TIMEOUTA settings for various I2CCLK frequencies
Caution: Changing the TIMEOUTA and TIDLE configuration is not allowed when the TIMEOUTEN is
set.
23.4.13 SMBus: I2Cx_TIMEOUTR register configuration examples
This section is relevant only when SMBus feature is supported. Please refer to Section 23.3:
I2C implementation.
Configuring the maximum duration of t
TIMEOUT
to 25 ms:

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the STMicroelectronics STM32F05 series and is the answer not in the manual?

STMicroelectronics STM32F05 series Specifications

General IconGeneral
BrandSTMicroelectronics
ModelSTM32F05 series
CategoryMicrocontrollers
LanguageEnglish

Related product manuals