TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: HARLEYTRONICS en 22 de Mayo de 2009, 16:19:01

Título: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 22 de Mayo de 2009, 16:19:01
hola ,tengo el problema de que usando dos canales de cad ,cada vez que hace una conversion no lo hace linealmente
osea lo hace desparejo ,si uso uno solo va bien pero cuando quiero usar dos ya empiezan los problemas
estoy usando un enano 12f675 y probe con distintos potes lineales
alguien me puede explicar que es lo que esta pasando ,si es normal ?
como solucionar esto?
hasta hora lo unico que hice ,que funciona es poner unos preset a cada extremo de los potes para regular esa nolinealidad
pero quiero saber si puedo evitar esto ..a quien me ayude le voy a estar muy agradecido..saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 22 de Mayo de 2009, 16:22:46
¿Cuánto tiempo das entre cambios de canal ADC? Debes dar como 25us de espera para que se cargue el sample&hold.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 22 de Mayo de 2009, 16:32:30
hola migsantiago,gracias por responderme,, ni bien termino una conversion cargo el resultado en un registro
y empiezo la otra conversion osea que no le stoy dando el tiempo que decis ,,el tiempo se lo doy con un retardo de 25 micros ?
o por otro medio?? gracias ,,saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 22 de Mayo de 2009, 17:08:40
Sí, entre cambios de canal ponle un retardo de 25us con timers o con ciclos anidados, como más te convenga.

Debes esperar a qué el canal actual cargue el sample&hold. No lo midas de inmediato.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 22 de Mayo de 2009, 19:41:30
migsantiago puse retardos en distintos puntos de las conversiones y entre si pero el problema sigue ,, aca pongo como estoy usando el cad a ver si hay  error en el programa ,,
a medida que voy subiendo el pote lo hace pero depronto vuelve a bajo y sube ,,asi como 4 veces es como  si dividiera el potenciometro ,la verdad me esta volviendo loco,,saludos

conv1  clrwdt
   
        bsf     STATUS,RP0             ;Pasamos al banco 1
         MOVLW   B'00001001'     ;CONFIGURE an0  como entradas analogica y frecuencia de trabajo 8 foc
         MOVWF       ANSEL 

     
 
        bcf     STATUS,RP0      ;Pasamos al banco 0
        movlw   b'00000001'     ;selccion an0 chanel,habilito cady justif izqui.
        movwf   ADCON0   


        clrf    GPIO
        bcf     PIR1,ADIF       ;Reseteamos el flag de la interr. del CAD
        bsf     ADCON0,GO       ;Ordenamos el comienzo de la conversión

ESPERAR btfsc   ADCON0,1        ;Comprobamos si la conversión ha terminado mirando
                                ;el estado del bit GO/DONE#
        goto    ESPERAR
       

       MOVF  ADRESH,w
        movwf 0x2b
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
conv2  clrwdt
   
        bsf     STATUS,RP0             ;Pasamos al banco 1
         MOVLW   B'00001010'     ;CONFIGURE  an1 como entradas analogica y frecuencia de trabajo 8 foc
         MOVWF       ANSEL 

     
 
        bcf     STATUS,RP0      ;Pasamos al banco 0
        movlw   b'00000101'     ;selccion an0 chanel,habilito cady justif izqui.
        movwf   ADCON0   


        clrf    GPIO
        bcf     PIR1,ADIF       ;Reseteamos el flag de la interr. del CAD
        bsf     ADCON0,GO       ;Ordenamos el comienzo de la conversión

ESPERAR1 btfsc   ADCON0,1        ;Comprobamos si la conversión ha terminado mirando
                                ;el estado del bit GO/DONE#
        goto    ESPERAR1
       

       MOVF  ADRESH,w
        movwf 0x2c
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 22 de Mayo de 2009, 20:06:38
¿Insertaste los retrasos de 25us después de elegir el canal? No aparecen en tu programa. También es recomendable que pongas el reloj del ADC con el divisor de 32.

