Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
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?