SLAZ759 December   2024 MSPM0L1117

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Functional Advisories
  5. 2Preprogrammed Software Advisories
  6. 3Debug Only Advisories
  7. 4Fixed by Compiler Advisories
  8. 5Device Nomenclature
  9. 6Advisory Descriptions
    1. 6.1  ADC_ERR_05
    2. 6.2  GPIO_ERR_03
    3. 6.3  I2C_ERR_05
    4. 6.4  I2C_ERR_06
    5. 6.5  PMCU_ERR_07
    6. 6.6  PMCU_ERR_10
    7. 6.7  SPI_ERR_04
    8. 6.8  SPI_ERR_05
    9. 6.9  SYSOSC_ERR_01
    10. 6.10 SYSOSC_ERR_02
    11. 6.11 TIMER_ERR_04
    12. 6.12 TIMER_ERR_06
    13. 6.13 VREF_ERR_03
  10. 7Revision History

I2C_ERR_06

I2C Module

Category

Functional

Function

SMBus High timeout feature fails at I2C clock less than 24KHz onwards

Description

SMBus High timeout feature is failing at I2C clock rate less than 24KHz onwards (20KHz, 10KHz). From SMBUS Spec, the upper limit on SCL high time during active transaction is 50us. Total time taken from writing of START MMR bit to SCL low is 60us, which is >50us. It will trigger the timeout event and let I2C Master goes into IDLE without completing the transaction at the start of transfer itself. Below is detailed explanation. For SCL is configured as 20KHz, SCL low and high period is 30us and 20us respectively. First, START MMR bit write at the same time high timeout counter starts decrementing. Then, it takes one SCL low period (30us) from START MMR bit write to SDA goes low (start condition). Next, it takes another SCL low period (30us) from SDA goes low (start condition) to SCL goes low (data transfer starts) which should stop the high timeout counter at this point. As a total, it takes 60us from counter start to end. However, due to the upper limit(50us) of the high timeout counter, the timeout event will still be triggered although the I2C transaction is working fine without issue.

Workaround

Do not use SMBus High timeout feature when I2C clock less than 24KHz onwards.