# Conversor AC / DC (PIC16F877)



## frape (Ene 21, 2008)

Buenas noches a todos, soy nuevo n el foro, actualmente estoy haciendo mi tesis y tengo el siguiente problema. estoy usando el pic16f877 para capturar una señal analogica de frecuencia 20mhz y 07 voltios de amplitud para que este haga la conversion analogica digital, el problema es que parece que el pic no esta viendo la señal correctamente, es decir es como si la señal es muy rapida para el modulo analogico digital, por ejemplo si la señal a digitalizar es la siguiente 0.7 Vac y F= 20mhz el modulo muestra 0.5V otras veces 0.2V otras veces 0V. y este es el problema que tengo de ante mano muchas gracias a todos.


----------



## Paloky (Ene 22, 2008)

La señal analógica es oscilante?

Si lo que estas midiendo es una señal continua, el problema es que tienes ruido en la señal.

Otra cosa, es que dices que la señal de entrada es de 20MHz !.   Con este pic, es impossible hacer la adquisición de esta frecuencia.    La máxima frecuencia de captura de este pic (con el cristal de 20MHZ, es de 6 uS).


----------



## Ing.Cano (Ene 22, 2008)

"frecuencia 20mhz y 07 voltios de amplitud"

Si hablas de 20 MHz no se puede con el pic16f877 como dice Paloky. Necesitarias un DSP en este caso. Pero si es 20mHz (mili hercios) debes amplificar la señal y luego acondicionarla. Te recomiendo que coloques un capacitor de 0.1uF lo mas cerca del pin ADC. 

Tambien me gustaría saber si estas usando un VREF de 5V externo o el Interno que comparte con la alimentación el pic. Si estás utilizando 5 voltios el rango de conversión ADC es muy distribuido para los 0.7V.

Debes o amplificar la señal o reducir el VREF condicionandolas en ambos casos para obtener una lectura excelente.


----------



## Eduardo (Ene 22, 2008)

Podes explicar mejor tu problema? 
Porque asi tal cual, lo que se interpreta es que estas metiendo directamente una señal de 0.7V 20MHz en el 16F877 y esperas leer la amplitud.


----------



## frape (Ene 22, 2008)

ante que nada gracias por las respuestas, les explico, estoy usando un max038 para obtener una señal sinusoidal para luego pasarla por un conversor voltaje corriente implementado con un AD620, esta corriente con un arreglo de multiplexores max352 la paso por tejido muscular que actúa como una impedancia, el voltaje  lo recolecto con un AD620 la señal sinusoidal obtenida la paso por un filtro notch con Fc = 60hz y de aquí va al PIC que debe digitalizar la señal para luego enviarla a la PC para hacer un registro con un programa que hice en labwieb, ahora este es el problema la frecuencia de esta señal esta en el orden de los mega hertz y el pic no esta en capacidad de capturarla, pensé en un conversor analógico digital el ADC0808 pero trabaja hasta los 1280khz, y quisiera saber si ustedes pueden orientarme un poco para vislumbrar la solución a esto.


----------



## Eduardo (Ene 22, 2008)

Un AD620 tampoco te sirve para una señal de 20MHz.

Suponiendo que el 16F877 hubiera podido leer esas señales... Como sincronizabas las conversiones para leer siempre lo mismo ?


----------



## frape (Ene 22, 2008)

ese es el asunto que el pic arroja siempre valores distintos para un mismo nivel de señal, que es la obtenida con el ad620, que es correcta ya que se visualizo con un osciloscopio.

eduardo tienes razon a esto el ad620 con G=1 trabaja a 1000kHz, pero existe alguna forma de dividir la frecuencia de la señal?


----------



## Eduardo (Ene 22, 2008)

O no te explicas bien o tenes un error conceptual sobre la conversion AD.  Da la sensacion que crees que entrando una señal alterna en el conversor, en el registro vas a leer la amplitud.

De acuerdo a la precision que necesites tenes rectificarla con un diodo o hacer un detector sincronico,  pasas a una señal de continua (o baja frecuencia) legible con cualquier basura.


----------



## ELCHAVO (Ene 22, 2008)

esa frecuencia esta muy alta para muestreo.

mira el datasheet del micro en lo que corresponde a los conversores.


----------



## frape (Ene 25, 2008)

muchas garcias, tenia razon era un error conceptual, rectifique la señal luego la pase por un amplificador no inversor con G=2 y luego al pic despues en el pic dividi el dato entre dos y listo.


----------



## katypieru (Abr 2, 2008)

hola frape una pregunta donde conseguiste el max038 yo tambien tngo que hacer mi tesis y necesito ese integrado pero no lo consigo :S

agradeceria si me pudieras ayudar! gracias..


----------



## macraig (Abr 2, 2008)

Ing.Cano dijo:
			
		

> "frecuencia 20mhz y 07 voltios de amplitud"
> 
> Si hablas de 20 MHz no se puede con el pic16f877 como dice Paloky. Necesitarias un DSP en este caso. Pero si es 20mHz (mili hercios) debes amplificar la señal y luego acondicionarla. Te recomiendo que coloques un capacitor de 0.1uF lo mas cerca del pin ADC.
> 
> ...



Ya que esta el problema resuelto, quisiera saber por que recomienda el Ing. Cano un DSP. Si no es mucha molestia.

Salu2.


----------



## pic-man (Abr 2, 2008)

Ya que con un DSP puedes trabajar a frecuencias mas altas que los 20MHz máximo de un pic 16f877


----------



## macraig (Abr 2, 2008)

pic-man dijo:
			
		

> Ya que con un DSP puedes trabajar a frecuencias mas altas que los 20MHz máximo de un pic 16f877



Bueno, tambien puedes con un arm, o con un avr32 y son mas baratos.... Por que especificamente un DSP.

