We are having some detail questions regarding Kinetis 10 MCU's I2C controller, registers and its capability.
We are using MK10DN512VLQ10 and MQX OS 4.0 with Interrupt Based I2C driver provided by the OS.
Basically, we are having some noise on the I2C bus and want to recover/reset from abnormal I2C error conditions.
According to the Chapter 45 of the K10P144M100SF2V2RM, there are I2C0_SMB & I2C1_SMB registers to detect conditions of SCL and SDA states. But, the reference manual are somewhat confusing and we are not 100% sure how to use those registers to detect I2C error conditions. Belows are the list of the question I have:
(1) Is there any way to reset only the I2C controller modules without resetting the whole K10 ?
(2) How can we use the I2Cx_SMB ?
a. SLTF -> Is this for I2C master mode, slave mode or both ? What is the "LoValue" ? Is this for SLTL counter loaded with I2C bus clock frequency counter ?
b. SHTF2 -> Is this for the condition that the I2C slave is holding the SDA ? I2C slave mode/master mode ?
c. What value do we have to load into I2Cx_SLTH and I2Cx_SLTL ?
d. How the glitch filter is operating I2Cx_FLT ?
d. Is there any application note or sample code that shows how to use the I2C SMB capabilities and glitch filter ?
Any help would be greatly appreciated!