Autor Tema: Usar ADC para mi fuente digital con teclado 4x4  (Leído 13362 veces)

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

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #15 en: 02 de Noviembre de 2011, 11:36:06 »
si, es correcto, solo se me ocurre que sea fallo del circuito, porque si en el proteus te marcaba bien.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #16 en: 02 de Noviembre de 2011, 20:39:37 »
Saludos acabo de regresar de estudiar, voy a probar todas sus recomendaciones. Mi circuito esta correcto porque probe el ADC un canal a la vez y funciona bien. El problema esta en mi programa. Dejenme probar.  :)

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #17 en: 02 de Noviembre de 2011, 20:49:45 »
No vi como configuras el convertidor AD.
Si por casualidad usaras la referencia externa y esta esta sin conectar a tension, flotara a gusto y por ende la conversion al estar referida a esa referencia, puede ir cambiando bastante entre mediciones.
El simulador no lo ve a eso, mientras que en el circuito si se ve este problema bien claro.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #18 en: 02 de Noviembre de 2011, 20:52:31 »
No vi como configuras el convertidor AD.
Si por casualidad usaras la referencia externa y esta esta sin conectar a tension, flotara a gusto y por ende la conversion al estar referida a esa referencia, puede ir cambiando bastante entre mediciones.
El simulador no lo ve a eso, mientras que en el circuito si se ve este problema bien claro.

hola MGLSOFT la tension de referencia esta configurada para que sea VCC y -ref para GND. El valor convertido no oscila. Mi problema como ya lo explique es que el canal0 afecta a mi canal1.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #19 en: 02 de Noviembre de 2011, 22:07:58 »
Hacia tiempo que no leia assembler, pero es como andar en bicicleta, nunca se olvida... :mrgreen: :mrgreen:

Has probado todos los canales y los demas ninguno se interfiere con otro??
Solo el AN0 interfiere al AN1 ??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #20 en: 02 de Noviembre de 2011, 22:11:17 »
Tuviste en cuenta que el valor de tension en el canal analogico no debe ser inferior a los 2,5 volts ??
Prueba tu codigo a ver como va si el valor en AN0 y AN1 es inferior a ese valor y tambien si no lo es...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #21 en: 02 de Noviembre de 2011, 22:26:13 »
Hacia tiempo que no leia assembler, pero es como andar en bicicleta, nunca se olvida... :mrgreen: :mrgreen:

Has probado todos los canales y los demas ninguno se interfiere con otro??
Solo el AN0 interfiere al AN1 ??

Perdonen estube buscando potenciometros de 1k. Ahora los cambio. Solo uso 2 canales. AN0 interfiere con AN1. Voy a probar. Usando otro canal.
Gracias por su atencion.

Desconectado JBQ

  • PIC16
  • ***
  • Mensajes: 118
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #22 en: 02 de Noviembre de 2011, 22:37:02 »
Tuviste en cuenta que el valor de tension en el canal analogico no debe ser inferior a los 2,5 volts ??
Prueba tu codigo a ver como va si el valor en AN0 y AN1 es inferior a ese valor y tambien si no lo es...

Disculpa, pero a que te refieres con que el valor de tension no debe de ser inferior a 2.5 voltios en el canal... eso me suena raro, ya que el adc puede muestrear entre vdd y vss.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #23 en: 02 de Noviembre de 2011, 22:50:28 »
Cambie los potenciometros por 1k, el problema persiste. Ahora voy a cambiar en vez AN1  voy a usar el AN7.

Cambie de canales y tambien sigue igual.  :5] :5] :5] :5] :5] :5] :5] :5] :5]
« Última modificación: 02 de Noviembre de 2011, 22:55:45 por frozen »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #24 en: 02 de Noviembre de 2011, 22:56:55 »
Tuviste en cuenta que el valor de tension en el canal analogico no debe ser inferior a los 2,5 volts ??
Prueba tu codigo a ver como va si el valor en AN0 y AN1 es inferior a ese valor y tambien si no lo es...

