Incidentalmente, una aproximación que utilicé una vez que parecía funcionar bastante bien era tener una salida PIC que controlara un circuito RC y la introdujera en una entrada de un comparador, mientras que la otra entrada del comparador era la señal bajo prueba. Cada 100 us, muestrearé el estado del comparador, estableceré la salida alta o baja según corresponda, y (si establezco la salida baja) golpeará un contador. Cada 4096 interrupciones, copiaría el valor de ese contador y lo restablecería.
Lo bonito de este enfoque es que siempre que la entrada no cambie y que la constante de tiempo RC sea lo suficientemente alta y que la entrada no esté demasiado cerca de un riel, se puede evitar cualquier necesidad de corriente constante de precisión fuentes u otras cosas similares. El sistema emitirá una medición radiométrica del voltaje de entrada en comparación con los rieles de salida que alimentan al RC (por ejemplo, si el voltaje de entrada es 3/4 de VDD, y la salida cambia completamente a VDD o tierra, dadas las corrientes involucradas, la lectura será 3072/4096).
El mayor problema que he observado con este enfoque es que si la entrada cambia significativamente, las lecturas se fijarán por un momento, y la primera lectura después de eso no tendrá sentido. Sin embargo, es un enfoque barato y parece funcionar bastante bien.