Multiplexacion adc 48 canales

#1
Buenas Gente del foro
Voy a realizar la lectura de 48 canales ADC esto es imposible de hacer con un solo microcontrolador en este caso use un pic 16f877A(puede cambiarse), asi que pense en hacer una multiplexacion de esto utilizando 3 4067N y 3 ADC08031
Diseñe un circuito con las conexiones adecuadas pero aun no lo monté por que tengo varias dudas que espero puedan ser aclaradas, estos sensores a los cuales necesito tomar las medidas estan funcionando a 3.3v al igual que el XBEE pero los circuitos 4067N y ADC08031 no se si tomen las medidas correctamente funcionando a 3.3v :eek:
adjunto dejo el esquematico
adc.jpg
https://www.forosdeelectronica.com/attachment.php?attachmentid=112713&stc=1&d=1403570611
GRACIAS:apreton:
 
#2
Hola.
Priorizar el voltaje de 3.3V por el Xbee puede no gustarle al PIC y en efecto... mira la hoja de datos y según la frecuencia de 20Mhz del cristal en el esquema, el PIC necesita como mínimo 4V.

En mi opinión sería mejor que todo trabaje a 5V y solo a 3.3V el Xbee, adaptando voltajes donde se conecte con el PIC.
O usar otro PIC que si pueda trabajar a 20Mhz a 3.3V... ver tambíen en la hoja de datos el mínimo de V que requiere el resto de integrados

Saludos.
 
#3
Hola.
Priorizar el voltaje de 3.3V por el Xbee puede no gustarle al PIC y en efecto... mira la hoja de datos y según la frecuencia de 20Mhz del cristal en el esquema, el PIC necesita como mínimo 4V.

En mi opinión sería mejor que todo trabaje a 5V y solo a 3.3V el Xbee, adaptando voltajes donde se conecte con el PIC.
O usar otro PIC que si pueda trabajar a 20Mhz a 3.3V... ver tambíen en la hoja de datos el mínimo de V que requiere el resto de integrados

Saludos.
hola Gracias por responder, el crystal de 20mhz es necesario por los Baud que voy a usar para el xbee, tengo un adaptador de niveles TTL 5v to 3.3v que funciona bien
Adaptación Niveles.JPG

pero el problema es la lectura de los datos los sensores solo funcionan a 3.3v hice una prueba conectando 1 solo sensor al pic en 5v y alimentando el sensor en 3.3v utilizando el adc interno del pic y bueno funciona pero no de la manera que deberia, utilizando el pic en 3.3v los valores son mas acertados.
ahora utilizando estos circuitos a 3.3v no se que tan bien funcione
 
Última edición:
#4
el crystal de 20mhz es necesario por los Baud que voy a usar para el xbee, tengo un adaptador de niveles que funciona bien
Solo me guio por los datasheet [ voltajes mínimos de operación ] y me inclino por la primera opción, siendo a que el PIC [5V para 20Mhz], los conversores y mux funcionen a 5V... el Xbee a 3.3V adaptando voltajes.

Ya seria adaptar el código y/o ajustar los voltajes de referencia para hacer una lectura más acertada.

Saludos.
 
Última edición:
#5
Coincido con ByAxel y lo que noto es que el ADC es de solo 8 bit (255 escalones) para el total de la alimentación del mismo.

Si se alimenta con 5V solo serian útiles los primeros 168 escalones, si en cambio se alimentara todo con 3.3V tendría los 255 escalones.


Saludos, JuanKa.-
 
#6
ok el pic puede funcionar a 5v el xbee a 3.3v con el adaptador de niveles, lo que no he probado es la multiplexion nunca la intente se como hacer la multiplexion por la tabla del datasheet pero el problema es la lectura si el voltaje de referenfcia es 5v y el sensor solo arroja 3.3v maximo en el adc entonces las lecturas no seran correctas
 
#7
Aprovecha el voltaje de referencia del ADC08031, si colocas la VRef de 0 a 3.3V va a usar los 255 escalones en la conversión como dijo J2C.
Puede que necesites algo de precición ahí como un pot. multivuelta o el TL431 u otro método que fije el Vref en 3.3V o un poquito más como 3.4V. Así ahunque funcione e 5V la lectura va a ser de 0 a 3.3V... igual como funsiona el ADC de un PIC.
 
#8
un poco mas especifico aun el sensor esta entre el rango de 0.7v a 3.3v equivalente a 0-255 ahora si el chip 4067N funcionando a 5v y el sensor en 3.3v luego el ADC08031 funcionaria correctamente?
 
#9
Una opinión, ¿porqué no usar el ADC interno del micro con referencia a 3.3V?, utilizando un sólo canal para no sacrificar tantos pines y usar los multiplexores externos 4067 que SI funcionan a 3.3V
 
#10
Una opinión, ¿porqué no usar el ADC interno del micro con referencia a 3.3V?, utilizando un sólo canal para no sacrificar tantos pines y usar los multiplexores externos 4067 que SI funcionan a 3.3V
Gracias por la respuesta
dices que elimine el ADC08031? lo implemente solamente por si utilizaba un pic que no tenga ADC tengo a la mano un 16f877A y con eso estaba probando pero si lo puedo eliminar lo que no se es como utilizar el Vref del pic en adc
:apreton:
 
