TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Esau en 11 de Mayo de 2011, 13:06:25
-
Hola
Estoy trabajando con un sensor cuya salida varía de 0 a 1.8V. Me gustaría digitalizar estas señales mediante el ADC del PIC18F4550. Mi duda surge puedo utilizar en CCS directamente la instrucción:
setup_adc_ports(AN0|VREF_VREF)
Y es que leyendo el datasheet del PIC encontre esta tabla. Entonces, Vref debe ser mínimo de 3V puesto q alimento al PIC con 5V. Saludos
-
Debes colocar setup_adc_ports (AN0|VSS_VREF) y Vref+ a 3.0 V para cumplir con los requerimientos establecidos en el datasheet del microcontrolador..
Puedes conectar tu sensor, que va desde 0 a 1.8V, directamente o si quieres mejor resolucion amplificar para que 1.8V sea 3.0V :mrgreen:
Saludos!
-
Hola, un amigo conectó lo siguiente:
Vref+=5V Y Vref-=1.8V
Entonces me comentó que esto produce un voltaje de refrencia de 3.2V (ligeramente superior a 3V citados en la tabla 28-28 de las características eléctricas del PIC18F4550) y con esto, el ADC siempre va a sensar desde 0 hasta la tension de referencia (3,2V). Y algo importante que el Vref- no es la tension a partir de la cual sensamos! sino que Vref- conjuntamente con Vref + sirven para saber hasta que tensión sensamos!.....¿Que opinan al respecto?
Entonces en CCS se tienen 4 posibles formas de elegir esta tensión de referencia:
VSS_VDD 0x00 // Range 0-Vdd
VREF_VREF 0x30 // Range VrefL-VrefH
VREF_VDD 0x20 // Range VrefL-Vdd
VSS_VREF 0x10 // Range 0-VrefH
Las cuales se esciben en esta instrucción.
setup_adc_ports(...)
Cual debo elegir de las 4??? Si opto por la solución de mi amigo
Saludos
-
Todo bien, pero haciendo eso tienes menor resolución que colocando Vref-=0V y Vref+=3.0V, y además se debe adaptar el rango de salida del sensor que actualmente es de 0 a 1.8V, a 1.8V y 5V. Pedile a tu amigo que te detalle como lo ha desarrollado :mrgreen:
NOTA IMPORTANTE: Vref- indica la tensión mínima del conversor, Vref+ la tensión máxima. No es que (Vref+ - Vref-) sea el rango desde 0V :shock:
Después para la selección, lee detalladamente el datasheet del microcontrolador, en el apartado 10-BIT ANALOG-TO-DIGITAL CONVERTER (A/D) MODULE ;-)
Saludos!
-
Ok..No cabe duda que es mejor trabajar en el rango de 0 a 3 V como voltaje de referencia. Mi pregunta es es lo mismo
setup_ADC_ports(AN0|VSS_VREF), donde VREF es 3V.
y setup_ADC_ports(AN0|VREF_VREF),cuya conexion física del Vref- es gnd y Vref+ es 3V ?????
Ya hice la simulación y todo parece indicar que ambas se pueden usar, sin embargo mi duda surge debido a que en la tabla 28-28 del datasheet se marca una deltaVref de 3V y donde escribe explicitamente Vref(+) - Vref(-).... >=3V si VDD=5V, por lo cual talves sea necesario ser más explicitos en el programa y que setup_ADC_ports(AN0|VREF_VREF) sea mas indicada que la otra opcion.
Gracias
-
Da el mismo resultado, pero estas utilizando el pin Vref- sin ninguna necesidad, ya que lo conectas a GND. Para eso solo colocas setup_ADC_ports(AN0|VSS_VREF) y te ahorras un pin
-
Gracias Suky, tus consejos me fueron de mucha ayuda....
Saludos