Modo de demora de almacenamiento de datos en PIC18

3

Estoy usando un microcontrolador PIC 18F46J50 y el compilador C18.

Quiero conservar algunos datos cuando el controlador sale del modo de suspensión profunda. Encontré dos registros DSGPR0 y DSGPR1 para guardar el contexto, pero parece que solo hay dos bytes disponibles allí.

Si quisiera guardar más bytes, ¿cuáles son mis opciones?

Me gustaría recibir sugerencias que sean posibles con la familia de PIC de 8 bits.

    
pregunta Rookie91

2 respuestas

3

Para guardar más datos de 2 bytes en un sueño profundo:

  1. Rediseñe la aplicación para que solo requiera dos bytes (16 bits) a través de la suspensión profunda.

  2. Utilice una memoria RAM CMOS externa respaldada por batería. Estos toman muy poco poder cuando están en espera, pero aún conservan su contenido. Una pequeña celda de monedas puede mantener el contenido vivo durante años.

  3. Utilice una EEPROM externa. Se puede apagar completamente en el modo de suspensión profunda, pero esto solo se puede hacer un número finito de veces. Si este dispositivo se activa cada segundo durante unos pocos ms, esto no es apropiado. Si se despierta cada hora, esto podría funcionar.

  4. No uses el sueño profundo. El sueño regular sigue siendo un consumo de energía muy bajo. Detiene los relojes, pero no apaga la memoria RAM por completo.

respondido por el Olin Lathrop
0

En la sección 3.6.1 de la hoja de datos 18F46J50 , se escribe lo siguiente:

  

Debido a que VDDCORE podría caer por debajo del voltaje de retención de la SRAM mientras está en   Modo de suspensión profunda, los datos de SRAM podrían perderse en la suspensión profunda. Salir de profundidad   El modo de suspensión causa un POR; como resultado, la mayoría de los registros de funciones especiales   se restablecerá a sus valores predeterminados de POR

Por lo tanto, deberá guardar los datos utilizando la capacidad de autoescritura flash del PIC o en una memoria SRAM o EEPROM / flash externa. Excepto los dos registros que menciona en la pregunta, no hay una forma confiable de almacenar datos en la memoria RAM interna del PIC. Si elige un chip externo, obviamente deberá prestar atención a sus requisitos de alimentación.

Dependiendo de la razón para elegir la suspensión profunda, es posible que pueda encontrar una pieza de flash SPI de bajo consumo adecuada. Cualquier chip externo no volátil podría tener su potencia controlada por su PIC, por ejemplo. mediante el uso de un FET o LDO con control de habilitación. Puede encenderlo para guardar el estado antes de dormir y restaurar el estado al despertarse, solo asegúrese de darle suficiente tiempo para completar la escritura antes de apagarlo nuevamente.

    
respondido por el David

Lea otras preguntas en las etiquetas