Disculpa, pero a que te refieres con que el valor de tension no debe de ser inferior a 2.5 voltios en el canal... eso me suena raro, ya que el adc puede muestrear entre vdd y vss.

Disculpen a este viejo olvidadizo, hace mucho que no uso el conversor interno...

Me referia a esto, mil disculpas con el error..

Citar
The maximum recommended impedance for analog sources is 2.5 kΩ. As the impedance is decreased, the acquisition time may be decreased. After the analog input channel is selected (changed), this acquisition must be done before the conversion can be started
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #25 en: 02 de Noviembre de 2011, 23:06:00 »
No se usar interrupciones. sino las usaria. En verdad alguien me prodria dar un ejm de como cambiar canales. Trabajando a 8 bit.

Desconectado Yoshua

  • PIC16
  • ***
  • Mensajes: 213
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #26 en: 02 de Noviembre de 2011, 23:24:54 »
se que puede ser tonto pero, probaste borrando los registros antes de entrar a la rutina de conversion adc.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #27 en: 02 de Noviembre de 2011, 23:31:55 »
SI borre los registros ADRESH y ADRESL. Aqui les dejo mi programa. Ya agregue todos los cambios que me recomendaron.
Haber si se toman la molestia de analizarlo.
Código: [Seleccionar]
__CONFIG _WDT_OFF&_PWRTE_ON&_HS_OSC&_LVP_OFF&_CP_OFF
LIST P=16F877A
INCLUDE <P16F877A.INC>
INCLUDE <MACROPIC.INC>

CBLOCK 0x20
VOLT
CORRIENTE
ENDC

ORG 0


;--------CONFIGURANDO  --------------------------------------------
BANCO 1
clrf TRISC
clrf TRISB
MOV TRISA,0XFF
bsf TRISE,2
BANCO 0

;--------BORRANDO REGISTROS-------------------------------------------------
clrf PORTB
clrf PORTC

BANCO 1
MOV ADCON1,B'00000000' ;CONFIGURA LOS 8 CANALES COMO ANALOGICOS
BANCO 0
clrf ADCON0
bsf ADCON0,7 ;FOSC/32
bcf PIR1,ADIF ;inicia convertidor


infinito
;CANAL 0
bcf ADCON0,3 ;SELECCIONO CANAL 0 (AN0)
bcf ADCON0,4
bcf ADCON0,5


call ret50ms
bsf ADCON0,0 ;enciende el convertidor
clrf ADRESH
clrf ADRESL

bsf ADCON0,2 ;inicio la conversion
btfsc ADCON0,2 ;pregunto si ya acabo de convertir??
goto $-1 ;no
movf ADRESH,0 ;si,solo uso 8 bits y los muevo a w.
bcf ADCON0,0 ;apago el convertidor
bcf PIR1,ADIF ;limpio la bandera ADIF
movwf VOLT ;lo guardo en el registro VOLT
movwf PORTC ;muestro por el PORTC
call ret50ms ;retardo para descarga del condensador


;CANAL 7
bsf ADCON0,3 ; SELECCIONO EL CANAL 7 (AN7)
bsf ADCON0,4
bsf ADCON0,5

call ret50ms ;otro retardo mas q no se para q lo puse.
bsf ADCON0,0 ;enciende el convertidor
clrf ADRESH
clrf ADRESL
bsf ADCON0,2 ;inicio la conversion
btfsc ADCON0,2 ;pregunto si ya acabo de convertir??
goto $-1 ;no
movf ADRESH,0 ;si,solo uso 8 bits y los muevo a w.
bcf ADCON0,0 ;apago el convertidor
bcf PIR1,ADIF ;limpio la bandera ADIF
movwf CORRIENTE ;lo guardo en el registro CORRIENTE
movwf PORTB ;lo muestro por el PORTB
call ret50ms ;retardo de 50ms
goto infinito

INCLUDE <conv_ad.ASM>
INCLUDE <RETARDO.ASM>

