Hello.
I am developing product using DRV10987D.
Sometimes, I found that I2C's communication was not working.
As a result of checking through the oscilloscope, one of the communication lines (SDA, SCL) of the I2C is maintained as LOW.
As a result, the motor is turned on because the SPEED PIN is HIGH. (Regardless of my will).
Perhaps due to the PowerOnReset of drv10987, the override bit is assumed to be 0, so it is motor driven according to the voltage level of SPEED PIN.
In order to overcome this, I want to reproduce the situation where communication is impossible first. (Maybe DRV10987 IC keeps SDA or SCL line to LOW.)
How can I reproduce the above situation?
And to overcome this, the code I wrote is as follows.
1. I2C_PORT_INIT // Set Micom's SCL,SDA Port As GPIO
2. I2C_PORT_SET_BOTH_LOW, //Set both port Output Low (maintain 1ms)
3. I2C_PORT_SET_SCL_HIGH, //Set SCL high and hold (maintain 1ms)
4. I2C_PORT_SET_SDA_HIGH, //Set SDA high and hold (maintain 1ms)
5. I2C_PORT_SET_AS_FUNC, //Set Micom's SCL,SDA Port As I2C ALT Function
6. I2C_PORT_RESET_FINISH
Is anything wrong?
I'm sorry about my many questions.
Thanks