Autor Tema: dudas sobre ADC 16F877  (Leído 2164 veces)

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

Desconectado hegod

  • PIC10
  • *
  • Mensajes: 8
dudas sobre ADC 16F877
« en: 25 de Mayo de 2005, 22:49:00 »
hola  
 
me gustaria que me ayudaran para configurar el conversor analogo digital de 16f877, quero que entre una señal de audio y equalizarla pero primero lo tengo que aprender a configurar los  puertos.
quisiera saber si  tengo que  utilizar Vref y  para que sirve, como se hace para  comparar lo con la señal de entrada con el Vref.
se que tengo que configurara el ADCON0 aqui creo que tengo que seleccionar el reloj para el convertidor ¿cual es recomendable?
-canal :
-go/#done:  como funciona
en el registro ADCON1 el bit 7 dice que alinialos seis bits de mayo  o menor peso a la derecha o a la izquierda de pendiendido del estado en que se encuentre ¿eso que influye con la respuesta del a/c
 

estas son algunas de mis dudas
 grasias  a todo      

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: dudas sobre ADC 16F877
« Respuesta #1 en: 26 de Mayo de 2005, 17:47:00 »
Bueno este proyecto fue mi primera "ambición" con el CAD del PIC. Muy importante y para que no te ocurra lo que a mi, pon una resitencia de 10K entre la fuente de audio, por ejemplo, la salida de línea de un CD o del ordenador y la entrada del PIC. También pon un diodo zener de 5.1V para proteger al PIC de sobre tensiones. Yo toste el conversor del micro por no hacerlo.

Bien, lo primero configurar el puerto A del PIC. Si sólo vas a utilizar una entrada analógica y el resto Entradas/Salidas digitales, el valor que debes cargar en el registro ADCON1 es el siguiente:

Codigo:
   bsf   status,5   ;Banco 1
   movlw   b"00001110"
   movwf   ADCON1      ;CAD Activado PortA,0 entrada analógica
   bcf   status,5


Con esta configuración todo el puerto A del micro es E/S digital excepto el PA0 que es tu entrada analógica. Lo de las Vref es para tener más precisión si el rango de entrada de la señal analógica es menor a 5 V, es decir, tu señal de audio va a tener un rango de 1Vpp pues deberías bajar las Vref, que con esta configuración están entre 0 y 5V. Yo para empezar te recomiendo que uses estas. Después de que experimentes las modificas si quieres. En el datasheet del micro hay una tabla con el valor a cargar en el ADCON1 y los pines del micro que se dedican a entradas analógicas y tensiones de referencia. En cuanto al bit 7 del ADCON1 indica si el resultado de la conversión te lo justifica a izda. o decha. El resultado es de 10 bits, por lo que te lo guarda en 2 registros(ADRESH y ADRESL). Si está justificado a izda, los 6 bits menos significativos del registro ADRESL son cero y si se justifica a la decha, los 6 bits más significativos del ADRESH son cero.

Sigo en el siguiente mensaje.



Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: dudas sobre ADC 16F877
« Respuesta #2 en: 26 de Mayo de 2005, 18:06:00 »
Con respecto al ADCON0, aqui configuras el reloj del conversor, canal analógico de entrada, inicio de la conversión y activas el CAD. Por partes:

ADCS1, ADCS0: Configuran el reloj del conversor. Dependiendo del cristal que vayas a utiliar, deberás poner un valor u otro. Si por ejemplo pones un cristal de 20MHz, el valor de estos bits es el b"10" = 32*TOSC. Esto selecciona un reloj para el conversor de 20MHz/32 = 625KHz. Esta es la máxima frecuencia de reloj que se le puede dar al conversor. Si vas a utilizar un reloj de 4MHz puedes poner un b"01" = 8*TOSC, que daría un reloj de 4MHz/8 = 500KHz. NO puedes poner un valor de b"00", porque resultaría un reloj para el conversor de 4MHz/2 = 2MHz (Demasiado rápido). No se si lo entiendes.HeladoHelado

CHS2, CHS1, CHS0: Seleccionan el canal analógico que vas a utilizar. En este caso se carga el valor b"000", que corresponde a la entrada RA0

ADON, activa el conversor si escribes un 1.

GO/#DONE: Cuando escribes un 1, la conversión comienza. Cuando la conversión termina, este bit se pone a cero automáticamente. Para detectar que el conversor a terminado, o bien testeas continuamente el valor de este bit, o bien, como deberás hacer irremetiablemete si quieres hacer ecualización, activar la interrupción del conversor.

PD: Según el datasheet, el conversor consume 12 ciclos de reloj por conversión. Suponiendo que tengas un cristal de 20MHz y un reloj de conversión de 650KHz, la frecuencia de muestreo máxima será de 650KHz/12 = 54KHz. Parece todo estupendo, sin embargo ten en cuenta que un PIC no es un DSP. Tendrás que bajar bastante esta frecuencia de muestreo si quieres hacer alguna operación de multiplicar entre muestra y muestra.

Bueno espero haberte ayudado.

Desconectado hegod

  • PIC10
  • *
  • Mensajes: 8
RE: dudas sobre ADC 16F877
« Respuesta #3 en: 27 de Mayo de 2005, 21:19:00 »
hola;
hombre estoy muy agradecido por depura muchas  dudas que la verdad es que antes de escribir hice un montage y  lo unico que escuchava era ruido de la alta frecuencia,
la verdad fue un fracaso, lo intentare nuevamete



gracias  

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: dudas sobre ADC 16F877
« Respuesta #4 en: 27 de Mayo de 2005, 21:34:00 »
Una pregunta. Una vez que procesas las muestras, por donde las sacas? utilizas el pwm del micro o un DAC externo? y que tipo de DAC?


 

anything