Conversión analógico-digital con el SAADC del nRF
Comenzar arrow_downwardEl mundo real es analógico; los microprocesadores son digitales.
Los sensores miden magnitudes físicas (temperatura, luz, presión, voltaje) y generan señales analógicas continuas. El microcontrolador solo entiende valores digitales discretos.
El nRF utiliza un ADC de aproximaciones sucesivas: una búsqueda binaria del voltaje.
Imagina que tienes que adivinar un número del 0 al 255. En lugar de probar uno por uno, preguntas: "¿Es mayor que 128?" y divides el rango a la mitad en cada pregunta.
El teorema de Nyquist y los tiempos críticos en la conversión ADC.
Si quieres medir una señal de audio de hasta 20 kHz:
Más bits = mayor granularidad, pero también mayor tiempo de conversión.
| Resolucion | Niveles | LSB (con Vref=0.6V) | Velocidad | Uso típico |
|---|---|---|---|---|
| 8 bits | 256 | 2.34 mV | Más rápido | Detección simple (batería baja) |
| 10 bits | 1,024 | 0.59 mV | Rápido | Sensores básicos |
| 12 bits | 4,096 | 0.15 mV | Medio | Mediciones de precisión |
| 14 bits | 16,384 | 0.037 mV | Más lento | Alta precisión (instrumentación) |
Single-ended para señales simples, diferencial para rechazar ruido.
Mide el voltaje entre el pin de entrada y GND.
Mide la diferencia entre dos pines. El ruido común se cancela.
Ajusta el rango de entrada para maximizar la resolución efectiva.
La ganancia amplifica (o atenúa) la señal de entrada antes de la conversión.
Dos opciones: Zephyr ADC API (portable) o nrfx SAADC (avanzado).
Configuración Devicetree para el canal ADC.
Implementación completa en main.c
Secuencia de llamadas para lectura ADC con Zephyr.
Conceptos clave sobre el ADC en sistemas embebidos NRF.
ADC de aproximaciones sucesivas con busqueda binaria. Balance ideal entre velocidad, precision y consumo.
Resolucion (8-14 bits), ganancia (1/6 a 4x), y referencia (0.6V interna) determinan rango y precision.
ADC_DT_SPEC_GET para config, adc_read para lectura, adc_raw_to_millivolts_dt para conversion.
"Elige la resolución mínima que necesites y la ganancia que maximice tu rango efectivo."
Más bits no siempre es mejor: considera el ruido del sistema y la velocidad requerida.
Fórmulas y configuración típica para consulta.