Autor Tema: Mucho ruido y pocas nueces en ADC del 16F877A  (Leído 1942 veces)

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

Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Mucho ruido y pocas nueces en ADC del 16F877A
« en: 16 de Junio de 2010, 00:31:26 »
Hola, hace tiempo habia posteado una consulta porque ISIS/PDS se cuelga cuando uso el ADC y utilizo algunos puertos AN para otra cosa.

Bueno, de todas formas lo hice en ASM, porque es mas sencillo todavia con el HARD integrado. Y estaba relativamente conforme con las mediciones de un acelerometro, pero variaban en 6 puntos mas o menos.... y crei que estaba bien, hasta que le plante un osciloscopio y las mediciones son completamente estables, a diferencia de lo que me dice el ADC del pic
Este es el cogdigo, en el datasheet dice que con +/-20ms alcanza para la precarga.
ADC99: '-----------------------------------------------------------------------------------
                                        ADCON0=bADCreg          'Igual en circuito va como trompada directo sin bsf
                                        DelayUS 60              'Mejor código minimo y delay asegurado
                                        ASM                     
                                        bsf     STATUS,RP0      ;bank 1 ;  bcf     STATUS,RP1
                                        clrf    ADCON1          ;ADCON1=B'10000000' ;left justified, all inputs a/d       
                                        bsf     ADCON1,7
                                        bcf     STATUS,RP0      ;bank 0
                                        bsf     ADCON0,2               
                                        btfsc   ADCON0,GO       ;Wait for conversion to complete
                                        GoTo    $-1               
                                        bsf     STATUS,RP0
                                        movlw   B'00000111'
                                        movwf   ADCON1          ;clrf    ADCON0
                                        bcf     STATUS,RP0               
                                        ENDASM       
                                        wADC.HighByte=ADRESH    'Se probo la asignacion via ASM pero no funciono
                                        wADC.LowByte= ADRESL    'Utilice Righ justified en ADCON1, asi que Lowbyte Ok.
                                        TRISA=%00111000         'Cuando no se usa ADIN se pueden alterar los reg. TRISA
                                        PORTA=%00101101         'No se si hace falta, pero bueno... dale gas por las dudas
                                        Return

PD:         bADCreg=%11100001   

Bueno, muchas gracias por las respuestas. He probado poniendole un capacitor y el ruido baja, pero segun el osciloscopio no necesita el capacitor

Una consulta para los usuarios del PDS, hay alguna forma de que al recibir ruido y almacenarlo en un array, al mostrarlo en un display no se tilde... esto es algo recurrente en todos los proyectos con GLCD, ya que al acceder a las fuentes, sino encuentra el ASCII buscado, se va a la luna, y ni siquiera es posible depurarlo, simplemente deja de funcionar y ni el WDT se da cuenta.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Mucho ruido y pocas nueces en ADC del 16F877A
« Respuesta #1 en: 16 de Junio de 2010, 08:54:46 »
hola, me voy a arriesgar con una respuesta, y creo alli esta la cuestión, almenos a mi me ha pasado con el 18F4550, que es similar al 16F877.

Fijate de acomodar los bits 7-6 del registro ADCON0, denominados ADCS1:ADCS0, que ajustas el reloj interno de la conversión. Prueba con FOSC/32. No veo que allas configurados estos bits.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Re: Mucho ruido y pocas nueces en ADC del 16F877A
« Respuesta #2 en: 16 de Junio de 2010, 23:16:08 »
Hola, si estan en la variable seteados como 11, SUPUESTAMENTE lei que FRC era la mejor opcion e independiente del Xtal utilizado.

Igual hice pruebas con las otras opciones de ADCS1 y ADCS0. Gracias igual... a ver que otra cosa puede ser...

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Mucho ruido y pocas nueces en ADC del 16F877A
« Respuesta #3 en: 18 de Junio de 2010, 03:19:33 »
tambien puedes probar a hacer varias mediciones y despues sacar la media como resultado. en el hilo de rutinas para compartir tienes algun ejemplo con el CAD, echale un ojo ;-)

un saludo