TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Javicho en 02 de Febrero de 2008, 23:38:30

Título: Aumentar resolución del ADC
Publicado por: Javicho en 02 de Febrero de 2008, 23:38:30
Saludos, tengo una fuente variable de 1.2v hasta 30VDC de la cual quiero mostrar el voltaje en un LCD, tengo un PIC16F873 pero quisiera mejorar mi resolución.

Mi idea es esta: coloco un divisor de tensión de ahi al ADC del pic tal que cuando tenga 30v en la entrada del pic tenga 5v (asumiendo Vref=5v) entonces el valor digital obtenido será 1023, luego hago 1023 x 3 = 3069 y en el LCD muestro 30.69v pero cuando el valor digital sea 1022 esto al multiplicarlo por 3 tendré: 1022 x 3 = 3066 y en el LCD aparecerá 30.66v y para 1021 aparecerá 30.63 osea va en pasos de 30mv.

Como puedo mejorar esto a fin de que vaya a pasos de 10mV?

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: Thanathos en 03 de Febrero de 2008, 00:54:51
Hola amigo que tal...
He leido tu mensaje muy atentamente y mi opinin es la siguiente...
>Primero que todo lo del divisor de tension me parece excelente, de hecho para aplicaciones sencillas como un multimetro lo  uso siempre. Ya si es algo de instrumentacion el cuento cambia...

>Pregunta: ¿Porque mutiplicas por 3/100?, deberias multiplicar por 30/1023 y para 1023 te daria 30V exacto... Cuanto tengo que hacer este tipo de cambios de escala, utilizo el tipo de dato FLOAT y funciona de lujo...  tranquilo para el CCS exa multiplicacion en como flotante es algo sencillo, luego lo mando al LCD con algo asi como printf(lcd_putc,"Formato",VariableFloat)... aunque sin duda si fuese en ASM el cuento es otro...

>En cuanto a lo de la resolucion, Resolución = Vmax/[2^n - 1].
        n = # bits del ADC.
        Vmax = Voltaje a la entrada del convertidor para obtener una conversión máxima (todas las salidas son "1").
Asi que como puedes ver este es un valor constante ya que n=cte y Vmax=30...
Pero no os preocupeis  :)...he desarrollado un metodo para mejorar esto,... :-/, lo busco y cuanto antes lo subo... Solo tiene un problema, se apodera de 2 a 4 pines adicionales...

Mañana nos vemos...

Un saludo desde colombia...
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 03 de Febrero de 2008, 01:17:26
Hola: bueno multiplico por 3 porque para el maximo valor digital obtenido (1023) podré mostrar en el LCD (como máximo) 1023 x 3 = 30.69V es decir si por X motivos la fuente entregase "un poquitito mas" de voltaje entonces el pic podrá mostrar hasta un máximo de 30.69V (y ademas porque en software es muy simple multiplicar el valor digital por 3).

Estuve viendo mi multimetro y éste muestra voltajes desde 0 a 200mV con pasos de 0.1mV es como si el conversor AD que tiene puediera reconocer 2000 valores digitales y me parece que solo tiene un ICL de apenas 8 bits de resolución nose como lo hacen. Luego en la escala de 20V va en pasos de 10mV osea desde 2.00V hasta 20.00V.

Comprendo que al cambiar de escala internamente se seleccionan diferentes resistencias en el amplificador o algo asi para que varie su ganancia de entrada al conversor o tal vez a la misma vez tambien varian su voltaje de referencia, no lo se. Pero igual en cualquier escala siempre muestra 4 digitos y la coma decimal va cambiando de posición.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 04 de Febrero de 2008, 22:50:41
Alguien sabe como podria aumentar por software o hardware los 10bits del ADC del 16F873 a "12 bits"?

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: MGLSOFT en 04 de Febrero de 2008, 23:24:15
Es un engaña-pichanga, pero lo que puedes hacer es justificar el resultado a la izquierda, de esa forma tu resultado variara entre 0 y 65472.
Te da un resultado en lo que yo llamo Pseudo 16 bits... :mrgreen: :mrgreen:
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 04 de Febrero de 2008, 23:58:52
Como dices que dices?

