Entiendo que el tiempo de muestreo del ADC son los ciclos de reloj del ADC para los cuales el capacitor de muestreo y retención se carga hasta el voltaje de entrada del canal. Este es un parámetro configurable y su valor oscila entre ns y us.
Digamos que quiero leer muestras de ADC para el procesamiento de señales digitales y quiero adquirir muestras a una velocidad muy específica, digamos 100 Hz. Llamo a esto la tasa de muestreo. En este caso, ¿sería suficiente si configuro el tiempo de muestreo del ADC en 100 Hz para obtener una frecuencia de muestreo de 100 Hz?
Tengo entendido que debería configurar un temporizador a 100 Hz y usarlo para activar la conversión ADC, pero en este caso, ¿no es el tiempo real entre dos muestras, es decir, el intervalo de muestreo sería (10 ms (100 Hz de la frecuencia de muestreo) + X ns(del tiempo de muestreo))?
Estoy usando el ADC de una placa Discovery STM32F4, pero mi confusión sigue siendo la misma para cualquier otro controlador.
¿Qué significan realmente el tiempo de muestreo, la frecuencia de muestreo y el intervalo de muestreo?
Para el caso que mencionaste, una frecuencia de muestreo de 100 Hz usando un disparador y el tiempo de muestreo de 100 ns:
TIMER: TRIG--------------------TRIG----------------
ADC : SMPL---/DONE------------SMPL---/DONE
El tiempo entre 2 /DONE
señales consecutivas (por ejemplo, interrupción de conversión completa) es el mismo que la señal TRIG porque el tiempo de muestreo agregado es fijo. siempre que el intervalo TRIG sea mayor que el tiempo de muestreo (+ tiempo perdido en el procesamiento de instrucciones).
El tiempo de muestreo generalmente se usa como un valor límite (o un ajuste fino):
EDITAR: aquí hay algunos tiempos de acuerdo con la hoja de datos STM32F0 , características de ADC:
Muchos de ellos están casi fijos para algunas configuraciones determinadas. el tiempo de muestreo que se marca, es configurado por el usuario. en base a esta configuración se proporciona la lluvia máxima:
los tiempos de muestreo parecen estar lo suficientemente fijos siempre que no use ese reloj ADC de 14MHz dedicado.
Estás un poco fuera de lugar. Utiliza una interrupción de temporizador para activar la adquisición. El temporizador no "marca" a 100 Hz, el temporizador marca más rápido que eso, digamos 10 kHz (usted puede configurar todo esto), y la interrupción del temporizador ocurre cuando el temporizador interrumpe. Precarga el contador para que se desborde a la velocidad adecuada.
La clave de todo esto es que el temporizador nunca deja de contar. Sí, la adquisición finaliza con delta de tiempo después del disparo, pero mientras esto ocurre, el contador precarga el número de inicio nuevamente y sigue contando, no espera a que finalice la adquisición, por lo que sus muestras están en la tasa correcta.
Cuanta más precisión necesite, más rápido configurará el tictac de su temporizador. Es posible que necesite una palabra grande, como 32 bits, para que se desborde a una velocidad lo suficientemente lenta, pero hay contadores de 32 bits en muchos microcontroladores.
broma
Vishwesh GM