No puedo comunicarme con mi RTC (PCF8563). Estoy intentando comunicarme con él utilizando un PIC16F876 sobre el bus I2C. El código de abajo es todo lo que estoy haciendo en mi main (). No puedo recibir un ACK del RTC. Por alguna razón, cuando configuro SSPADD se crea una condición adicional de INICIO que está eliminando todo. Estoy seguro de que es el SSPADD, como lo demuestra un paso a paso y su eliminación. ¿Alguien puede explicar esto? Tengo, al enviar dos condiciones de inicio, hice que se detuviera y reconociera la dirección correcta. En esa situación, SDA permanece ALTA. Si configuro SSPADD antes de habilitar SEN, no enviará nada. Ambos pines están conectados a + 5V a través de una resistencia de 2.2kohm (también experimentada con 10kohm).
TRISC = 0b00011000; //RC3-RC4 INPUTS
SSPM3 = 1; //set as I2C master
SSPM2 = 0;
SSPM1 = 0;
SSPM0 = 0;
SMP = 1; //disable slew rate control (running at 100khz)
SSPEN = 1; //enable serial port
SEN = 1; //create START condition
SSPADD = 0x09; //set baud rate to 100khz
SSPBUF = 0xA2; //buffer in number
Captura de pantalla del analizador lógico: SCL en la parte superior, SDA en la parte inferior: