Use watchdog para activar MCU

0

Estoy usando WDT para activar pic16lf1619 desde el modo de suspensión. Tengo todos los pines no utilizados configurados como salida y los conecté con un 10 kohm al suelo. Lo que está sucediendo es que cuando está en reposo, la corriente es de aproximadamente 5 mA. Leí que la hoja de datos parece hacer lo que se necesita, ¿puede alguien ayudarme a resolver esto?

Si por casualidad hay algún ejemplo a seguir o algún artículo para leer para comprender mejor este problema de consumo de energía.

A continuación se muestra el código que estoy usando

void main() {

// then, setup OPTION as a first thing to do after each reset
//    OPTION_REG = 0b10001111;          

    OSCCON  = 0b00000000 ;                   // Set the INTOSC= 31KHZ
    FVRCON  = 0x00;
//    ANSELA  = 0x00;              
    CM1CON0 = 0x00;
    CM2CON1 = 0x00;

//    WDTCON0 = 0b00011000;                  // Set the WDT time out to 4 second
    WDTCON0bits.WDTPS1 = 1;

    TRISA   = 0x00;
    TRISB   = 0x00;
    TRISC   = 0x00;
    ODCONA = 1;
//    ODCONB = 1;
//    ODCONC = 1;

//  
//    WPUA   =  0x00;
//    WPUB   =  0x00;
//    WPUC   =  0x00;

// while(OSCSTATbits.LFIOFR==0){};         //wait until LPOSC  is ready

while(1) 
    {   
        CLRWDT();
          RA2 = 1;
//          NOP();
        __delay_ms(5000);
          RA2 = 0;
//          NOP();
        __delay_ms(5000);

       WDTCON0bits.SEN = 1;
        SLEEP();
//        SLEEP();
//        SLEEP();

       WDTCON0bits.SEN = 0;
    }
}
    
pregunta MatsK

1 respuesta

1

Debe establecer los bits de PORT en cero si tiene resistencias conectadas a tierra, no se garantiza que se inicien con un reinicio bajo, y debe establecerlos de manera explícita de todos modos antes de que la MCU entre en suspensión.

También su función de retardo probablemente quema los ciclos, así que no duerme durante esos 10 segundos alrededor del ciclo, por lo que solo duerme 4 segundos de los 14 (asumiendo que en realidad está configurando el WDT correctamente, lo cual no confirmé).

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas