Autor Tema: duda conexion ADC 10 bits en PIC 16F877A  (Leído 5555 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
duda conexion ADC 10 bits en PIC 16F877A
« en: 26 de Enero de 2015, 14:11:19 »
Buenos dias compañeros quisiera que me ayudaran con una duda que tengo

Estoy trabajando con un PIC 16F877A y quiero leer con el adc un voltaje que va entre 0 - 200mV

El adc lo tengo configurado a 10 bits y  de la siguiente manera
Código: [Seleccionar]
setup_adc_ports( AN0_AN1_VSS_VREF );
        setup_adc(ADC_CLOCK_INTERNAL);
        set_adc_channel( 1 );

y la conversion del dato en el codigo es la siguiente
Código: [Seleccionar]
data = read_adc();
         voltaje = ( (float)data * 200 / 1023.0);

A la entrada del adc le estoy enviando un voltaje que varia entre 0-200mV a traves de un potenciometro que esta siendo alimentado por una fuente que la tengo ajustada para 200mV. Mas sin embargo no estoy obteniendo la lectura que deberia ser ya que lo estoy comparando con un multimetro y no me marcan lo mismo.

En hardware tengo conectado el pin 5 del pic o sea Vref+ a 700mV que es lo que he logrado bajar el Voltaje de entrada y el Vss o sea Vref- lo tengo conectado a tierra.

Mi duda esta en lo siguiente: no se si hay necesidad de conectar el Vss ( Vref-) al GND del circuito o ya va internamente conectado a traves del pic
o no se cual consideren que es mi problema.

y sucede que cuando no le tengo conectado nada a la entrada del adc me marca tambien el voltaje maximo, cosa que pienso no deberia suceder.

Espero me puedan ayudar, gracias.

« Última modificación: 26 de Enero de 2015, 16:25:19 por GabrielD »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #1 en: 26 de Enero de 2015, 16:00:48 »
Hola, a mi la fórmula me da de la siguiente manera

data = read_adc();
         voltaje = ( (float)data * 700 / 1024);

si configuras la opción setup_adc_ports( AN0_AN1_VSS_VREF ); el pic toma como referencia gnd

Saludos

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #2 en: 26 de Enero de 2015, 16:45:20 »
Alguna idea de porque marca el voltaje maximo cuando no lo tengo conectado a nada?

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #3 en: 27 de Enero de 2015, 11:34:31 »
Bueno he estado investigando un poco con mi compañera y encontramos que el Vref+ no se puede bajar de Vdd - 2.5v, o sea que como tenemos una alimentacion de 5v no podemos bajarnos de 2.5v por lo tanto ahi ya estabamos mal.

Asi que pusimo el Vref+ a 3.6v y el Vref- a 2.7v ya que Vref- no se puede subir mas de Vdd-2v (3v en este caso) y tambien toca cumplir con la regla de Vref+ - Vref- <= 2v.

Pero ahora no se nos mueve nada la lectura; se nos quedo en 0v :s

Alguien sabe que podria estar pasando, algo en que nos puedan ayudar please.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #4 en: 27 de Enero de 2015, 12:07:57 »
Por que el A/D no es diferencial, sino single ended

si queres medir 200mV respecto a 0V entonces o pones Vref- a 0V y bajas lo mas posible Vref+ ( a pesar que pierdas un buen rango )
o te conseguis un A/D diferencial ( no se si llegara al rango ese de voltaje pero lo mas seguro que si se pueda, obviamente un ADC externo )
o aumentas la tension de entrada si podes ( amplificado con AO (no inversor, diferencial de instrumentacion,etc) o podes aumentar la tension de entrada ). Asi tu realacion quedaria multiplicada por la ganancia del AO.
o usas un conversor tension-frecuencia ajustado a 200mV, para simular lo mas posible al doble rampa de los voltimetros. Y podes simular lo que ocurre cuando se excede los 200mV de los voltimetros.
o Utilizar un micro con una VDD menor

Es lo unico que se me ocurre :)

Me explico:



Tu caso al ser single ended, lo que estas haciendo es poner AGND a 2.7V por lo tanto nunca va a existir una corriente que entre y cargue el capacitor del AD por que tenes como maximo 700mv de entrada. A no ser que puedas poner el comun de lo que vas a medir a 2.7V pero lo mas seguro es que traiga problemas.
« Última modificación: 27 de Enero de 2015, 12:47:06 por KILLERJC »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #5 en: 27 de Enero de 2015, 13:04:26 »
A mi me ha pasado que si bajo mucho la referencia el conversor se vuelve muy inestable, no te queda fácil utilizar un AOP de instrumentación, puede ser el AD620,

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #6 en: 27 de Enero de 2015, 20:47:01 »
No entiendo entonces para que ponen la opcion de referenciar el Vref- si solo va a funcionar estando conectado a gnd :s  
« Última modificación: 27 de Enero de 2015, 22:38:30 por GabrielD »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #7 en: 27 de Enero de 2015, 23:04:58 »
No entiendo entonces para que ponen la opcion de referenciar el Vref- si solo va a funcionar estando conectado a gnd :s  

