Hola a todos y muchas gracias por leer esta consulta.
Estoy en un proyecto desde hace tiempo y ahora que lo tengo mas o menos funcionando me surge un problema con el puerto I2C en un arduino UNO.
Lo utilizo para dos PCF8574, y el caso es que despues de un tioempo (variable); deja de comunicar con ellos y revisando las lineas con el anallizador lolgico, veo que la linea SCL queda a nivel alto y no genera los pulsos de reloj. La trama de datos (SDA) tampoco la genera, pero esa linea esta a nivel bajo.
El micro no esta bloqueado, ya que la comunicacion a traves del puerto seria es correcta y responde perfectamente a las solicitudes que le llegan, pero el bus I2C queda muerto.
He leido algo como esto que sucede con los DS1307, pero no he encontrado una solucion.
Habeis tenido alguna vez este tipo de problemas?.
Muchas gracias anticipadas y .....felices fiestas a todos.
No he puesto el codigo antes, ya que he estado haciendo una prueba con una libreria TWI.C que encontre en otro foro , ya que comentaban el mismo problema aunque era con otros dispositivos I2C.
El sintoma era el mismo, se queda la linea SCL en 1 y la linea SDA en 0, no respondiendo el bus a las solicitudes de escritura ni lectura, aunque no se bloquea el micro, sigue ejecutando el programa y atencdiendo y respondiendo al puerto serie y demas. La solución la encontraron forzando el reinicio del bus pero antes poniendo el registro TWCR a 0.
He probado la libreria y de momento no ha vuelto a fallar, espero que esa sea la solucion.
Lo dicho, muchas gracias por el intereis y la ayuda que prestais a la gente cuando tenemos alguna duda.