# Usar 2 adc de 8 bits de resolucion para lograr uno de 10 bits?



## sophivangogh (Mar 22, 2013)

ya lei el articulo de 2 ADC de 8 bits para uno de 9 bits y no me ayudo mucho.
Estoy haciendo un proyecto: "beam ball" y hay una parte en la medición del ángulo (ver imagen adjunta)  donde se usa un ADC de 10 bits de resolucion, acá , ya busqué por todas partes y no hay uno así, lo máximo que tienen es ADC0804 y ADC0808 que son de 8 bits. 
Entonces, como puedo hacer para que con 2 de 8 bits logre 10 bits de resolución???


----------



## Chico3001 (Mar 22, 2013)

Con un solo ADC puedes incrementarle la resolucion aplicando una tecnica llamada Oversampling

En esta hoja la explican para los AVR, pero funciona en cualquier ADC de cualquier resolucion

http://www.atmel.com/images/doc8003.pdf


----------



## R-Mario (Mar 23, 2013)

Ya habia visto antes eso del sobre muestreo, pero se me hace algo complicado y no tan exacto, humm creo que preferiria comprar un ADC con mayor resolucion, o si son externos tambien puedes ponerlos en cascada para aumenta su resolucion, como dice en la datasheet del ADC0820.


----------



## asherar (Mar 24, 2013)

Aumentar un bit de resolución con electronica externa es un verdadero lío, porque lleva a 
reproducir en componentes discretos la forma como trabajan los conversores AD integrados. 
La señal se va procesando con comparadores de mayor a menor para determinar el valor 
de los sucesivos bits.  Esto puede ser de interés para fines didácticos, y no sé haste qué punto. 
Yo me inclinaría por tratar de conseguir un conversor de más bits directamente. 
Ya viene todo en un encapsulado, calibrado y listo para usar.


----------



## sophivangogh (Mar 25, 2013)

sí, lo que pasa es que ya busqué por todos lados, TODOS lados, y no hay uno de 10 bits. Entonces no se que hacer


----------



## asherar (Mar 25, 2013)

No sé que tan difícil te resulte conseguir un pic donde vos estás pero 
los  microcontroladoes *PIC16F876A* tienen conversores AD de 10 bits. 
Podés usar el puerto B para sacar 8 bits más bajos y los dos más altos 
por el puerto A. 
Eso sí, con un cristal de 4MHz la tasa más alta de muesteo que podés 
llegar es de unos 10 kBPS.
Tal vez con un pic diferente, y con un cristal de 20 MHz puedas llegar 
más alto.

Editado: Gracias a alesergi por advertirme el error, ya lo corregí.


----------



## Chico3001 (Mar 25, 2013)

Si no puedes usar uC y no encuentras el chip adecuado, entonces puedes crear uno tipo flash con comparadores:







Puedes ocupar un 74LS147 que es un codificador 10 a 4


----------



## kero_19 (Mar 25, 2013)

hola amigo, no se si te fijaste, lo que tu necesitas es un DAC, no un ADC, ahora el DAC lo puedes hacer con una escalera R2R o buscar ahora si un DAC comercial de 10bits. Saludos


----------



## Chico3001 (Mar 25, 2013)

DAC?? donde dice que necesita un DAC? siempre ha pedido un ADC


----------



## AleSergi (Mar 25, 2013)

asherar dijo:


> No sé que tan difícil te resulte conseguir un pic donde vos estás pero
> los  microcontroladoes PIC16F84 tienen conversores AD de 10 bits.
> Podés usar el puerto B para sacar 8 bits más bajos y los dos más altos
> por el puerto A.
> ...



Los PIC16F84A no tienen módulo ADC, son los 16F819, y los 16F87x los que si incorporan el ADC.



El ICL7135, no le será util?
Se que se emplea en instrumentación, la hoja de datos habla de "interfaciarlo" con microcontroladores...
Y por cierto cuanto es la resolucion de este integrado?, 

http://www.phys.ethz.ch/~spoerri/Datenblaetter/D_A Wandler/icl7135 AD2-0000.pdf

http://www.intersil.com/content/dam/Intersil/documents/an01/an017.pdf


----------



## R-Mario (Mar 26, 2013)

asherar dijo:


> Aumentar un bit de resolución con electronica externa es un verdadero lío, porque lleva a
> reproducir en componentes discretos la forma como trabajan los conversores AD integrados.
> .



Jamas dije con electronica discreta.

Hay convertidores como adc0820 que te permite poner es cascada dos o mas ADC para lograr una mayor resolucion. Esta claro que hacerlo con electronica estaria de locos, pero yo nunca sugeri eso.


