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 arruiné el I2C y ahora no funciona.
Lo estoy usando con el modo I2C_DutyCycle_2 a 100 khz, 4,7 k pull-up en las líneas SDA y SCL. Todo en el tablero está funcionando a 3.3v. A continuación se muestra una toma de ambas líneas SCL/SDA en mi alcance, lamentablemente no tengo un analizador lógico con el que jugar.
La mayoría de las tomas I2C que he encontrado en Google parecen muy 'agradables' con señales cuadradas de subida/bajada, y la mía se ve muy diferente.
¿Alguna sugerencia? ¿La imagen adjunta se ve bien para un bus I2C?
Muchas gracias.
Fijado. Gracias a Oli Glaser , arreglé la rutina de configuración del reloj y las capturas de alcance se ven muy bien ahora, pero el problema principal (MCU no lee la EEPROM) persistió. Después de horas y horas de depuración, prueba/error, hojas de datos, erratas, foros, etc., descubrí que de alguna manera cambié la DIRECCIÓN DEL DISPOSITIVO ESCLAVO en mi código, ¡así que la EEPROM no respondía porque no la estaba llamando correctamente!
Para cualquier futuro lector, la dirección del dispositivo de 7 bits para este dispositivo debe ser 0x53 o 1010011b (no olvide el desplazamiento a la izquierda adecuado y configure el bit de lectura/escritura para obtener el byte completo).
Gracias por toda la ayuda y, como era de esperar, ¡aprendí MUCHO de este problema!
Oli Glaser
kR105
kR105
kR105
Oli Glaser
Espina
kR105