Si coloco un potenciometro a la entrada analoga e incremento el voltaje gradualmente obtendré en los registros ADRESH/ADRESL justificando a la derecha:
00000000 00000000 = 0
00000000 00000001 = 1
00000000 00000010 = 2
00000000 00000011 = 3
00000000 00000100 = 4 ...
00000011 11111111 = 1023

Si justifico a la izquierda no pasaria esto?:
00000000 00000000 = 0
00000000 01000000 = 64 <- al haber un cambio de 1 bit no pasa a 64?
00000000 10000000 = 128
00000000 11000000 = 192
00000001 00000000 = 256 ...
11111111 11000000 = 65472

A menos que en la formula de resolución (+Vref - Vref-)/(2^N-1) ahora se considere a N=16 con esto se tendria cambios por bit de 76uV (con Vref=5v) ... uhmmmmm

Me podrias explicar esto? o es que te he entendido mal.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: reiniertl en 05 de Febrero de 2008, 13:04:47
Pues has hecho mal los cálculos, porque la resolución de este sistema no es la que planteas, veamos las ecuaciones que debes utilizar para dar con la solución correcta:

Primero tienes un divisor de tensión que te da 5V, cuando hay 30V en la salida de la fuente y 0V cuando hay 0V en la salida de la fuente (suponiendo que no has utilizado una referencia variable)

Ahora, este divisor tiene un factor de atenuación de 5, lo que implica que el resultado obtenido en la medición dentro del PIC tendrás que multiplicarlo por 6. veamos una fórmula:
Sea K el valor de la ganancia para obtener Vo, el valor de tensión de la fuente y 5V, la tensión que se tendrá a la salida del acondicionador de señal (en este caso un divisor de tensión), tenemos que 5V/Vo=1/K => K=6


Ahora veamos que ocurre con el conversor:
Tenemos que la resolución es de 10bits, luego tenemos 1024 posibles valores en bits.
Tenemos que pondremos a la entrada del conversor una tensión entre 0 y 5V, o mejor aún, entre 0 y 5000mV.

Sea S la sensibilidad del conversor, tenemos que:
S=MSB/ΔV [bit/mV] =1024/5000 = 0.2048bit/mV o lo que es lo mismo
S=4,8828125 mV/bit, no 30mV como habías plantado al principio.

Ahora a calcular:
Vo=(K*S*ADRESULT)/1000

Donde:
Vo es la tensión de la fuente
K=6
S=4,8828125mV/bit
ADRESULT es el resultado de la conversión, un entero de 16 bits que obtienes como resultado de la conversión y que viene expresado en bits.

Se divide entre 1000, para llevar de mV a V

Comprobemos si tenemos los datos bien caluculados:
Si obtenemos 1023, el valor más alto de ADRESULT, cual es el valor de Vo
Vo=(6*4,8828125*1023)/1000=29.97V

Ahora para DRESULT=512
Vo=(6*4,8828125*512)/1000=15V

Ahora para DRESULT=256
Vo=(6*4,8828125*256)/1000=7.5V


Ahora para DRESULT=128
Vo=(6*4,8828125*128)/1000=3.75V


Este es el método que te recomiendo utilices.

Saludos
Reinier
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 05 de Febrero de 2008, 16:28:33
Hola Reinier, los 30mV me referia a la resolución que se mostraria en un LCD por ejemplo, yo decia ... si tengo:

1023 x3 = 30.69v (en el LCD)
1022 x3 = 30.66v (en el LCD)
1021 x3 = 30.63v (en el LCD)
1020 x3 = 30.60v (en el LCD)

con lo cual se ve que los pasos van de 30mV en 30mV, no puse mis formulas ni ecuaciones para abreviar el texto lo que no implica que las desconozca.

Ahora si nos referimos a tus formulas, obtendremos:

Vo=(6*4,8828125*1023)/1000=29.97V
Vo=(6*4,8828125*1022)/1000=29.94V
Vo=(6*4,8828125*1021)/1000=29.91V
Vo=(6*4,8828125*1020)/1000=29.88V

