Autor Tema: problema con el ADc de un dspic 30f3014  (Leído 10432 veces)

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

Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
problema con el ADc de un dspic 30f3014
« en: 21 de Agosto de 2008, 17:15:31 »
hola  atodos


el problema que tengo con el conversor analogo digital de dspic que uso es que , cuando deseo suministrarle una señal de voltaje analoga, esta al conectarle la linea al pin de entrada analoga, se cae el voltaje, midiendolo con un voltimetro. es decir que si yo tengo un cable que conduce la señal analoga con un valor medido antes de conectarlo al pin de entrada analoga de ADC, me marca en un voltimetro 2.339V por ejemplo, tan pronto conecto el cable al pin de entrada analoga del ADC, ya  me marca en el voltimetro 2.089V, lo cual representa una caida de casi 140mV, que para un ADC de 12 bits es muy grande ese voltaje

probe colocandole un acople en la entrada previa al ADC y no consegui solucion al inconveniente.

agradezco la colaboracion de todos, quien tenga idea por favor ayudarme amablemente

andy alarcón
Montería Colombia 

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: problema con el ADc de un dspic 30f3014
« Respuesta #1 en: 21 de Agosto de 2008, 20:02:07 »
Ponle un seguidor de voltaje o un apmificador de ganacia unitaria que te haga el acople de impedancia, a ver que pasa, es posible que las impedancias no estén debidamente macheadas.

Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
Re: problema con el ADc de un dspic 30f3014
« Respuesta #2 en: 22 de Agosto de 2008, 17:59:02 »
nooo mijo ya intente eso y nada, lo que sucede es algo muy extraño, por que a la entrada del seguidor no se cae el voltaje, pero al salida del seguidor si se cae tan pronto conecto el cable que conduce la señal analogica al ADC del DSpic. te agradeaco mucho la sugerencia y la ayuda, si conoces de otra opcion por favor informame.

agradezco a todos los amigos y compañeros del foro, si tienen sugerencias me las hagan saber

andy alarcon

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: problema con el ADc de un dspic 30f3014
« Respuesta #3 en: 23 de Agosto de 2008, 01:27:22 »
¿Cómo tienes configurado el ADC?, pega por aquí tu programa, o al menos la parte de inicialización de periféricos.

Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
Re: problema con el ADc de un dspic 30f3014
« Respuesta #4 en: 25 de Agosto de 2008, 20:27:01 »
hola nocturno

mucghas gracias por tu atencion te paso de inmediato el codigo hecho en MPLAB espero sepas manejar este software


 mov #0xEFFF,W0
 mov W0,ADPCFG;// coloco entradas todas digitales excepto RB12
CLR ADCON1
CLR ADCHS
CLR ADCSSL
CLR ADCON2
CLR ADCON3
          bclr IFS0,#ADIF
          BCLR IEC0,#ADIE
          BSET ADCON1,#ADON; // enciende el modulo
          BSET ADCON1,#SAMP; // pone en uno el bit samp
          CALL reto; // llama un retardo de 100ms
          BCLR ADCON1,#SAMP; //apaga el bit samp
/ANCLA:       BTSS ADCON1,#DONE; // revisa si la conversion esta hecha
          BRA ANCLA
          MOV ADCBUF0,W0 ; //mueve lo que esta en el bufer a W0
           MOV W0,PORTF; // mueve W0 a lospuertos D y F
          MOV W0,PORTD
          return


muchas gracias por todo y si tienes alguna sugerencia de algun error te lo agradezco me lo hagas saber

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: problema con el ADc de un dspic 30f3014
« Respuesta #5 en: 26 de Agosto de 2008, 02:23:37 »
¡Glub!, lo siento pero de ASM no tengo ni idea.

Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
Problema con el ADc de un dspic 30f3014
« Respuesta #6 en: 26 de Agosto de 2008, 12:18:19 »
ADPCFG = 0xEFFF; //  RB12 entrada analoga, el resto digital

ADCON1=0

ADCHS = 0x000C; // Conecta RB12/AN12 a CH0 input
ADCSSL = 0;
ADCON3 = 0; // muestreo manual 
ADCON2 = 0;
ADCON1bits.ADON = 1; // el modulo ADC esta  ON
while (1) //
{
ADCON1bits.SAMP = 1; // inicia muestreo
DelayNmSec(100); // llama retardo de  100 mS
ADCON1bits.SAMP = 0; // finaliza muestreo y inicia la conversion
while (!ADCON1bits.DONE); // conversion esta hecha?
portd = ADCBUF0;
PORTF=ADCBUF0 // CARGA EL CONTENIDO DEL BUFFER A PORTB Y F
} // repeat

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: problema con el ADc de un dspic 30f3014
« Respuesta #7 en: 26 de Agosto de 2008, 12:24:19 »
Coloca referencias en el ADC, a ver que pasa, configura el ADC para referencias externas, le pones una buena tierra en -Vref y unos buenso 5V en +Vref y prueba e ver, no vaya a ser que alguno de esos circuitos estén cagandote la cosa.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: problema con el ADc de un dspic 30f3014
« Respuesta #8 en: 26 de Agosto de 2008, 12:47:22 »
Creo que con ADPCFG = 0xEFFF; estás configurando AN15 en vez de AN12, y por lo tanto la entrada que usas se comporta como digital.