Salu2


----------



## frape (Abr 4, 2008)

gente gracias por la ayuda, lo que hice fue pasar la sañal  por un filtro de muesca  con Fo =60hz para atenuar el ruido de 60hz de la red y otros, luego la amplifique por 10, luego la pase por un rectificador implementado con opam para evitar los 1.4 de los rectificadores a base de diodos y despues al pic, la referencia del conversor la puse a 1 voltio para obtener una resolucion adecuada, luego en el pic se hacen las compensaciones necesarias por software  y todo bien. saludos a todos


----------



## eserock (Abr 5, 2008)

Hola  a mi  me parecio interesante lo que señales en la forma de operar del equipo electronico que diseñas aplicas 20Mhz al cuerpo, con que finalidad, a mi me einteresan mucho estos temas ojala me puedas dar algo de información gracias desde ya


----------



## Ing.Cano (Abr 7, 2008)

macraig dijo:
			
		

> pic-man dijo:
> 
> 
> 
> ...



Como te explicaron anteriormente el DSP trabaja a una frecuencia mas alta. Por qué no usar un Arm o un AVR32, bueno porque el esta utilizando un PIC (Microcontrolador en el cual tiene experiencia, programador, compilador) y conoce sus registros. Recomendarle usar un Atmel o un Freescale sería hacerlo estudiar otra vez arquitecturas de microcontroladores diferentes. El Dspic aunque posee una arquitectura diferente al pic ordinario tiene mas en comun que estos otros microcontroladores de las distintas marcas.

Recuerda que esto es un proyecto final con un tiempo limitado que no puede utilizar aprendiendo otro microcontrolador. 

En un analisis *costo-tiempo-curva de aprendisaje*, que tu crees que es mas conveniente?

Comprar un microcontrolador diferente, comprar el programador del microcontrolador y aprenderlo o simplemente utilizar otro dispositivo mas rapido (DSP).


----------



## macraig (Abr 7, 2008)

Gracias por contestar, me llamo la atensión la propuesta de usar un DSP por que creia q no seria necesario para los 20MHz. Mi razonamiento es q es mas conveniente usar un adc mas rapido. Si toma las conversiones con la suficiente rapidez y almacena esos valores, puedes usar un PIC comun y silvestre para procesarlos, claro no en realtime, pero a 20MHz se necesita un micro muy rapido para procesar ese stream de datos en realtime, o como dices un DSP(pero uno mucho mas veloz que un DSPIC). 

Discrepo contigo en la relacion costo-tiempo-curva-de-aprendisaje, pues, en primer lugar un DSP es una arquitectura muy diferente de un micro convencional, y usarlo eficientemente es algo dificil de conseguir en poco tiempo, por mas parecido que sea a un micro existente. En segundo lugar, por lo que he visto, un DSPIC solo trabaja hasta las  40MHz, por lo que es imposible que pueda procesar un stream de datos de 40Millones de muestras por segundo, necesario para muestrear la senal de 20MHz.

Para simplemente mostrar ese stream de datos en realtime en el computador, suponiendo que tome una instruccion por dato (caso mas que ideal), se necesitaria un micro capaz de ejecutar al menos 40 millones de instrucciones por segundo, algo lejos del DSPIC. Asi que de cualquier forma debera usar una arquitectura diferente.

Salu2.


----------



## frape (Abr 8, 2008)

la señal que estoy capturando proviene de un tejido muscular, es conveniente trabajar a estas frecuencias ya que existen tres zonas  llamadas de relajacion en la banda de los megahertz  eltejido se comporta como un medio conductor que presenta baja impedancia, ahora a frecuencias inferiores el tejido presenta una impedancia alta que a lo mejor es mas conveniente, eso dpende de la aplicacion.
para lograr esto utilizo el metodo de las cuatro puntas, inyecto corriente al tejido con la ayuda de un max038 y un conversor voltaje corriente, asegurando I<10uA, luego mido el potencial generado con un amplificador de instrumentacion y esa señal la acondiciono con el filtro de muesca y el rectificador y luego al PIC.

la idea del dps me parece interesante ya que se representaria una mejora al diseño, si es posible me gustaria saber si me pueden dar información al respecto, ya que el tiempo no es problema ahora ya que me aceptaron el diseño para la tesis. de antemano muchas gracias, gente....


----------



## meledu (Oct 4, 2008)

cuales son los pines correspondientes al adc de este pic?


----------



## eserock (Oct 7, 2008)

Hola de nuevo
lo de la frecuencia lo entiendo perfectamente, pero de donde sacas esos 20 MHz del organismo, o tu los aplicas? si dices que van a tejido muscular cual es la finalidad de hacer esto?, te comento que a 20 Mhz casi todas las impedancias corporales tienden a cero, los aplicas en la piel o directamente al musculo? otra cosa que no me queda clara es el nivel  de voltaje, 
Por los datos que das me pareciera que estas haceindo un equipo de los llamados feedback yo he realizado algunas cosas en sistemas analogicos muy simples para enviar señales a travez del organismo y tomar algunos muestreos simples. Por lo que decias creo que es donde estas mas atorado y no tanto en programacion y desarrollo si no en poder manejar las señales analogicas.
Si en algo te puedo ayudar adelante


----------



## Gradmaster (Nov 7, 2008)

Vaya es un tema bastante interezante por que dejarlo asi, regresando a un punto mencionado por frape, me gustaria saber si alguien conoce la forma de dividir frecuencias analogicas logre algo con un CD4066 y un capacitor, sin embargo tuve una caida de tension considerable, conocen otra forma que puedan compartir con los integrantes del foro?.

de antemano, gracias.


----------



## danipalma (May 8, 2009)

buena dionmar


----------

