Problema con la comunicación I2C EEPROM

4

Tengo una MCU STM32L conectada a M24LR64E, una EEPROM I2C. Anteriormente tenía esta configuración funcionando pero luego cambié algunas cosas (diseño, firmware) y de alguna manera me atornillé el I2C y no está funcionando ahora.

Lo estoy usando con el modo I2C_DutyCycle_2 a 100 kHz, 4,7 k pull-up en ambas líneas SDA y SCL. Todo en el tablero está funcionando a 3.3v. A continuación se muestra una captura de ambas líneas SCL / SDA en mi alcance, lamentablemente no tengo un analizador lógico para jugar.

La mayoría de las tomas I2C que he encontrado en Google parecen muy buenas con señales cuadradas de subida / caída, y las mías se ven muy diferentes.

¿Alguna sugerencia? ¿La imagen adjunta se ve bien para un bus I2C?

Muchas gracias.

    
pregunta kR105

1 respuesta

2

Corregido. Gracias a Oli Glaser , arreglé la rutina de configuración del reloj y el alcance de las capturas ahora se ve muy bien, pero el problema principal (MCU que no lee la EEPROM) persistió. Después de horas y horas de depuración, prueba / error, hojas de datos, erratas, foros, etc., encontré que de alguna manera cambié la DIRECCIÓN DE DISPOSITIVO ESCLAVO en mi código, por lo que la EEPROM no estaba respondiendo porque no la estaba llamando correctamente.

Para cualquier lector futuro, la dirección del dispositivo de 7 bits para este dispositivo debe ser 0x53 o 1010011b (No olvide el desplazamiento correcto a la izquierda y configure el bit de lectura / escritura para obtener el byte completo).

Gracias por toda la ayuda y como se esperaba, ¡aprendí MUCHO de este problema!

    
respondido por el kR105

Lea otras preguntas en las etiquetas