Que tal Compañero Dominus
Lo de la direccion esta correcto, me refiero a que el esclavo deberia mandar un Ack cuando la direccion enviada por el maestro coincide con la suya, y no lo hace con la direccion 0x99, porque?, desconozco, la he cambiado a 0x50, y ahora si me envia el ack de que reconoce que es a el al que se le habla
despues de eso, seguia sin obtener ese bit de ack cuando enviaba datos, es decir, enviada direccion y respondia ACK, seguido de ello, mandaba un dato, y obtenia un NACK, entonces, hice lo que dices, pongo el i2c_read() despues de obtener estate ==0, pero seguia igual, reconocia la direccion pero no el dato.
de tantos post que he leido, recorde un compañero que mencionaba que el tuvo que probar con diferentes frecuencias en el slave, hasta donde observo que no tenia problemas, yo creo que se debe al timing que el protocolo debe tener asi que lo e intentado y al parecer, al menos en la simulacion, ahora si responde en ambos casos, direccion y dato, la he cambiado de 4Mhz a 8Mhz y como veras en la imagen, ya se ven los bits de ACK
Aun me falta probar en fisico, como te comente, no soy muy fan de proteus aunque hoy me ha sido de mucha ayuda
cuando tenga resultados del funcionamiento en fisico te comento.
Saludos y mil gracias por la ayuda