Buen dia gente, sigo trabajando con SPP y el problema es que no logro hacerlo funcionar. Estoy utilizando el modulo SPP solo para realizar lecturas las cuales reconozco por interrupcion, es decir, cuando la señal de Strobe cambia de nivel reconozco ese cambio y en la rutina de interrupcion leo el registro SPPDATA a traves de la siguiente funcion:
char spp_read (){
while(SPPEPSbits.SPPBUSY);
return SPPDATA;
}
es bastante sencilla. y para inicializar el puerto utilizo otra funcion que es:
void InitSPP(void){
SPPCONbits.SPPEN = 1; //habilitamos el puerto
SPPCONbits.SPPOWN = 0; // direcciono al core
SPPCFGbits.CSEN = 0; // RB4 funciona como pin no como chip select
SPPCFGbits.CLK1EN = 0; //RE0 funciona como pin
PORTEbits.RDPU = 1; //deshabilito el pull up
TRISDbits.TRISD0 = 1;
TRISDbits.TRISD1 = 1;
TRISDbits.TRISD2 = 1;
TRISDbits.TRISD3 = 1;
TRISDbits.TRISD4 = 1;
TRISDbits.TRISD5 = 1;
TRISDbits.TRISD6 = 1;
TRISDbits.TRISD7 = 1;
TRISBbits.TRISB0 = 1;
TRISBbits.TRISB1 = 0;
TRISEbits.TRISE0 = 0;
TRISEbits.TRISE1 = 0;
}
El tema es, en la hoja de datos habla de una dirección, a que dirección se refiere?
"Write the 4-bit address to the SPPEPS register. The SPP automatically starts writing the address. If address write is not used then skip to
step 3."
Y lo otro es no entiendo bien el funcionamiento de CK1SPP y CK2SPP. si alguno me puede dar una mano con esto le agradeceria mucho.