AnsweredAssumed Answered

Errata for mask 1N96F clarification (I2C repeated start)

Question asked by Jan Rychter on Jun 16, 2014
Latest reply on Jun 19, 2014 by Jan Rychter

Errata document for mask 1N96F states:


e6070: I2C: Repeat start cannot be generated if the I2Cx_F[MULT] field is set to a non- zero value


The following workaround is proposed:


2) Temporarily set I2Cx_F [MULT] to zero immediately before setting the Repeat START bit in the I2C C1 register (I2Cx_C1[RSTA]=1) and restore the I2Cx_F [MULT] field to the original value after the repeated start has occurred


What does "after the repeated start has occurred" mean? Does this mean I can restore I2Cx_F[MULT] field immediately after I write 1 to RSTA?


In other words, is the following code OK?


          f_register = I2C_F_REG(i2c_base_ptr);

          I2C_F_REG(i2c_base_ptr) = (f_register & 0x3f);

          I2C_C1_REG(i2c_base_ptr) |= I2C_C1_RSTA_MASK;

          I2C_F_REG(i2c_base_ptr) = f_register;