I have a project I am working on that is using I2C communication and when I send a "RESET" command the SDA line gets held low. If another command is sent after this point the "RESET" command and the next subsequent command become one long command. I know that the issue is because when I send the RESET command the stop bit for I2C is not being sent. I have read online that a way to fix this issue is to toggle clock a number of times, but this does not work for my application.
Example of command (seen using Aardvark to monitor I2C lines)
[S] <21:w> 52 45 53 45 54 40 21 DF [P]
The 52 45 53 45 54 part is RESET in hex and the 21 DF is a read command.
If I send the same RESET command directly from the Aardvark it works fine, and the RESET command when sent normally occasionally works(<10% success).
Any suggestions as to how I can free the I2C SDA line without a power cycle?