como puedes ver con tus propias formulas tambien obtenemos pasos de 30mV en 30mV, a esto es a lo que yo me referia, por tanto mis calculos siempre estuvieron bien.

Edison.
Título: Re: Aumentar resolución del ADC
Publicado por: reiniertl en 05 de Febrero de 2008, 17:03:50
Humm, ahora si que entiendo.

Bueno, la mejor respuesta que tengo para tí es que uses un conversor de más resolución de bits, o que utilices una técnica que ahora no puedo explicarte en detalle, pero que consiste en utilizar las VREF+ y VREF- del PIC para ir acotando el valor de tensión que colocas a la entrada del ADC.

Hay algunos multímetros que usan esta técnia. básicamente consiste en utilizar referencias de tensión con control digital y comparadores para ir ajustando las tensiones de referencia en función de la tensión de entrada que pones en el ADC. Es un mecanismo que baja los costos de grandes series de productos y que permite medir diferencias de tensión muy grandes y de valores desconocidos.

En tu caso te recomiendo que escojas otro conversor, con mejor resolución, creo que uno de 12 bits vendrá muy bien porque te dará una resolución total de 7.32mV/bit. El que tienes ahora te da una resolución total del canal de 29.30mV/bit. Puesto que podrás poner a punto tu sistema muy rápido, la otra técnica es más barata para grandes series y tiene otras ventajas, pero lleva un trabajo grande.

Saludos
Reinier
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 05 de Febrero de 2008, 17:27:03
Hola Reinier:

Estaria muy agradecido en la medida de tu tiempo si me explicaras de esas tecnicas con un poco mas de detalles, por lo pronto ya he podido obtener 11bits de resolución:

Hago Vref=2.5v, ahora con ayuda de un mux hago Vref+=2.5v y Vref-=0 y leo mi entrada desde 0 hasta 2.5v al llegar aqui tendré el valor maximo 1023 ahora con el mux cambio a Vref+=5v y Vref-=2.5v y sigo leyendo mi entrada esta vez desde 2.5v hasta 5v en este tramo obtengo 1024 valores que sumados con los 1024 valores obtenidos entre 0 y 2.5v de entrada tengo que mi entrada registro 2048 valores entre 0 y 5v, esto significa que mi resolución fue de 11 bits.

Debe haber otra mejor forma de mejorar la resolución ojalá alguien pueda darme una idea para obtener 12bits de resolución. Estaba pensando también en hacer la conversión a mano habilitando un timer para contar pulsos que ingresararian a un opamp y este compara con la entrada aunque no la tengo muy claro a ver si alguien me informa un poco de esto. Gracias.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: reiniertl en 05 de Febrero de 2008, 17:32:19
Esa está perfecta, y es en esencia lo que quería explicarte. Hay varios métodos, pero el que ustilizas es perfectamente válido. Sólo que necesitarías aumentar un poco más las posibles fuentes de referencia, de modo que obtengas los 12 bits que te comentaba o más que eso.

saludos
Reinier
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 05 de Febrero de 2008, 17:42:32
Solo me falta un bit mas porque a fin de cuentas lo que quiero es que en el LCD aparezca:

00.00 v
00.01 v
00.02 v ...
04.99 v
05.00 v
05.01 v ...
29.98 v
29.99 v
30.00 v

Si te das cuenta el pic tendria que registrar desde 0000 hasta 3000 un total de 3001 valores y:
con 10bits obtengo solo 1024 valores
con 11bits obtengo solo 2048 valores
pero con 12bits obtengo 4096 valores que esta dentro de los 3001 valores que necesitaba incluso hasta se adaptaria para hacer una fuente de hasta 40.95V (digamos 40V).

Esperaré alguna mano que me oriente a obtener 1 bit mas (12bits) o tal vez tendré que hacer la conversión a mano.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: MGLSOFT en 05 de Febrero de 2008, 19:03:06
Yo uso un conversor externo de 12 bits, con bus SPI.
Uso el MCP3204 de Microchip.