Por que por ejemplo podes tener una entrada de 2.5V y que varia muy poco entonces pones tu referencia entren 2.2 y 2.8 por ejemplo ( aunque no se si es valido el rango de tension, pero se entiende el ejemplo )
Tambien tenes que pensar que es un micro de 5V por lo que se presupone que todo va a estar en un rango de 5V al menos.


A mi me ha pasado que si bajo mucho la referencia el conversor se vuelve muy inestable, no te queda fácil utilizar un AOP de instrumentación, puede ser el AD620,

Al menos creo que la solucion mas simple es con un AO, si es de instrumentacion como el que pasaste mejor, si es para un proyecto de una escuela o algo por el estilo podria utilizar cualquier AO a mano que posea, poner las resistencias de 5% de forma que 200mV se tradusca a 5V ( el maximo y que indicaria que se paso de escala cuando de 0x3FF el ADC ).
« Última modificación: 27 de Enero de 2015, 23:12:46 por KILLERJC »

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #8 en: 29 de Enero de 2015, 12:43:10 »
:s ok me toco cambiar la pcb que ya tenia

Gracias killer y diego por su tiempo para explicarme y aconsejarme :) Diego muchas gracias por tu recomendacion y killer muy amable como siempre con tus explicaciones.

Esta mañana ya acabo de ir por el ad620 y afortunadamente lo consegui  :) ahora me pondre a leer y a trabajar con el.

Les queria pedir que me aconsejaran ya que tienen experiencia trabajando con este amp, como haria la conexion del circuito.

Hare lo que me dijeron de cuadrar la ganancia para obtener 5v a la salida teniendo una entrada de 200mV. Para esto necesito una ganancia de 25 y segun la formula del datasheet necesitare una resistencia de 2058 ohm.

Pero tengo dudas de como conectar, pongo los 200mV al in+ y al in- que iria?

Gracias y que pena la ignorancia.
« Última modificación: 29 de Enero de 2015, 13:04:33 por GabrielD »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #9 en: 29 de Enero de 2015, 13:17:10 »
Hola, lleva los 200mV al +in y el -in llévalo a GND

Saludos.

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #10 en: 29 de Enero de 2015, 18:14:07 »
Hola Diego, he logrado que me bote 4.16v  teniendo los 200mV en la entrada pero al mover esta señal de 0 a 200mV con un trimmer no noto ningun cambio en la salida del ampl.

Sabes que podria ser?

 

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #11 en: 29 de Enero de 2015, 23:06:59 »
El AD620 debe estar configurado como lo muestra esta imagen y recuerda que para poder entregar 5V debe estar polarizado con 2 voltios más

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #12 en: 29 de Enero de 2015, 23:41:54 »
El AD620 debe estar configurado como lo muestra esta imagen y recuerda que para poder entregar 5V debe estar polarizado con 2 voltios más

+VS − 1.2 (Maximo)

Hola Diego, he logrado que me bote 4.16v  teniendo los 200mV en la entrada pero al mover esta señal de 0 a 200mV con un trimmer no noto ningun cambio en la salida del ampl.

Sabes que podria ser?

Que ganancia estas usando, tene en cuenta lo del limite de tension de salida del AO , creo que con 2.61Kohm te da una ganancia de casi 20, dejandote a 4V maxima escala, no tendrias problemas con el limite de tension del AO , pero deberias modificar la referencia de tu ADC, buscando AO rail-to-rail aun asi tienen una pequeña caida de tension, por lo que si queres llegar a 5V mejor alimentarlo con mas, tomando las precauciones necesarias en la entrada del ADC

Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #13 en: 30 de Enero de 2015, 14:59:35 »
Mmmmm ok ok entiendo, gracias nuevamente muchachos.

Por cierto acabo de cambiar el trimmer por el  el sensor que voy a usar que es un SP-110, es un sensor de radiacion solar muy bueno por si les interesa para algun proyecto, ya logre que funcionara alimentandolo con +5v y -5v. Al parecer el trimmer era el que me estaba poniendo problemas ya que el voltaje nunca llegaba a 0 a la salida.

Tengo el Vref del ad620 conectado a tierra y el Vin- tambien. Estoy obteniendo una ganancia de 28 pero voy a modificarla para bajarla a 20 ya que con esos 28 se me pasa del rango del voltaje analogico que le puede entrar al pin segun el las referencias electricas del datasheet.

Y voy a usar un cargador que entrega 15vdc para alimentar el amp entonces y bajarlo con un regulador a 5v para alimentar el pic.

Alimentare entonces el amp con +15v y a gnd, ahi no tendria problemas cierto?

Hare esas pruebas esta tarde   y les ire comentando como voy, gracias nuevamente :)


Desconectado GabrielD

  • PIC10
  • *
  • Mensajes: 34
Re: duda conexion ADC 10 bits en PIC 16F877A
« Respuesta #14 en: 30 de Enero de 2015, 16:49:44 »
Bueno ya hice pruebas y no tuve resultados positivos :(

Alimente con +15v y el pin 4 lo envie a tierra y no trabaja bien no se porque me parece que solo funciona con V+ y V-

como hago para saber si mi ad620 funciona correctamente? estoy empezando a dudar de su buen estado.

adjunto el esquematico de como lo estaba conectando.
« Última modificación: 30 de Enero de 2015, 17:47:50 por GabrielD »


 

anything