----------



## Scooter (Mar 26, 2013)

Ahora no me acuerdo de todos los detalles, pero se puede usar un ADC "basto" que a su salida tenga un DAC y un restador analógico de la salida del DAC y la señal principal. A lo que queda se le pasa un ADC "fino" La lectura serán simplemente todos los bits seguidos de los ADCs, osea que dos de 8 bits darían 16 bits de resolución.


----------



## asherar (Mar 26, 2013)

Ajna dijo:


> Jamas dije con electronica discreta.
> 
> Hay convertidores como adc0820 que te permite poner es cascada dos o mas ADC para lograr una mayor resolucion. Esta claro que hacerlo con electronica estaria de locos, pero yo nunca sugeri eso.



Bueno che, aflojen un poco ... lo que respondí no fue para acusar a nadie. 
Solo quise participar con buena onda. 

Creo que lo que dice scooter es *esto* (rampa digital) 
Usa un conversor DA, un comparador y unas pocas cosas más, y permite 
al usuario elegir el número de bits. 

Está visto que se requiere una resolución angular de 1/1024.
Ahora pregunto a @sophivangogh: ¿ qué tasa mínima de muestreo necesitas ?


Saludos


----------



## cosmefulanito04 (Mar 27, 2013)

La pregunta es, ¿se justifican esos 2 bits de resolución par lo que estas haciendo?

Cosas a tener en cuenta:

- Vos podés tener un ADC con mucha resolución, pero una tensión de referencia muy mala (ej. un 7805), entonces la medición sigue siendo mala. 

- ¿Cuál es la mínima variación en la tensión que va a tener tu sensor a la salida para justificar esos 10 bits?.

- ¿Cuál es tu rango de medición? (ej. 0 a 5v o por decir algo 0 a 3v)


----------



## Scooter (Mar 27, 2013)

Lo que yo digo lo vi en el esquema interno de un osciloscopio fluke si no recuerdo mal.
No era un conversor de rampa.
La idea es que digamos que yo tengo que medir una tensión de 5,7689041V (por decir algo)
Con el primer paso digitalizo lo gordo; 8 bits por ejemplo entre 0y12V que da una resolución de 12/256=0,046875V la lectura sería de 123,069952. Eso la teórica porque la real sería de 123 a secas. Pero 123x0,046875=5,765625 osea, un error de 5,7689041-5,765625=0,0032791
Lo que hacía era convertir con un DAC de nuevo la primera lectura y restarla analógicamente y daba en analógico el error antes mencionado. Luego con otro dac tarado entre 0 y "1 bit del gordo", osea entre 0 y 0,046852 se obtenían los 8 bits "finos" a partir de la señal de error.

La pega de este esquema es que la parte analógica ha de estar perfectamente calibrada, de lo contrario la lías.
La ventaja es que con dos conversores flash de 8 bits se obtiene la resolución de 16 bits casi a la velocidad de un flash converter y un flashconverter de 16 bits (si existe) será abrerrantemente caro y complejo.


----------



## juani_c (Mar 27, 2013)

a ver si aporto algo;
como alguien ya mencionó en el esquema no hay ningún ADC, si hay un DAC. No estoy seguro pero creo que esta funcionando así; algún tipo de encoder se conecta a JP1 y mediante los smith triggers y los flip-flops incrementan o decrementan la cuenta de los 74LS193 según el sentido de giro. El valor de la cuenta es convertido por el conjunto DAC-Op amp y el angulo del "beam" se traduce a un valor de voltaje. Probablemente utiliza este voltaje en un sistema de control analógico. (SIEMPRE ES BUENA IDEA PONER LA FUENTE DE DONDE SACAN LA INFORMACIÓN/CIRCUITOS)
Ahora el tema es saber como lo pensás hacer vos, y si necesitas conocer la posición mediante un valor analógico (como el del esquemático que adjuntás) o digital utilizando por ejemplo un potenciómetro y digitalizando el voltaje con un ADC. Dicho sea de  paso, si los angulos no son muy grandes y no es problema el rozamiento, con un potenciómetro podes hacer lo mismo del esquematico...
De cualquier manera, sea ADC o DAC, sean 8, 10 o 12 bits,  tal vez lo puedas conseguir como "sample" de algún fabricante.


----------



## seaarg (Oct 20, 2016)

cosmefulanito04 dijo:


> - Vos podés tener un ADC con mucha resolución, pero una tensión de referencia muy mala (ej. un 7805), entonces la medición sigue siendo mala.



Vi el tema de casualidad y me quedo picando esa frase. Creia que los 78xx eran exactos en el sentido de que su valor de salida siempre iba a ser el mismo. (variante entre integrados obviamente).