Aunque hay PICs de la serie 16 o 18 que tienen varios AD de 12 bits internos...
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 05 de Febrero de 2008, 23:05:41
Acabo de ver el datasheet del MCP3204 y se ve muy bien, ojalá que lo pueda adquirir por acá (cosa que dudo muchisimo porque cosas asi no traen por aqui).

Igual esperaré alguna otra idea para ampliar la resolución de 10bits a 12bits del adc del pic.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: andros en 08 de Febrero de 2008, 14:19:12
Amigo Javicho:

Analog Devices también tiene ADC de 12, 16 bits, con entradas SPI o I2C.

Lo que estás haciendo sirve para un conversor ideal de 8 bits..., sin embargo la realidad dicta otra cosa..., revisa una variable llamada ENOB, con esta probablemente verás que la resolución de tu conversor equivalga a un ADC ideal de 7 bits..., son algunas malas noticias..., por ello es recomendable usar uno externo...

Sin embargo, una luz se abre, esta técnica la usan en telefonía para mejorar la calidad de la señal de voz y al mismo tiempo ahorrar ancho de banda (es decir, con 8 bits obtienen una señal de mayor resolución. pero de todas formas envían los mismo 8 bits, con lo que se ahorran ancho de banda y el poco espacio que uno tiene en memoria en caso de guardar los datos), a esta técnica se le llama COMPANSIÓN (COMPANDER, algo así como compresión).

busca ley u (miu) o ley A (si no estoy mal), se puede hacer de dos formas:

Análoga: usando un amplificador logarítmico, ¿Que hace esto?, pues bien, amplifica en mayor medida las señales pequeñas, es decir, si tu rango es de 1,2V a 36..., digamos que los valores cercanos a 1,2 los amplifica mucho más que los cercanos a 36.., eso sí, siguiendo la función logarítmica.., que hace esto..., pues le asigna mayor número de bits a las señales pequeñas que a las grandes!!!!, porque es bueno amplificar más las señales pequeñas?, porque en estas la relación Señal Ruido es menor, si se amplifica la señal (sin amplificar el ruido) esta relación se hace más grande, y por tanto mayor resolución. MOTOROLA TIENE UNA AMPLIA GAMA DE ESTOS AMPLIFICADORES!. Que hace en telefonía?, cuando reciben la señal la EXPANDEN con un amplificador EXPANSOR (EXPANDER), en tu caso te tocaría expandir la señal digitalmente.... (me imagino).

Digital: Es usando tablas, muy buena, sin embargo no la tengo a mano..., vamos a ver si la recupero entre todos esos documentos en el PC (adelanto, no la he usado). Pero esto me anima a experimentar...

Alejados de la compansión, otra alternativa es usando varias escalas, se me ocurre un amplificador de instrumentación como el AD620, la escala se "setea" con solo una resistencia, ante esto puedes usar un multiplexor análogo (ojo con la resistencia interna del multiplexor análogo) para la selección de las escalas (esta si la usé, y me funcionó de perlasssss!!!!!!!!)...., imagino que se pueden combinar técnicas, la de las referencias (muy buena), con esta...

No sé que te parece, en términos experimentales me parece muy interesante lo que estás haciendo, hasta me dan ganas de ponerme en estas....., jaja  8)!

Exitos viejo men!!, saludos de Colombia.

Andros.
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 08 de Febrero de 2008, 15:23:49
Gracias Andros por responder pensé que mi tema habia quedado en el olvido, muy interesante lo del amplificador expansor y el ENOB, investigaré mas sobre estos dos puntos.

Sobre el AD620 creo que te da una ganancia programable a traves de una R y claro con un MUX puedes seleccionarla digitalmente, bueno no habia pensado en dicho IC porque dificil que lo encuentre por aqui, pero si habia pensado en escalar la fuente usando el MUX es decir si coloco el comun del mux CD4051 con una R a Vfuente y los otros canales con diferentes R's a GND (formando varios divisores de tensión) el problema aqui es que el común estaria "sometido" a 30V cuando la fuente opere al maximo y según "data-chip" el máximo que soporta el mux es 15V por eso lo descarté.

Tambien pensé en usar unos reles pequeños para switchear las diferentes R's pero no quiero que algo esté "sonando" en mi circuito a medida que el voltaje varia, asi que se me ocurrió otra idea para lograr los 12bits pero no me agrada porque es mucha cosa, las soluciones mas inteligentes para mi son las que no requieren tanta cosa e igual son muy efectivas, igual paso a explicar y a ver que opinan:

Como el pic tiene 10 bits, con la tecnica del cambio de referencia obtengo 1 bit mas, ahora me falta otro bit mas, entonces mi logica dice: cuando mi registro final detecte el valor 2047 entonces habilito un opamp-restador que resta 5v a la entrada analoga del pic de esta manera en el pin V+ del opamp-restador le llega 5v+(delta) y el restador le resta 5v por tanto a la salida del restador que esta conectado a la entrada del pic le llega "delta voltios" en este caso habilito un bit mas y vuelvo a registrar 2048 valores adicionales por lo tanto el pic registró 2048 valores con restador = 0v y 2048 valores mas con restador = 5v en total registró 4096 valores y aqui están mis 12 bits de resolución.

Obviamente mi divisor de tensión de la fuente está calculado para que a la entrada del V+ del opamp restador le llegue maximo 10V porque aqui el restador al restar 5v hará que le llegue al pic 10v - 5v =5v maximo.

Espero se haya entendido, y tambien seguiré esperando mas sugerencias para obtener 12bits en el adc.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: andros en 08 de Febrero de 2008, 18:01:29
Hola javicho, te juro que el ad620 es fácil de conseguir.. (sis e consigue por acá se consigue en cualquier lado, jajaja!), sino analog te lo manda por correo (demora una a dos semanas).