Código: [Seleccionar]
conv1  clrwdt
   
        bsf     STATUS,RP0             ;Pasamos al banco 1
         MOVLW   B'00001001'     ;CONFIGURE an0  como entradas analogica y frecuencia de trabajo 8 foc
         MOVWF       ANSEL

     
 
        bcf     STATUS,RP0      ;Pasamos al banco 0
        movlw   b'00000001'     ;selccion an0 chanel,habilito cady justif izqui.
        movwf   ADCON0   

;AQUI DEBE IR UN DELAY DE AL MENOS 25us

        clrf    GPIO
        bcf     PIR1,ADIF       ;Reseteamos el flag de la interr. del CAD
        bsf     ADCON0,GO       ;Ordenamos el comienzo de la conversión

ESPERAR btfsc   ADCON0,1        ;Comprobamos si la conversión ha terminado mirando
                                ;el estado del bit GO/DONE#
        goto    ESPERAR
       

       MOVF  ADRESH,w
        movwf 0x2b
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
conv2  clrwdt
   
        bsf     STATUS,RP0             ;Pasamos al banco 1
         MOVLW   B'00001010'     ;CONFIGURE  an1 como entradas analogica y frecuencia de trabajo 8 foc
         MOVWF       ANSEL

     
 
        bcf     STATUS,RP0      ;Pasamos al banco 0
        movlw   b'00000101'     ;selccion an0 chanel,habilito cady justif izqui.
        movwf   ADCON0   

;AQUI DEBE IR UN DELAY DE AL MENOS 25us

        clrf    GPIO
        bcf     PIR1,ADIF       ;Reseteamos el flag de la interr. del CAD
        bsf     ADCON0,GO       ;Ordenamos el comienzo de la conversión

ESPERAR1 btfsc   ADCON0,1        ;Comprobamos si la conversión ha terminado mirando
                                ;el estado del bit GO/DONE#
        goto    ESPERAR1
       

       MOVF  ADRESH,w
        movwf 0x2c
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 22 de Mayo de 2009, 20:34:29
migsantiago le puse el retardo con nop y cambie el foc a 32 y sigue igual es como si tendria que ponerle topes los potenciometros ,para que no empiezen de cero a cada rato ,,no se si se entiende lo que explico es muy raro ,,,,
muchisimas gracias igual ,,saludos
   
 conv1a  clrwdt
   
        bsf     STATUS,RP0             ;Pasamos al banco 1
         MOVLW   B'00010001'     ;CONFIGURE an0  como entradas analogica y frecuencia de trabajo 32 foc
         MOVWF       ANSEL 

     
 
        bcf     STATUS,RP0      ;Pasamos al banco 0
        clrf ADRESH
        movlw   b'00000001'     ;selccion an0 chanel,habilito cady justif izqui.
        movwf   ADCON0   
 nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop

         nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop
  nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop
  nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop

        clrf    GPIO
        bcf     PIR1,ADIF       ;Reseteamos el flag de la interr. del CAD

        bsf     ADCON0,GO       ;Ordenamos el comienzo de la conversión

ESPERA btfsc   ADCON0,1        ;Comprobamos si la conversión ha terminado mirando
                                ;el estado del bit GO/DONE#
        goto    ESPERA
       

       MOVF  ADRESH,w
        movwf 0x2b

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
conv2a  clrwdt
   
        bsf     STATUS,RP0             ;Pasamos al banco 1
         MOVLW   B'00010010'     ;CONFIGURE  an1 como entradas analogica y frecuencia de trabajo 32foc
         MOVWF       ANSEL 

     
 
        bcf     STATUS,RP0      ;Pasamos al banco 0
      clrf ADRESH
        movlw   b'00000101'     ;selccion an0 chanel,habilito cady justif izqui.


        movwf   ADCON0   
    nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop

         nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop
  nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop
  nop
    nop
    nop
    nop
    nop
    nop
    nop
     nop
 clrf    GPIO
        bcf     PIR1,ADIF       ;Reseteamos el flag de la interr. del CAD
        bsf     ADCON0,GO       ;Ordenamos el comienzo de la conversión