Además de eso, asegúrate que tienes puesto los condensadores y la alimentación en todas las AVdd y las VRef.


Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
Re: problema con el ADc de un dspic 30f3014
« Respuesta #9 en: 26 de Agosto de 2008, 18:21:03 »
nooo nocturno, fijate que si coloco en ADCPFG=EFFF, le estoy colocando a cero el bit 12, por lo tanto lo estoy colocando como entrada analogica, para colocarlo digital solo lo debo colocar en uno, dado quee stoy usando los 12 bits menos significativos como  salida digital (AN0...AN11) y AN12 lo coloco como entrada analogica, ademas necesito usar a AN0 y AN1 como salida digital, no podria conectar a Vref+ a VDD ni Vref- a VSS, puesto que estos its corresponden a AN0 y AN1 respectivamnete en mi DSpic 30f3014, de encapsulado DIP de 40 pines, pero sabes que no tengo conectada la AVDD ni AVSS, esnecesario conectarlos a VDD y VSS respectivamente, si midiendo con voltimetro veo que aparece 4.38V= AVdd y 0.38V=AVSS

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: problema con el ADc de un dspic 30f3014
« Respuesta #10 en: 26 de Agosto de 2008, 18:58:17 »
Tienes razón con lo del bit, me he liado.
Pero sí hay que conectar Avdd y Avss, tal y como en el gráfico que he pegado antes.

Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
Re: problema con el ADc de un dspic 30f3014
« Respuesta #11 en: 26 de Agosto de 2008, 19:38:55 »


hola nocturno

hombre mira que conecte todas las VDD y las VSS y fijate que la caida de voltaje se hace mas grande, probe con un dsPIC30f4013 y sucede la misma cosa.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: problema con el ADc de un dspic 30f3014
« Respuesta #12 en: 27 de Agosto de 2008, 02:26:58 »
Pues qué raro.
Si puedes prueba a poner ADPCFG=0xFFF;

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: problema con el ADc de un dspic 30f3014
« Respuesta #13 en: 27 de Agosto de 2008, 03:47:28 »
Hola, creo que tu error esta en la configuración del registro ADCON3, esto dice el datasheet:

Citar
SAMC<4:0>: Auto-Sample Time bits
11111 = 31 TAD
·····
00001 = 1 TAD
00000 = 0 TAD (only allowed if performing sequential conversions using more than one S/H amplifier)

Como solo usas una conversión, el ADC no te permite usar la más alta velocidad, dale una más lenta.

saludos.
control de movimiento

Desconectado andysabbath

  • PIC10
  • *
  • Mensajes: 18
Re: problema con el ADc de un dspic 30f3014
« Respuesta #14 en: 27 de Agosto de 2008, 13:01:58 »
señores nocturno y renatox muchas gracias por sus opiniones

pero no he solucionado el asunto, decidi entonces hacer el muestreo por la entrada RB0/AN0, la cual la configuro como analoga y el resto como digital, ya que estoy sacando a traves del puerto B datos digitales de un registro que elebora un contador ascendente descendente de 12  bits, se me ocurrio usar RB0 como analoga y utilizar la salida RD0 del puerto D en reemplazo de RB0 por lo de contador, programe mi Dspic y listo al momneto de probarlo, resulta que los datos digitales del contador nme siguen saliendo por RB0, razon muy extraña para esto ya que el registro ADCPFG esta configurado para tal cosa, como analogo, entiendo que el RB0 puede funcionar como entrada analoga y como Vref+. pero no creo que pueda funcionar como analogo y digital a la vez,  adicionalmente les anexo el codigo en C y en asm, donde el muestreo lo hago manualmente

por otro lado solo el registro ADCPFG es el encargado de configurar las patitas como analogas y como digitales, y el registro TRISB no cumple ninguna funcion para este caso


ADPCFG = 0xFFFE; //  PORTB = Digital; RB0 = analog
ADCON1 = 0x0000;
ADCHS = 0x0002; // Conecta RB2/AN2 a CH0 input .. // en este ejemplo  RB0/AN0 es la entrada analoga
ADCSSL = 0;
ADCON3 = 0x0002; // muestreo manual , Tad = 2 Tcy
ADCON2 = 0;
ADCON1bits.ADON = 1; // el modulo  ADC esta  ON
while (1) // repeat continuously
{
ADCON1bits.SAMP = 1; // inicia muestreo
DelayNmSec(100); // retardo de 100 mS para capturar muestra
ADCON1bits.SAMP = 0; // inicia la conversion
while (!ADCON1bits.DONE); // conversion esta hecha?
portf= ADCBUF0; // carga el buffer de recepcion de la muestra en PORTF
}


mov #0xFFFE,W0
          mov W0,ADPCFG
          mov #0x0000,W0
          mov W0,ADCON1
          MOV #0x0000,W0
          MOV W0,ADCHS
          MOV #0x0000,W0
          MOV W0,ADCSSL
             clr ADCON2
             mov #0x0002,W0
          mov W0 ADCON3
          bclr IFS0,#ADIF
          BCLR IEC0,#ADIE
          BSET ADCON1,#ADON
          BSET ADCON1,#SAMP
LCR:       BTSC ADCON1,#SAMP
          BRA LCR
ANCLA:       BTSS ADCON1,#DONE
          BRA ANCLA
          MOV ADCBUF0,W0
           MOV W0,PORTF
          MOV W0,PORTD
          return

gracias a todos por la atencion prestada

andy alarcón
montería colombia


 

anything