Si esto como referencia es muy malo:

- Significa que la conversion ADC de un micro (pic, atmel, no importa) es mala tambien ya que la referencia suele ser VCC dado por un 7805.
- ¿que se podria utilizar en forma similar y que sea mejor?


----------



## Scooter (Oct 20, 2016)

seaarg dijo:


> Vi el tema de casualidad y me quedo picando esa frase. Creia que los 78xx eran exactos en el sentido de que su valor de salida siempre iba a ser el mismo. (variante entre integrados obviamente).
> 
> Si esto como referencia es muy malo:
> 
> ...



Exacto, es que así es. La conversión de un pic o similar es muy* mala.
Para eso entre otras cosas están los pines aref agnd para usar una referencia mejor, y también para cambiar el rango de medida, que no sea siempre 0~5V


*depende de para que, a lo mejor es suficientemente buena.


----------



## palurdo (Oct 20, 2016)

seaarg dijo:


> Vi el tema de casualidad y me quedo picando esa frase. Creia que los 78xx eran exactos en el sentido de que su valor de salida siempre iba a ser el mismo. (variante entre integrados obviamente).
> 
> Si esto como referencia es muy malo:
> 
> ...



Aparte de que la regulación de carga será lo buena que es la precisión del amplificador de error interno del 78XX, todos los 78XX tienen como base una referencia de voltaje tipo bandgap. En esta referencia de voltaje se trata de cancelar dos curvas de voltaje/temperatura en dos uniones, de distinto ratio de corriente, de forma que en teoría se cancelen los efectos de una y otra curva y lo que se tenga es un voltaje independiente de la temperatura. En realidad, como la cancelación es una resta lineal, se cancelan los terminos lineales de la curva, pero los cuadráticos, cúbicos, etc, a pesar de ser muchisimo menores, se refuerzan en lugar de cancelarse, dando lugar a pequeñas oscilaciones del voltaje con respecto a la temperatura.

El error relativo es el mismo en todos los 78xx, pero el absoluto aumenta con el voltaje de salida, asi que si se va a leer en el ADC una señal de entre 0 y 2.5V, mejor usar una referencia de 3.3V que una de 5V.

La solución seria usar una referencia que ajuste mejor la curva de temperatura usando compensación lineal, cuadrática, cúbica, etc, o usar otro tipo de referencia independiente de la temperatura y del ruido térmico.


----------



## seaarg (Oct 20, 2016)

Como siempre, aprendiendo cosas nuevas dia a dia. Me pregunto que usaran los osciloscopios usb baratos tipo Hantek.

Para un osci experimental, use AM1117 ajustables para setear VrefL y VrefH con una diferencia entre ellos de 1 V y el punto medio seteado en 1.65 V (1/2 vcc para el common mode) voy a tener que averiguar alternativas mejores (supongo que estos seran similares en caracteristicas al 78xx)

El otro dia me cruce con los integrados que se usan como referencia de voltaje en las memorias DDR, creo que eran 2.5 V. Es interesante porque tienen gran capacidad para hacer source y sink de igual manera. ¿Tal vez esto podria ser una buena referencia superior para un ADC?


----------



## Scooter (Oct 20, 2016)

Pues no lo se, habría que leer los datasheets, que sean estables con temperatura etc.
De momento al mismo 7805 del que cuelga todo no es buen sitio, porque cuando hay picos de consumo no es estable al 100%. Solo con que sea un 7805 del que no cuelgue nada ya será mas estable.


----------



## cosmefulanito04 (Oct 20, 2016)

Creo que el 7805 tiene un DeltaV de 250mV (o algo similar) que dependerá de la ºT y la carga.

Esos 250mV en la incertidumbre final de lo que vayas a medir, pesa y mucho. 

Como alternativa, tenés los lm336 que son zener de referencia, pero que tampoco son la gran cosa. Una buena referencia de tensión es el AD586K.

Para que te dés una idea, en un proyecto comparamos las distintas incertidumbres que se obtenían al medir presión con un sensor MPX5700d y la diferencia era enorme según la referencia de tensión que le ponías manteniendo siempre el mismo sensor (con un grado de cobertura de 95,4%):

- LM7805: +/-0,46 kgf/cm2
- LM336: +/-0,3 kgf/cm2
- AD586K: +/-0,21 kgf/cm2

Del LM7805 al AD586 se redujo la incertidumbre a más de la mitad nada más gastando unos centavos en una buena referencia de tensión.


----------



## seaarg (Oct 20, 2016)

Muchisimas gracias, Ya dejo el offtopic, me llevo excelentes datos.


----------

