Estoy publicando el Código aquí:
//***************************************************
void main(void)
{ TRISCbits.TRISC2=0;// configures it as Output
OpenI2C(MASTER, SLEW_ON); // Initialize I2C module
SSPADD = 9; //400kHz Baud clock(9) @16MHz
//100kHz Baud clock(39) @16MHz
EEByteWrite(0xA0, 0x30, 0xA5);
PORTCbits.RC2=1;
}
Resulta que quemo este código que encontré en la nota de la aplicación I2c y traté de transferir el código a PIC18f. Bueno cuando quemé el código. El SDA y el SCL muestran pulsos con 8 bits vistos en SCL con la ayuda del osciloscopio. Por lo tanto, la transmisión se supone que debe finalizar después de una función de escritura de bytes, pero muestra los impulsos en ambos pines, incluso después de obtener la escritura de bytes. La función está hecha.
Bueno, ya que de lo que aprendí, I2cBus debe estar inactivo después de escribir bytes. Bueno, verifiqué si el ACKSTAT (ESTADO DE RECONOCIMIENTO ESTÁ RECIBIR) y lo encontré recibiendo del esclavo, que es un chip eeprom.
¿Por qué ocurre este extraño comportamiento en el I2C? ¿O es que no es tan claro en los conceptos de I2c?