AVR TWI / I2C no responde [cerrado]

0

Uso el módulo Twi de AVR Atmega168 para hablar con DS1307 .

Twi funciona en el modo de interrupción.

Funciona bien durante unas pocas horas y luego se detiene, con la esperanza de perder Twi más interrupciones.

¿Hay alguna forma de solucionar / resolver / solucionar este problema?

Cualquier consejo práctico sería de gran ayuda.

    
pregunta Babu James

1 respuesta

2

Puede que ya sea irrelevante para ti, pero podría ayudar a otros, estaba experimentando el mismo problema, en la hoja de datos se indica lo siguiente:

  

Para recuperarse de un error de bus, el Indicador TWSTO debe establecerse y TWINT debe borrarse escribiéndole una lógica. Esto hace que el TWI ingrese en el modo esclavo no direccionado y borre el indicador TWSTO (no se ve afectado ningún otro bit en TWCR). Las líneas SDA y SCL se liberan y no se transmite ninguna condición de DETENCIÓN.

Así que acabo de agregar la siguiente línea de código a mi rutina de manejo de errores (verificar los valores de TWSR):

TWCR = (1 << TWINT)|(1 << TWSTO);

Y hasta ahora funciona como un encanto.

    
respondido por el Marm

Lea otras preguntas en las etiquetas