Hola amigos TODOPIC
Necesito implementar el VBAT para backup del RTC en el PIC24FJ128GA310, lo que hice fue hacer el montaje que tome del PIM del pic para el VBAT y que adjunto en la imagen; y configurar en los fusibles el VBTBOR_ON en
_CONFIG3( WDTWIN_PS75_0 & BOREN_OFF & WPDIS_WPDIS & WPCFG_WPCFGDIS & VBTBOR_ON)
y mi método de inicializacion del RTC es el que sigue
void RTCCInit(void){
//rtccTimeDate RtccTimeDate;
// Enables the OSCON write and set
//_SOSCEN =1;
asm volatile ("mov #OSCCON,W1");
asm volatile ("mov.b #0x46, W2"); // unlock sequence
asm volatile ("mov.b #0x57, W3");
asm volatile ("mov.b #0x02, W0"); // SOSCEN =1
asm volatile ("mov.b W2, [W1]");
asm volatile ("mov.b W3, [W1]");
asm volatile ("mov.b W0, [W1]");
//_RTCWREN = 1; // unlock setting
asm volatile("disi #5");
asm volatile("mov #0x55, w7");
asm volatile("mov w7, _NVMKEY");
asm volatile("mov #0xAA, w8");
asm volatile("mov w8, _NVMKEY");
asm volatile("bset _RCFGCAL, #13"); // RTCWREN =1;
asm volatile("nop");
asm volatile("nop");
_RTCEN = 0; // disable the clock
// diam = 0x01; mes = 0x01; ano = 0x01; //Con el VBAT Activo hay que comentar esto
// hora = min = 0;
// sec = 0x10;
// set 12/01/2006 WED 12:01:30
_RTCPTR = 3; // start the sequence
RTCVAL = 0x2000+ano; // YEAR
RTCVAL = (mes*0x100)+(diam); // MONTH-1/DAY-1
RTCVAL = (diaw*0x100)+(hora); // WEEKDAY/HOURS
RTCVAL = (min*0x100)+(sec); // MINUTES/SECONDS
// optional calibration
//_CAL = 0x00;
// lock and enable
_RTCEN = 1; // start the clock
_RTCWREN = 0; // lock settings
}
Así mismo empleo, una bateria de 2.5V, y la prueba que hago es que configuro Fecha y Hora, reinicio o apago el Micro con la bateria conectada y cuando voy a ver el tiempo, todo esta reiniciado a cero
... Qué estaré haciendo mal?