#11
Exacto, a eso me refiero. Para utilizar Vref externo del PIC hay unos bits que modificar en el registro ADCON1. Dichos bits son los PCFG3:pCFG0, en la hoja de datos está una tablita con las funciones que desempeña cada pin en cada combinación de estos bits.

Con esto te ahorras los ADC externos y ganas 2 bits de resolución (el ADC del PIC es de 10 bits). Ahora sería mejor cuestión de pensar en el micro definitivo de la aplicación para saber que pin será entrada analógica y cual Vref+; esto porque de PIC a PIC estas configuraciones suelen variar
 
#12
Exacto, a eso me refiero. Para utilizar Vref externo del PIC hay unos bits que modificar en el registro ADCON1. Dichos bits son los PCFG3:pCFG0, en la hoja de datos está una tablita con las funciones que desempeña cada pin en cada combinación de estos bits.

Con esto te ahorras los ADC externos y ganas 2 bits de resolución (el ADC del PIC es de 10 bits). Ahora sería mejor cuestión de pensar en el micro definitivo de la aplicación para saber que pin será entrada analógica y cual Vref+; esto porque de PIC a PIC estas configuraciones suelen variar
Ok si entiendo que eso varia segun el micro a usar en este caso el 16f877a
adcon1.png
antes de montar algo físico debo probar si la configuracion funciona correctamente entonces el pic que tengo a la mano es el 16f877A
configuro el
ADCON1 =%00001000
y como seria la configuracion del vref debo suministrar un voltaje equivalente a 3.3v en vref+?
Gracias
 
#13
Mejor usar PCFGX=%0101, así sacrificas 3 pines, 1 para Vref+ y dos canales analógicos, uno de ellos para la salida del multiplexor.

Para implementar el voltaje de referencia puedes usar un simple divisor resistivo hecho con un potenciómetro de ajuste fino conectado entre +5V, 0V y el cursor hacia el pin AN3/VREF+ del PIC, o bien optar por una referencia de voltaje integrada que suelen ser más exactas pero que ahora se me escapan las matrículas.
 
#14
Mejor usar PCFGX=%0101, así sacrificas 3 pines, 1 para Vref+ y dos canales analógicos, uno de ellos para la salida del multiplexor.

Para implementar el voltaje de referencia puedes usar un simple divisor resistivo hecho con un potenciómetro de ajuste fino conectado entre +5V, 0V y el cursor hacia el pin AN3/VREF+ del PIC, o bien optar por una referencia de voltaje integrada que suelen ser más exactas pero que ahora se me escapan las matrículas.
me serviria mas ADCON1 =%00001100
ya que son 48 canales 3 lecturas adc en el pic
de igual manera debo alimentar el xbee y los 48 sensores con 3.3v puedo conectar directamente con 3.3v el vref+?
 
#15
mm no te lo recomiendo hacerlo directamente de +3.3Vcc por el tema del ruido que se puede colar por allí, si quieres tomarlo de allí implementa algún filtro con bobina y capacitor antes de conectar Vref+



o intenta con el puro capacitor.
 
#16
#17
¿pero esa es la de 5volts no?, es mejor otro filtro para la de 3.3V (aunque la tomes de los 5V), Incluso para mejorar las cosas puedes utilizar un filtro pasabajas



con un resistor de bajo valor, 47ohms por ejemplo y de allí a Vref+ para tener lo más estable posible la tensión de referencia
 
Última edición:
#18
¿pero esa es la de 5volts no?, es mejor otro filtro para la de 3.3V (aunque la tomes de los 5V), Incluso para mejorar las cosas puedes utilizar un filtro pasabajas

http://www.duiops.net/hifi/enciclopedia/images/low-pass.gif

con un resistor de bajo valor, 47ohms por ejemplo y de allí a Vref+ para tener lo más estable posible la tensión de referencia
ahora que pienso en la bateria cada sensor consume 0.4A serian 6.4A estaba pensando en una bateria lipo pero son un poco peligrosas

bueno y si coloco otro lm317 solo para vref+ ? las resistencias dan 3.296 exacto para la fuente uso las resistencias de 1% azules de 5 bandas
 
#19
ahora que pienso en la bateria cada sensor consume 0.4A serian 6.4A estaba pensando en una bateria lipo pero son un poco peligrosas
¿a que te refieres con peligrosas? :unsure:, para ese consumo considera las baterías de plomo de esas de 7A/H, 12A/H

bueno y si coloco otro lm317 solo para vref+ ? las resistencias dan 3.296 exacto para la fuente uso las resistencias de 1% azules de 5 bandas
Si obtienes esa precisión de voltaje ¿porqué no?, implementalo así (y)
 
#20
Yo opino que es mejor buscar un microcontrolador que funcione a 3.3V, actualmente ya hay muchas y muy buenas opciones, podria ser un MSP430 (algunos modelos ya tienen transmision RF integrada), un Freescale (los Flexis son intercambiables 8/32 bits y pin a pin compatibles) o un ARM (mucho mas poder de calculo que un PIC)

Y lo digo por que alguna vez tuve que hacer calculos de 32bits con signo en un PIC16F877, y fue la muerte lidiar con la paginacion de memoria... no quiero ni pensar como vas a resolver el cambio de paginas para 48 sensores...
 

Temas similares

Arriba