Muestreo de ADC preciso con reloj in-preciso

1

Estoy construyendo un datalogger con un LPC11xx como CPU. Debe activarse a 256 hz para tomar muestras de ADC, pero esta CPU tiene una activación cronometrada muy precisa y profunda desde el sueño profundo, lo que causa fluctuaciones en los datos muestreados.

Entonces, ¿hay un componente muy barato que puede alternar un GPIO con mucha precisión a 256 hz, que despierta la CPU de la suspensión profunda (usando una interrupción externa)?

O quizás incluso mejor: ¿existen ADC que tengan su propio reloj incorporado, de modo que pueda permanecer en el sueño profundo durante un segundo entero, y luego leer 256 muestras a través de I2C y volver a dormir?

    
pregunta Muis

2 respuestas

0

Hay varias posibilidades para que consideres esto.

1) Busque en un chip CMOS algo antiguo que aún se puede comprar fácilmente llamado CD4536. Este dispositivo incluye una capacidad de oscilador, una cadena divisoria programable y una salida de pulso de un disparo. Los he usado con éxito en aplicaciones de muy baja potencia con un cristal de 32.768 kHz conectado a las clavijas del oscilador. El divisor en esta parte puede luego programarse a través de los pines de la correa para usar 9 etapas del divisor para llegar a la velocidad deseada de 256Hz. (U otras tasas más rápidas o más lentas si se desea). La salida se conectará al pin de control de activación en tu MCU.

2) Otra opción es utilizar cualquiera de los chips RTC de 8 pines más populares. Estos son de muy baja potencia y se ejecutarán en un cristal de 32.768 kHz. Seleccione un RTC que, como pin de salida programable, pueda generar una señal de onda cuadrada a una frecuencia seleccionada. El popular chip ST M41T81S RTC puede tener su pin de salida programado para generar una frecuencia de salida exacta de 256 Hz. La salida se conectará al pin de control de activación de su MCU. Algunas MCU necesitan un pulso en su entrada de despertar que es más corto que el tiempo que la MCU espera para permanecer despierto, por lo que puede ser necesario acoplar capacitivamente la salida RTC a la MCU con un circuito RC para producir un pulso estrecho en un extremo de la salida de onda cuadrada RTC.

    
respondido por el Michael Karas
1

Parece que la serie de piezas LPC11xx tiene un temporizador que puede aceptar un cristal externo. Conecte un cristal de 32kHz, configure el temporizador para que se divida por 128 y haga que se interrumpa el temporizador. Me sentiría muy sorprendido si no pudiera despertar de un sueño profundo con este mecanismo.

Sin embargo, antes de llegar tan lejos, mencionas que el LPC11xx tiene una estela muy imprecisa en el sueño profundo. Parece que no importa qué método uses para despertarlo del sueño profundo, el problema es el despertar del sueño profundo. ¿Cuáles son los límites de este despertar? ¿Qué pasa si divides por 64 en su lugar y solo duermes por el tiempo restante? Aún pasaría mucho tiempo en el sueño profundo, pero su función de "pausa" le permitiría obtener una tasa de muestreo precisa.

por ejemplo

[1.9ms deep sleep] [wake from deep sleep] [1.9ms - wake time doze] sample

Si está utilizando un temporizador con un cristal externo, podría cronometrar con precisión esa tercera parte (1.9ms - hora de despertar).

Honestamente, suena como si estuvieras usando el chip incorrecto para esta tarea. No los he usado yo mismo, pero he escuchado cosas muy buenas sobre el consumo de energía del MSP430. Es posible que pueda lograr un mejor consumo de energía y obtener los resultados de ADC que desea con una parte más adecuada para el muestreo de potencia extremadamente baja.

    
respondido por el akohlsmith

Lea otras preguntas en las etiquetas