11 years, 4 months ago.  This question has been closed. Reason: wrong forum

FRDM-KL25Z I2C rate

Elsewhere on the forums /questions/802/Problem-with-I2C-read-commands/, someone pointed out a problem with the FRDM I2C implementation, and problems when the rate is > 1KHz. In a blog post MCU on Eclipse it was identified as a hardware bug where I2C only works correctly when the clock prescaler is set to anything other than 1.

There is also an errata on the freescale website, http://cache.freescale.com/files/microcontrollers/doc/errata/KINETIS_L_2N97F.pdf?fpsp=1 :

Quote:

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

Errata type: Errata

Description: If the I2Cx_F[MULT] field is written with a non-zero value, then a repeat start cannot be generated

Workaround: There are two possible workarounds:

1) Configure I2Cx_F[MULT] to zero if a repeat start has to be generated.

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

Is it possible to get a workaround into the MBED library?