END



Desconectado JBQ

  • PIC16
  • ***
  • Mensajes: 118
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #28 en: 02 de Noviembre de 2011, 23:41:35 »
Me parece que en tu código, enceindes el ADC y luego inicias la conversión.

Esos 50mseg, estarían mejor si los pones luego de encender el ADC.
Otra cosa, no creo que sea necesario apagarlo una vez encendido, basta con que cambies de canal, esperes el prudencial tiempo de adquisicion e inicies la convesión.

El clock del ADC es en base a la tabla del datasheet no???, puede que sea muy corto el TAD del adc por bit.

Cuentas tus resultados.

Desconectado frozen

  • PIC12
  • **
  • Mensajes: 53
Re: Usar ADC para mi fuente digital con teclado 4x4
« Respuesta #29 en: 03 de Noviembre de 2011, 00:01:24 »
Me parece que en tu código, enceindes el ADC y luego inicias la conversión.

Esos 50mseg, estarían mejor si los pones luego de encender el ADC.
Otra cosa, no creo que sea necesario apagarlo una vez encendido, basta con que cambies de canal, esperes el prudencial tiempo de adquisicion e inicies la convesión.

El clock del ADC es en base a la tabla del datasheet no???, puede que sea muy corto el TAD del adc por bit.

Cuentas tus resultados.

HABER hice los cambios que me dijiste estan subrayados. No se si luego de cambiar de canal tambien necesite retardo??
La frecuencia de mi cristal es de 20Mhz. El datasheet dice que el Tad no debe ser menor que 1.6 micro segundos. Yo tengo entonces Fosc = 20Mhz/32 = 625khz  entonces Tad = 1/625khz = 1.6useg. Es correcto?

Código: [Seleccionar]
;--------CONFIGURANDO  --------------------------------------------
BANCO 1
clrf TRISC
clrf TRISB
MOV TRISA,0XFF
bsf TRISE,2
BANCO 0

;--------BORRANDO REGISTROS-------------------------------------------------
clrf PORTB
clrf PORTC

BANCO 1
MOV ADCON1,B'00000000' ;CONFIGURA LOS 8 CANALES COMO ANALOGICOS
BANCO 0
clrf ADCON0
bsf ADCON0,7 ;FOSC/32
bcf PIR1,ADIF ;limpio la bandera ADIF


infinito
;CANAL 0
bcf ADCON0,3 ;SELECCIONO CANAL 0 (AN0)
bcf ADCON0,4
bcf ADCON0,5
;call ret50ms     aqui debo colocar retardo????


bsf ADCON0,0 ;enciende el convertidor
           call          ret50ms  
clrf ADRESH
clrf ADRESL

bsf ADCON0,2 ;inicio la conversion
btfsc ADCON0,2 ;pregunto si ya acabo de convertir??
goto $-1 ;no
movf ADRESH,0 ;si,solo uso 8 bits y los muevo a w.
bcf PIR1,ADIF ;limpio la bandera ADIF
movwf VOLT ;lo guardo en el registro VOLT
movwf PORTC ;muestro por el PORTC
call ret50ms ;retardo para descarga del condensador


;CANAL 7
bsf ADCON0,3 ; SELECCIONO EL CANAL 7 (AN7)
bsf ADCON0,4
bsf ADCON0,5
;call ret50ms     aqui debo colocar retardo????
clrf ADRESH
clrf ADRESL
bsf ADCON0,2 ;inicio la conversion
btfsc ADCON0,2 ;pregunto si ya acabo de convertir??
goto $-1 ;no
movf ADRESH,0 ;si,solo uso 8 bits y los muevo a w.
bcf PIR1,ADIF ;limpio la bandera ADIF
movwf CORRIENTE ;lo guardo en el registro CORRIENTE
movwf PORTB ;lo muestro por el PORTB
call ret50ms ;retardo de 50ms
goto infinito

INCLUDE <conv_ad.ASM>
INCLUDE <RETARDO.ASM>

END