Después de reducir toda la circuiteria a un dsPIC con su xtal de 20Mhz, su conector para programar con icd3, y conectar la fuente directamente al dspic sin pasar por un regulador, el modo sleep deberia hacer que el dspic consumiera menos de 1mA segun las especificaciones del datasheet. Sin embargo consume 7mA.
Se deshabilita todo, los puertos, como los periféricos del dspic, el wdt, y no sé que más deshabilitar. No creo que sea tema hardware, pues no hay más que eso que he descrito, pero sí del programa, seguramente alguna instrucción de configuracion de la CPU o del clock.
Gracias si a alguien se le ocurre algo.
Se deshabilita todo, los puertos, como los periféricos del dspic, el wdt, y no sé que más deshabilitar. No creo que sea tema hardware, pues no hay más que eso que he descrito, pero sí del programa, seguramente alguna instrucción de configuracion de la CPU o del clock.
Código:
//*****************************************************************
//CONFIGURACION DEL MICRO
//*****************************************************************
_FBS( BSS_NO_FLASH & BWRP_WRPROTECT_OFF )
_FGS( GSS_OFF & GCP_OFF & GWRP_OFF )
_FOSCSEL( FNOSC_PRIPLL & IESO_OFF )
_FOSC( FCKSM_CSECME & IOL1WAY_ON & OSCIOFNC_OFF & POSCMD_HS )
_FWDT( FWDTEN_OFF & WINDIS_OFF & WDTPRE_PR32 & WDTPOST_PS1 )
_FPOR( FPWRT_PWR1 & ALTI2C_OFF )
//*****************************************************************
//CONFIGURACION DEL XTAL
//*****************************************************************
//Fin = 20 MHz
//Fosc = Fin * (M/(N1*N2))
//Fosc = 20 * (32/(4*2)) = 80 MHz
//Fcy = Fosc / 2 = 40 MIPS
OSCCONbits.OSWEN = 0b0;
OSCCONbits.LPOSCEN = 0b0;
OSCCONbits.CLKLOCK = 0b1;
OSCCONbits.NOSC = 0b011;
CLKDIVbits.PLLPRE = 0b10;
CLKDIVbits.PLLPOST = 0b00;
CLKDIVbits.FRCDIV = 0b0;
CLKDIVbits.DOZEN = 0b0;
CLKDIVbits.DOZE = 0b100;
CLKDIVbits.ROI = 0b0;
PLLFBDbits.PLLDIV = 0b11110;
Última edición por un moderador: