TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Nocturno en 04 de Febrero de 2008, 15:58:40

Título: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Nocturno en 04 de Febrero de 2008, 15:58:40
Siempre que utilizo el ADC del PIC me encuentro continuas oscilaciones en el/los bits menos significativos, aún cuando la señal que le meta sea perfectamente estable (por ejemplo, un divisor de tensión).

La cosa mejora si pongo un condensador de 100nF desde la entrada hasta GND y si hago muchas lecturas y las promedio pero me gustaría saber qué más técnicas se pueden utilizar para estabilizar la lectura del ADC y si finalmente se puede conseguir dejarlo quieto.

Estoy usando un PIC18F2520 y configuro el ADC a 10bits. La oscilación llega hasta +-5 unidades.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: flacoclau en 04 de Febrero de 2008, 16:10:00
Hola Manolo yo utilizo siempre una red RC en la entrada del circuito eso me lo resolvió bastante, pero no del todo y luego hice algo parecido pero por soft, si te fijas en el hilo "Luchando contra el ruido por soft" puse una técnica.

http://www.todopic.com.ar/foros/index.php?topic=18647.msg130420#msg130420

saludos!!!
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: jfmateos2 en 04 de Febrero de 2008, 16:14:18
A mí me gusta la respuesta de Ttekmah en este hilo http://www.ccsinfo.com/forum/viewtopic.php?t=33307&highlight=adc
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: reiniertl en 04 de Febrero de 2008, 16:21:51
Ha pos utilizando referencias externas: Lo mejor referencias de BandGap, que se fabrican específicamente para ello, son como reguladores monolíticos, pero MUUUUCHOOOO más precisos, y claro, a los que no les puedes sacar mucha corriente, son para eso específicamente, para referencias de tensión o corriente (que también las hay). Analog Devices hace varios circuitos con ese propósito.

Puesto que si usas la referencia interna del PIC, ésta se puede ver afectada por la carga de los circuitos internos del PIC, así que por ello es que se pueden usar referencias externas para aumentar la presición y por supuesto el rango de trabajo del circuito.

Si quieres mucha más precisión, lo mejor será colocar tierra independiente o AGND como quieras llamarle para la parte del circuito de toma de datos y el ADC. Hay PICs que tienen REF+ y REF- precisamente para ese tipo de cosas.

Saludos
Reinier
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Marioguillote en 04 de Febrero de 2008, 22:19:15
Hola !

Manolo fíjate en éste (http://www.todopic.com.ar/foros/index.php?topic=13389.msg86439#msg86439) post de Chaly (Chaly volveeeeeé !!!!! ) que dá un ejemplo y dice textualmente:

El circuito integrado LM336-2.5 es usado como tensión de referencia de 2.5V para los conversores, ya que si usáramos de referencia la tensión de alimentación del propio PIC, las lecturas de temperatura podrían tener grandes errores.

Tal vez te sea útil.

Saludos !
Mario
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: flacoclau en 04 de Febrero de 2008, 23:25:24
Más o menos así es lo que dices Mario?  :D :D

http://www.todopic.com.ar/foros/index.php?topic=13389.msg77809#msg77809

http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=13389.0;attach=1563
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Nocturno en 05 de Febrero de 2008, 04:47:27
¿Y servirá si le pongo una referencia de 5V?

Gracias por vuestra ayuda.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: RedPic en 05 de Febrero de 2008, 05:18:37
Cuando hayas puesto todos los medios físico-electrónicos para solucionar la inestabilidad del sistema, adopta el método estadístico para estabilizar el remanente. Es lo que hice en el Teclado AD con un solo Pin y funciona muy bien. Salvo claro está si cada lectura es relevante y no puedes agrupar las lecturas en bloques para obtener el promedio. La frecuencia de lectura te va a disminuir en el mismo orden de agrupación que hagas para "mediatizar" las lecturas, 5:1, 10:1, n:1.  :mrgreen:
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: El_Guitre en 05 de Febrero de 2008, 08:02:13
Interesantes las técnicas que se propusieron en este hilo. Actualmente estoy trabajando con el acelerometro que me enviaron de freescale y tube que hacer un promedio de 8 muestras del ADC por que era imposible que no saltara hasta en 10 o mas unidades el valor del adc configurado a 10 bits. Estoy utilizando las referencias entre VCC y GND. 
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Azicuetano en 05 de Febrero de 2008, 08:45:49
Yo siempre pongo un filtro paso-bajo en las entradas A/D del PIC (siempre y cuando la velocidad de respuesta del sensor no tenga que ser muy rápida).

Cuando no pongo el filtro (o se me olvida  :D) lo que hago es promediar. El_Guitre, en el acelerómetro aunque tengo los correspondientes filtros, promedio con 100 valores y aún así tiembla en +-1 unidad el AD.


Un saludo desde Alicante.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Nocturno en 05 de Febrero de 2008, 08:52:47
No necesito una velocidad de respuesta grande, me conformo con una muestra válida cada décima de segundo. ¿Me podéis recomendar alguna configuración de filtro paso-bajo?
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Marioguillote en 05 de Febrero de 2008, 09:17:40
Más o menos así es lo que dices Mario?  :D :D

 :shock:  :shock:  :shock:  :D  :D  :D

Los dos fueron a clase ése día .... ó compraron la misma revista !  :D
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: El_Guitre en 05 de Febrero de 2008, 09:23:48
Yo siempre pongo un filtro paso-bajo en las entradas A/D del PIC (siempre y cuando la velocidad de respuesta del sensor no tenga que ser muy rápida).

Cuando no pongo el filtro (o se me olvida  :D) lo que hago es promediar. El_Guitre, en el acelerómetro aunque tengo los correspondientes filtros, promedio con 100 valores y aún así tiembla en +-1 unidad el AD.

Un saludo desde Alicante.

Cuando hablas del filtro correspondiente te referis al la resistencia de 1k en serie y el capacitor de 0.1uF en paralelo que propone en datasheet? o le agregas un filtro adicional a este? Yo lo tengo conectdo como indica en la hoja de datos, probe con un capacitor de mayor valor pero no vi cambios sustanciales.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Azicuetano en 05 de Febrero de 2008, 09:26:10
Podría ser así:

(http://img147.imageshack.us/img147/1395/filtropbfi6.jpg)

Podemos ver como un operacional se encarga de amplificar una determinada señal y como después viene el filtro pasivo (R-C).

Los valores que aparecen son demasiado bestias. Me explico.

La frecuencia de corte de este filtro es:

Fc = 1 / (2 x π x RC)

Lo que hacemos es imponer una frecuencia de corte, es decir, una frecuencia a partir de la cual queremos cargarnos todas las señales para que no nos calienten la cabeza.

Imaginemos que queremos una frecuencia de corte de 10 Hz (así nos cargaremos el ruido a 50Hz y superiores). Vamos allá.

Cogemos el C=1uF y con la Fc=10 despejamos R y obtenemos:

R=16K.

Prueba con esos valores y juega un poco con ellos. Verás que cuando más baja es la frecuencia de corte del filtro... más lenta es la respuesta d ela señal que metes en el AD.

Ya nos dices tus experiencias.


Un saludo desde Alicante.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Nocturno en 05 de Febrero de 2008, 09:51:03
Ok, probaré el filtro pasa-bajo y una Vref estable a ver qué tal los resultados.
Gracias
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Azicuetano en 05 de Febrero de 2008, 10:07:51
Cuando hablas del filtro correspondiente te referis al la resistencia de 1k en serie y el capacitor de 0.1uF en paralelo que propone en datasheet? o le agregas un filtro adicional a este? Yo lo tengo conectdo como indica en la hoja de datos, probe con un capacitor de mayor valor pero no vi cambios sustanciales.

Me refiero, como muy bien dices tú, al que recomiendan en el datacheet. Como en la foto que pusiste cuando lo soldaste no tenías los filtros me pensaba que a lo mejor no los habías puesto.

Yo no he cambiado aún los valores, pero, si en el datasheet recomiendan eso... me juego el pescuezo a que es la mejor elección. La inestabilidad tiene que venir por otro lado  :?


Un saludo desde Alicante.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: El_Guitre en 05 de Febrero de 2008, 10:12:51
Si, la verdad se me escapo lo de ponerlos en el adaptador para que ya queden ahi, pero en el circuito que esta armado en el protoboard estan firmes los capacitores y las resistencias. Estimo que la inestabilidad puede venir por el lado de la referencia de tension. Estoy utilizando la referencia a VCC y GND, saco alimentacion del puerto usb de ahi la paso a 3.3 con un LM317 y sus respectivos condensadores y con eso alimento el PIC 18F2550 y el acelerometro. Calculo que la tension deberia ser estable, pero es posible que no lo sea tanto. Voy a promediar con mas muestras, quizas 100 como vos y examinar las referencias de tension.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Nocturno en 05 de Febrero de 2008, 10:54:11
He mirado entero el capítulo del conversor ADC de la data y no veo esos valores de resistencia y condensador recomendables, ¿dónde lo has visto?
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: El_Guitre en 05 de Febrero de 2008, 12:00:20
Manolo, esos valores estan en el data pero del acelerometro. En el del PIC no hay nada de eso.
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Nocturno en 05 de Febrero de 2008, 14:26:37
Ah, ok, había entendido mal. Gracias
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: reiniertl en 05 de Febrero de 2008, 15:01:29
Manolo, puedes utilizar cualquier tensión de referencia que quieras, siempre que no exceda la tensión máxima que te indique el datasheet. Esta tensión depende de la tensión con que alimentes al PIC, así que mira allí y ve si puedes poner la de 5V, aunque yo creo que no debe haber problemas. Una VREF buena y barata, la puedes hacer con un regulador monolítico pequeño, dedicado específicamente para ese fin.

Otra cosa, puedes usar filtro, pero muy importante es el PCB que hagas. Aleja en lo posible todos los circuitos analógicos de los digitales, si comparas la tensión a la entrada del conversor con GND utiliza VREF- como tierra del conversor y no la conectes por nada del mundo a la tierra del resto de tu diseño.

Lo del filtro con una R de 1K y un cap de 0.1uF puede servirte bien para este caso, porque se lleva todos los ruidos de alta frecuencia, pero es importante que hagas un buen diseño del PCB y que utilices adecuadamente las tensiones de referencia y sobre todo una buena TIERRA.

Ten en cuenta que si metes un filtro como el propuesto, es probable que cargues mucho el circuito analógico, así que te recomiendo que mires bien esa parte, porque es probable que requieras un buffer, o mejor un filtro activo, de ganancia unitaria. Este tiene la ventaja que mantiene fuerte la señal analógica a la vez que mejora la respuesta de frecuencia del diseño.

Por si fuera poco, y dado que te gustan los dsPIC, si tienes una señal con una frecuencia muy bien identificada, puedes usar un filtro digital del tipo FIR o IIR para eliminar todo lo que se deba considerar como ruido.

Saludos
Reinier
Título: Re: Como resolver la inestabilidad en el ADC del PIC
Publicado por: Marioguillote en 24 de Marzo de 2008, 20:17:02
Hola a todos !

Cómo suele ocurrir a menudo, buscando otras cosas, encontré ESTO (http://techtrain.microchip.com/webseminars/UpdateHits.aspx?Type=S&Semid=40&Redir=http://techtrain.microchip.com/media/websem/ADC_Noise_021804.wmv).

Espero le tengan paciencia a la descarga, ya que la explicación de las técnicas usuales de reducción de ruidos en los conversores ADC, vale la pena.
Está hablado en inglés pero es muy intuitivo, claro y didáctico el video, por lo que se lo recomiendo a todos.
Al menos a mí, me ha sido muy útil.

El video sale del siguiente artículo : Techniques that Reduce System Noise in ADC Circuits (http://techtrain.microchip.com/webseminars/ArchivedDetail.aspx?Active=40)

Un granito más de arena en la lucha contra el ruido y la estabilidad de la lectura del ADC.
Si bien es más de lo mismo que venimos hablando y tiene algunos años, no deja de ser un útil tutorial de Microchip.

Saludos a todos !
Mario