ESPER btfsc   ADCON0,1        ;Comprobamos si la conversión ha terminado mirando
                                ;el estado del bit GO/DONE#
        goto    ESPER

       MOVF  ADRESH,w
        movwf 0x2c
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 22 de Mayo de 2009, 21:09:55
¿Cómo conectas los potenciómetros a la fuente de alimentación y al analógico? Un diagrama sería muy útil.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 22 de Mayo de 2009, 22:53:49
aca dejo un dibujito de como los conecte ;saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 23 de Mayo de 2009, 09:51:09
Ah pues ahí hay un problemón, NUNCA debes poner voltaje negativo a un canal ADC de pic, lo puedes dañar.

Conecta una terminal del pot a +5V y la otra a GND.

Lee bien la hoja de características de tu PIC12 en la sección de Electrical Characteristics.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 23 de Mayo de 2009, 21:38:30
aha por ahi viene la mano?  algun truco para solucionarlo ??ya que no estoy usando una fuente partida tengo el  + y el -
creo que el pic no esta arruinado pero si esta sufriendo alteraciones ,,,te agradezco muchisimo ,,saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: Suky en 23 de Mayo de 2009, 21:52:38
Fácil, coloca el potenciometro entre +5 Vcc y GND.  :mrgreen:
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 24 de Mayo de 2009, 00:22:11
no estoy usando una fuente +v  0v -v
tengo el + y -
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 24 de Mayo de 2009, 10:50:11
no estoy usando una fuente +v  0v -v
tengo el + y -

Cuesta trabajo entender lo que escribes.

Usa el +5V y el 0V para los potenciómetros, olvídate del -V.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 24 de Mayo de 2009, 12:13:58
migsantiago ,,la fuente es un trafo con puente de diodos rectificadores  y un condensador ,,tengo un negativo y un positivo
luego pasan por el regulador voltaje de 5 v pero siguen quedando el negativo y el positivo,,de donde saco los 0v ???
se entiende lo que digo??? otra pregunta por que si uso un canal solo anda bien ?? disculpame tantas molestias ,,saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 24 de Mayo de 2009, 13:17:16
El 0V es el GND del regulador de 5V.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 24 de Mayo de 2009, 13:33:11
entonces lo tengo conectado bien ,, ya no se que hacer,,, si uso un solo canal anda bien si uso dos parece sube ybaja
no quiero umaginar si uso los cuatro,,gracias por tu tiempo  ,,,saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 24 de Mayo de 2009, 18:55:09
Está bien raro tu problema. Hasta ahora lo que debes hacer es:

- Implementar los retrasos de 25us o más después de cambiar un canal.
- Usar reloj 32.
- Conectar los potenciómetros a +5V y 0V.

Uno más, usa potenciómetros de 4.7kohm o menos, mientras soporten la potencia a 5V. Se me ocurre que el problema es por ruido pero es una probabilidad baja si los potenciómetros reciben CD.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 24 de Mayo de 2009, 21:26:26
ahora le puse tad 16 porque el 675 no trabaja a 32 con 4mhz ,, la fuente no tiene rizado ,le agregue mas tiempo al s-h
y nada sigue igual ,cambie el pic por uno nuevo ,,,llegue a poner un pote de 100 ohms y nada

lo extraño es que si uso un solo canal lo hace perfecto ,,hace el barrido del pote impecable ,,le pongo dos y es un sube y baja
 solo puedo usar una minima porcion del pote si no empieza de cero,,,a esta altura lo quiero prender fuego al pic
