Autor Tema: Problema ADC PIC24FJ256GB106  (Leído 3684 veces)

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

Desconectado skyseb

  • PIC10
  • *
  • Mensajes: 13
Problema ADC PIC24FJ256GB106
« en: 24 de Febrero de 2010, 22:03:51 »
Hola.

Esty teniendo problemas para poder leer adc con el pic.

CCS 4.088 + MPLAB V8.3 + PICKIT2

les cuento, ya lo tengo conectado a un lcd en el cual estoy monitoreando los registros del ADC.

intento tomar adc por la pata RB0. que la tengo conectada a un pote entre 3.2v y masa. osea entre VDD y VSS.


antes que nada estos son los registros que luego de setear veo como quedaron.

Código: [Seleccionar]
#word AD1PCFGL =0x032c

#word AD1CON1 =0x0320
#word AD1CON2 =0x0322
#word AD1CON3 =0x0324

#word AD1CHS0 =0x0328
#word AD1CSSL =0x0330



Extracto del codigoo principal

Código: [Seleccionar]


  setup_adc(ADC_CLOCK_INTERNAL|ADC_CLOCK_DIV_128);
  setup_adc_ports(sAN0|VSS_VDD);
  set_adc_channel(0);

  print_lcd_number(AD1PCFGL , 1, 1);
  print_lcd_number(AD1CON1  , 8, 1);
  print_lcd_number(AD1CON2  , 15, 1);
  print_lcd_number(AD1CON3  , 22, 1);
  print_lcd_number(AD1CHS0  , 29, 1);
  print_lcd_number(AD1CSSL  , 1, 2);
         
         do {

            adc_valor = read_adc();
            print_lcd_number(adc_valor, 23, 2);         
            delay_ms(100);

         } while (TRUE);         



bien, los valores que me muestra el LCD que son puestos antes de iniciair el ciclo son:

AD1PCFGL -> 0xFFFE

AD1CON1   -> 0x80E0
AD1CON2   -> 0x0000
AD1CON3   -> 0x80FF

AD1CHS0   -> 0x0000
AD1CSSL   -> 0x0000

con esto estimo que tengo todos los registros bien configurados.

ahora el problema.

los valores adc que me toma son siempre 150/160 en decimal.

si coloco el pote en punto medio para obtejer 1.6 vots... y tener un esperado 512 en decimal, sige estando el 150/160.

coloco el tester en la pata en cuestion (RB0) y mido, chan 20.1 mv.

levanto la pata del pote.. y mido directamente el punto medio y tengo 1.6volts en el pote

y mido la pata (RB0) y tengo: 7.3mv.

Alguien me puede dar una mano. Por lo que vi le paso a un chico tambien con un dsPIC, el lo solucionó usando la pata RB0, en la cual yo tengo el problema.

Tambien revise el TRISB y esta correcto. es decir esta en 0x0001

¿Podra ser un problema de hard? Tengo todos los capacitores en las vdds. 3.2vts regulados. no entiendo.


Muchas gracias.



Desconectado skyseb

  • PIC10
  • *
  • Mensajes: 13
Re: Problema ADC PIC24FJ256GB106
« Respuesta #1 en: 25 de Febrero de 2010, 01:02:36 »
CCS Actualizado a la version 4.104. Mismo problema.

Desconectado skyseb

  • PIC10
  • *
  • Mensajes: 13
Re: Problema ADC PIC24FJ256GB106
« Respuesta #2 en: 25 de Febrero de 2010, 18:25:05 »
Cambie la linea:

setup_adc(ADC_CLOCK_INTERNAL|ADC_CLOCK_DIV_128);

por

setup_adc(ADC_CLOCK|ADC_TAD_MUL_31|ADC_CLOCK_DIV_32);

y comnezo a andar.

Ahora. con el pote conectado... lo hago subir a 0x200 osea a la mitad.. mido en la pata y tengo 1.6 volts. excelente.. ahora..

saco el pote de la pata mido y wooo tengo 5.1 volts. osea

me sigue haciendo la caida de tension.. tienen idea porque? por favor que alguien me ayude..!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema ADC PIC24FJ256GB106
« Respuesta #3 en: 25 de Febrero de 2010, 20:21:08 »
Al agregar ADC_TAD_MUL_31 se hace que el tiempo de adquisición se espere por hardware, seguramente al no colocarlo se produce una configuración errónea, porque en el código inicial veo una demora de 100ms y por lo tanto no debería tener problemas  :? Me parece que CCS no es recomendable para dispositivos de 16-bits, es mucho más seguro C30.


Ahora, al sacar el potenciómetro el pin queda libre, y debería tirar un valor aleatorio. Porque marca 5.1V si el micro es de 3.3V?

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado skyseb

  • PIC10
  • *
  • Mensajes: 13
Re: Problema ADC PIC24FJ256GB106
« Respuesta #4 en: 25 de Febrero de 2010, 20:51:59 »
perdon me exprese mal.

cuando tengo el pote conectado si mido la pata del micro tengo 1.6v y el micro me dice 515 aprox.

y cuando levanto, en el pin me quedan 10mv y en el pote 5.1volts.

al conectar el pote seteado a 5.1volts en la pata rb0 la tension baja a 1.6v eso es lo que me pone loco.

revise los registros que establecen los pullups y los pulldown pero esta todo en 0 es decir no estan habilitados.

saludos


Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema ADC PIC24FJ256GB106
« Respuesta #5 en: 25 de Febrero de 2010, 21:05:39 »
mmm... No se me ocurre cual puede ser el inconveniente, pero ten cuidado, si el micro es de 3.3V no le coloques mas de 3.6V al pin analógico porque sino, adiós pin.  :?

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado alexiel

  • PIC10
  • *
  • Mensajes: 31
Re: Problema ADC PIC24FJ256GB106
« Respuesta #6 en: 31 de Marzo de 2010, 02:41:12 »
Hola señores del foro:
Encuentro que aquí hablan de problemas que tienen con el ADC quisiera comentar mi problema.
Investigando por la red encontré mas o menos información sobre los circuitos externos que se deben considerar a la entrada de los pines configurados como ADC. El circuito que concluí hacer para la prueba fue el sguiente:

La alimentación VDD es de 3.3v, porque es para un Dspic. La señal de entrada en out filter, es una señal de audio. Este circuito se decidió implementarlo porque la señal de audio oscila entre +6 voltios y -6 voltios.  En las especificaciones del dspic que uso no se puede ingresar voltajes mayores a VDD + 0.3 voltios, osea 3.6 voltios. Este circuito me funciona pero el inconveniente es que deja pasar hasta 4 voltios y por debajo hasta -240mV, cuando estan en conducción los diodos Schottky (11DQ05) su consumo es de 580mV. Mi problema será algo en el circuito que uso? Agradezco de antemano las ayudas brindads.