respecto a tus propuestas, podrías hacer un esquema básico, es que ando un poco corto de entendimiento... :(. Lo otro, averigua lo de las tablas, ahora no estoy en mi casa, pero cuando llegue veré si encuentro la documentación..., en serio, cuando lo ví parecía muy fácil.

Suerte.
Título: Re: Aumentar resolución del ADC
Publicado por: andros en 08 de Febrero de 2008, 18:10:25
Para lo del común de 30 V en el mux se me ocurre que puedes atenuar antes de esto la señal por 2, es decir 15..., se me ocurre porque si hay circuito pre-amplificadores no veo porque no sería útil un pre - atenuador!!. No sé, depronto estoy diciendo un disparate.

Lo de los relevos si es para descartar de plano..., los transitorios que generan la conmutación se te tira el circuito entero, no lo recomendaría, tienes razón para descartarlo.

El otro esquema que planteas me parece razonable, hay que ver que tanta precisión alcanzas, aunque si tu amplificador restador es una entrada diferencial !wala! me parece súper, las entradas diferenciales antes te brindan mayor desempeño, gracias al CMRR (factor de rechazo en modo común) (espero haber entendido).

Suerte.

P.D: Que tal sería combinar todas estas técnicas?

Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 08 de Febrero de 2008, 20:33:54
Respecto a lo del "pre-atenuador" bueno en si ya estoy "pre-atenuando" el voltaje de fuente por 3 osea al maximo de 30V mi "pre-atenuador" me entrega 10V.

En caso de conseguir el AD620 como se podria obtener los 12 bits de resolución?
Quisiera saber como es el asunto de las tablas esperare tus comentarios amigo Andros.

Aqui un bosquejo de lo que explique anteriormente, el restador es el clasico restador con opamp lleva 4 resistencias asociadas se me hace dificultoso colocar las R's que le acompañan por eso lo he colocado como un bloque.

Alguien implemento un "adc a mano" usando el timer y comparador o algún metodo parecido? cuales son las ventajas y desventajas de este metodo?

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: andros en 09 de Febrero de 2008, 03:11:53
Te adjunto el documento donde esá lo de las tablas, espero te ayude (pag 11 -13 ).

Revisé algo del diseño haciendo la configuración diferencial del op - amp y la respuesta del restador tal como se conoce no es muy satisfactoria, pues depende mucho de la tolerancia de las resistencias, me explico, he hecho la resta entre los voltajes de entrada en el caso que v2 = 10, y v1 = 5, con la ayuda del simulador apliqué el análisis montecarlo..., y para resistencias de 5% de tolerancia la variación del voltaje a tu salida puede ser del orden de 300mv (es decir, este análisis dice que tu salida puede estar en un valor cualquiera en este rango para resistencias de 5% de tolerancia), si son de 1% el rango es de 80mV. En ese sentido el uso de un amplificador de instrumentación como el ad620 o cualquier otro te ayudaría a hacer la misma resta, y en ese caso no necesitarías resistencias extras, pues si el ad620 no tiene resistencias la ganancia es 1. Hay otros amplificadores como asd524 y el amp02.

Lo otro, de como sería con el ad620 y las escalas.., pues dejame analizar entonces en profundidad el caso, pues a diferencia de como me tocó a mi me tocaba medir voltajes del orden de los 30u voltios hasta 1 voltio, en este caso la cuestión es atenuar.., y es distinto, de todas formas estoy pensando en ello....
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 09 de Febrero de 2008, 12:32:21
Gracias por el documento amigo Andros, aunque me parece que no podré aplicar esa técnica aqui en mi medición de la fuente por lo siguiente: ahi parten del hecho de que el sistema auditivo humano es un proceso logarítmico en el cual los sonidos de gran amplitud no requieren la misma resolución que los sonidos de baja amplitud, entonces usan un compresor de señales y en la recepción un expansor y a este proceso le llaman "Companding", hay 2 estandares el u-Law (U.S. y Japón) y el A-Law (Europeo) cada uno tiene su formula de expansión y compresión y a partir de ello generan unas tablas para compresión y expansión y en resumen lo que hacen las formulas es eliminar los bits de menor peso a medida que la señal va creciendo y asi la compresión se forma a 7 bits que hasta puede ser de 5 bits y para recuperar la señal se usa la formula de expansión que trata de regenerar "lo mejor posible" a la señal original.

Como ves mi amigo Andros no creo que esta técnica pueda aplicarla a la medición de mi fuente porque aqui se trata de que la resolución siempre sea de 10mv para "señales bajas o altas" de mi fuente (por decirlo de alguna manera) ... a menos que mi fuente hable :D

Vi tu simulación, ese efecto podria suceder aun no he montado esa parte, pero una vez que lo haga comentaré los resultados, lo que quiero hacer es calibrarlo usando un potenciómetro de precisión e ir ajustando el error que me pueda originar esta configuración, esto si es algo muy probable que suceda, ojalá el restador no deforme la señal de fuente (al menos no mucho) igual trataré de buscar el AD620 por aquí.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: andros en 09 de Febrero de 2008, 15:17:48
si..., ley el pdf... y tienes razón!!!, que embarrada...

suerte.
Título: Re: Aumentar resolución del ADC
Publicado por: reiniertl en 11 de Febrero de 2008, 12:02:33
Un método para aumentar la resolución de tu conversor, puede ser utilizar un amplifiador con ajuste de cero programable (amplificador restador). De esta forma cuando colocas tu Vout a la entrada del ADC, y tomas la primera muestra, te fijas si sobrepasa cierto valor, si este fuese el caso, ya sabes que la tensión a la entrada del ADC es superior, digamos, a 2V.

Ahora reconfiguras el cero del amplificador y vuelves a tomar una muestra, si es superior a cierto valor, significa que ahora la tensión a la entrada es superior a 2V anterior + 2V actual, 4V.

Vuelves a reconfigurar el ajuste de cero y tomas otra muestra, ahora tendrías un valor de 10bits, entre 0 y 1V, que sumarías a los 4V anteriores. Con eso tienes una resolución alta, pero debes probar y ver que tal te sale.

Lo complicado en este método es que tendrías que utilizar o un DAC para restar una tensión conocida a la entrada del restador o tendrías que utilizar un potenciómtero digital para hacer lo mismo. Conclusión, que lo más recomendable y menos complicado es buscarse un conversor de 12 bits y engancharlo directamente al PIC. Yo no anduviese complicandome demasiado y haría precisamente eso.

Saludos
Reinier
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 12 de Febrero de 2008, 13:15:39
Hola Reinier, ese método es el que expliqué en un post anterior solo que mi Vref+ no es 2V sino 2.5V y aquí quisiera hacer una aclaración tal vez estoy equivocado o nose ... según "datachit" tenemos:
      2V       < (Vref+) - (Vref-) < VDD + 0.3V         ... (1)
VDD - 2.5V <       (Vref+)       < VDD + 0.3V         ... (2)
   -0.3V      <        (Vref-)        < (Vref+) - 2V        ... (3)
   -0.3V      <          Vin           < (Vref+) + 0.3V     ... (4)

Si Vref+ = 2V y Vref- = 0v cumple en (3), entonces (Vref+) - (Vref-) = 2V y esto cumple en (1) pero para que también cumpla en (2) entonces VDD deberia ser 4.5V y no 5V, esta es la razón por la que no uso Vref+=2V porque me obligaria a calibrar mi VDD a 4.5V.

Lamentablemente estas pruebas las haré este sabado, estos dias no podré hacerlo asi que comentaré mis resultados el sabado por la noche o el domingo. Saludos y gracias a todos por responder.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: Javicho en 22 de Febrero de 2008, 13:16:16
Bueno finalmente luego de largas pruebas, desdoblar en 2 rangos (0 a 2.5v y 2.5v a 5v) para obtener un bit mas de resolución (osea tener 11 bits de ADC) el método si funciona "pero" como la fuente a medir tiene ruido entonces usé un filtro Butherworth de 2do orden pero igual se mantiene el ruido de aprox 38mV esto hace que la lectura muestre un valor variable entonces hize un promedio de muestras y mejoró pero por ser un promedio en pantalla ya no va a llegar al maximo digamos en el rango de 10.23 a 20.47V entonces se queda en pantalla maximo hasta 20.35V para solucionar esto cambié los rangos de 0 a 2.2V y 2.2V a 4.4V y ahora si llega bien al máimo de 20.47V y digamos que hasta aqui todo va mucho mejor pero esto solo seria para una fuente de hasta 20.47V y yo tengo una fuente de hasta 30V y aqui el restador no me funcionó, bueno ni siquiera lo armé porque justo antes de empezar a hacerlo me percaté que mi divisor de tensión antes calibrado hasta 20.47V debia cambiarlo para que acepte hasta 30V y aquí estuvo el error.

La conclusión de todo esto es que si bien es cierto el "datachit" te dice que VDD-2.5V < Vref+ .. osea si VDD=5V entonces deberiamos usar 2.5V < Vref+, no implica que no se pueda usar un Vref+ = 2.2V lo que sucede es que la precisión del conversor en este caso ya no estaria garantizada por el fabricante, pero lo probé y anduvo bastante bien.

Para terminar con este tema, no me quedó otra que cambiar el divisor de tensión para 30V y mostrar una resolución en LCD de 0.1V ... algo es algo peor es nada :D.

Gracias a todos los que colaboraron en el tema.

Javicho.
Título: Re: Aumentar resolución del ADC
Publicado por: totuer en 05 de Abril de 2011, 23:27:56
Se que es un pos-tumo porque este tema murió pero quiero dejar una experiencia personal, al trabajar con delta  vREF menores a los indicados en la hoja de datos, en los extremos del intervalo de medición se generan una multitud de defectos, como valores que nunca tomará porque salta y simplemente nunca alcanza ciertos valores, sobre todo los cercnos a 1000, también salta de forma incontrolable en la zona baja moviendose continuamente y si el potencial a medir es cercanoa 5 volt es un desastre, prácticamente in-usable y la mitad de la escala no es la mitad del valor ADC (asimetria).
Todos estos efectos se ven claritos con Delta vref de 0.5 volt.
Conclusión, si necesitan mas presición utilkicen un conversor AD externo que por unos dolares hay inclusive I2C de 18 bit super limpios que no presisan superpromedios ni cuentas complejas y mientras anto el micro hace muchas otras cosas.