gracias ,,saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 25 de Mayo de 2009, 12:34:08
No se me ocurre nada nuevo, por favor sube un diagrama completo de todas las conexiones (pic, pot, fuentes, filtros, etc.).
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 25 de Mayo de 2009, 13:59:40
sabes que el osciloador interno lo estoy usando a 4mhz pero esta trabajando casi un 30 porciento mas ,,crees que pueda ser por
esto ,,ahora mismo le voy a bajar la corriente de entrada al regulador de voltaje y te cuento  si logro trabar bien ,,o un poco mejor,,gracias saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: migsantiago en 25 de Mayo de 2009, 15:19:07
Pues quién sabe, detalles como esos solo los ves tú en tu protoboard. Es muy difícil imaginar el problema desde un teclado y computadora a cientos de km de distancia.

Prueba poniendo un cristal externo y configurando el fusible para xt o hs según corresponda.
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: MLO__ en 25 de Mayo de 2009, 22:24:38
Hola.

Como sabes que esta trabajando a un 30% mas el oscilador?
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 25 de Mayo de 2009, 22:51:22
estoy haciendo algo parecido a pwm donde se pueden regular  la frecuencia y el duty
y por los numeros cargados en los retardos nunca puede darme las frecuencias que me estan saliendo
saque cuenta de todas combinaciones y no da ,,eso quiere decir que el mic.esta mas rapido,
por ejemplo  la frecuencia mas alta que podria llegar es 1666 hz  y esta llegando a 2200 hz eso es por que los retardos
me estan durando menos de lo que estan programados y por ende entran mas pulsos en la frecuencia..saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: MLO__ en 26 de Mayo de 2009, 01:29:36
 :?

No creo que sea el oscilador, en el datasheet dice que es 4MHz +- 1% ... 30% es mucho ya ... no estaras configurando mal el timer2? podria ser por ahi la falla no?
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 26 de Mayo de 2009, 01:58:04
no estoy usando el timer ,,, estoy cargando los retardos con las conversiones  del cad ,,,pero agarre un programa viejo  de una sola conversion  y lo adapte a dos canales ,,y hasta ahora el barrido lo esta haciendo linealmente bien ,,por ahora son frecuencias distintas a las que necesito ,de a poco lo voy a ir acomodando,,

lo unico que encontre distinto al programa nuevo, es que en el viejo desconecte las pull up desde el registro opccion y en el nuevo desde  wpu
y por ahi creo que viene la mano ,,va espero que sea eso
voy  a seguir acomodandolo y te cuento como fue ,,gracias ,saludos
Título: Re: problema de lectura del cad ??alguien sabe de esto??
Publicado por: HARLEYTRONICS en 27 de Mayo de 2009, 03:21:36
Bueno despues de una semana renegando con el pequeño 675 llegue a la conclusion de que es un maniatico con defectos de fabricacion,,  el primero y notorio es el oscilador interno almenos usandolo 4 mhz tiene mas del 1%+- error  en mi caso
ya no tengo ganas de testear de  cuanto es el error ,lo que si SE es que es mucho mas ...
Por otro lado solucione el problema del cad ,el tema es que  usando mas de un canal ,,los potenciometros interactuan entre si
y hay que volverse un poco loko para calibrarlos ,,usando resitencias limitadoras en los extremos de los potes,,pero  eso no es todo sino que ya en el segundo pote ,osea segundo canal  ya el voltaje de referencia es distinto al primer canal  almenos
usando el vdd como referencia  por que ??? no lo se ,,   al final termine usando fosc 8  por que era lo mismo q en 16
tambien termine sacando los retardos del sample hold  por que tampoco le hacia efecto mas que retrasar el programa,,
quizas lo exigi demasiado ,ya que el programa usa distintos tipos de frecuencias ,,y distintos programas  dentro del programa
va lo digo ,por que arme un programa sencillo de doble canal y no tuve problemas ,,
otra cosa rara que vi es que por ejemplo el ansel le da lo mismo si lo configuras desde el banco 1 o el 2..

bueno tengan en cuenta esto que les digo para no renegar si desean usar variois cad del 675
tampoco les digo que no los usen ya que son muy potentes y economicos
 
GRACIAS  por los consejos y su tiempo para ayudarme,,,,Saludos