Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 27 de Febrero de 2017, 11:14:04
Título: Leer EEPROM externa en XC8
Publicado por: micro_pepe en 27 de Febrero de 2017, 11:14:04
Estoy intentando leer una eeprom externa 24LC16, no lo consigo, el bus i2c funciona correctamente pues con ese mismo micro controlo un LCD via i2c y un procesador de audio.
Previamente a la memoria le he grabado las tres primeras posiciones con un programador, con el leo y grabo bien, por lo tanto la memoria estará bien; pero al debugear y visualizar esas variables tienen todas el valor de la posicion 1 o la 2.
No sé que puede estar mal.
Gracias, un saludo!!!
Título: Re:Leer EEPROM externa en XC8
Publicado por: KILLERJC en 27 de Febrero de 2017, 12:25:32
Segun lo leido del datasheet. El protocolo para grabar no es:
En tu codigo le falta el stop, supuestamente el STOP es el que hace que se grabe.
Citar
The 24LC16B acknowledges again and the master generates a Stop condition. This initiates the internal write cycle and, during this time, the 24LC16B will not generate Acknowledge signals
En tu codigo le faltaria el dato.
Luego tambien tenes que para leer de forma Random tenes que hacer:
Esto al menos en el primer dato, luego si son secuenciales podes seguir enviando AK porque ya sabes donde esta la direccion de memoria y seguirias leyendo de forma secuencial. Ejemplo leer 2 de forma Random