Autor Tema: ADC fondo de escala  (Leído 22768 veces)

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

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: ADC fondo de escala
« Respuesta #45 en: 05 de Marzo de 2007, 21:29:31 »
Lo hemos comprobado esta tarde Emilio, hemos medido con osciloscopio todo, ya que estaba medido con polimetro y me surgio la duda de que pudiera haber problemas con la alimentacion o con la señal de salida del encoder. No se ha apreciado ruido ni caidas de tension, todo son señales rectas y limpias.

El resultado es que la alimentacion que llega al PIC son 5V en todo momento, es decir, una linea recta en el osciloscopio sin variaciones al mover el encoder o hacer cualquier operacion ya que lleva alimentacion externa y no hay problemas de demanda de corriente. LLeva condensadores necesarios y la tension de alimentacion definitivamente no es el problema.

Hemos medido la salida del encoder y efectivamente trabaja entre 0 y 4.7V. A partir de 4.2V da en todo caso 65472 ya este dando una salida de 4.2, 4.3,...4.7V

Hemos hecho el experimento que propone Emimad, hemos quitado el encoder y hemos metido directamente una fuente de alimentacion al conversor, con el mismo resultado, a partir de 4.2V da 65472.

Despues hemos cambiado la variable de 16 bits por una de 10 y el resultado es el mismo, solo que ahora a partir de 4.2V da 1024 evidentemente.

Seguire investigando en el datasheet y en CCS, definitivamente o ese PIC esta roto o es algo mal en el software.

Tutoriales y proyectos de electrónica

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: ADC fondo de escala
« Respuesta #46 en: 05 de Marzo de 2007, 21:53:48 »
Hechale un hojo a esta parte del datasheet Jose. Creo que deberias poner el divisor por 16 aunque no se si sera ese el problema.

Tutoriales y proyectos de electrónica

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ADC fondo de escala
« Respuesta #47 en: 05 de Marzo de 2007, 23:38:15 »
Por cierto según el datasheet del pic si no se pone tensión de referencia (Vref), este se pone por defecto con la tensión de alimentación del pic...

¿Podes pegar el texto o hacer referencia exacta a donde leíste esto? Tal vez pueda ser una mala interpretación.   

Lo que yo interpreto es que si el Vref no está seleccionado desde el ADCONx entonces se usa el Vdd como referencia, ahora bien si eliges un modo en que debas poner el Vref, no estoy seguro de que sea como dices.  Jamás lo he probado porque si uso Vref le coloco vref pero no me parece que sea así como dices, pero al no estar 100% seguro te pido que subas por favor el texto o hagas incapié a la referencia con número de documento con su versión (la versión está designada con una letra) y su página.

5GTT es muy buen punto el que acabas de mencionar , si uno fija una base de tiempo que sea más rápida que los useg que requiere el conversor (1.6 useg en la mayoría de los pics) entonces la precisión se pierde.




- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: ADC fondo de escala
« Respuesta #48 en: 06 de Marzo de 2007, 00:14:19 »
Creo que se trata del compilador el que pone por defecto esas referencias, de todas formas yo se lo dejaria claro por si hace alguna jugarreta.

Con la nueva funcionalidad de CCS se puede ver el emsamblador que produce el codigo en C. Si colocamos este codigo:
Código: [Seleccionar]
setup_adc_ports(AN0 | VSS_VDD); //Aqui indico las referencias VDD y VSS
setup_adc( ADC_CLOCK_DIV_16 );
set_adc_channel(0);

En ensamblador vemos esto:

Código: [Seleccionar]
....................    setup_adc_ports(AN0 | VSS_VDD); //Aqui indico las referencias VDD y VSS
01E2:  MOVF   FC1,W
01E4:  ANDLW  C0
01E6:  IORLW  0E
01E8:  MOVWF  FC1
....................    setup_adc( ADC_CLOCK_DIV_16 );
01EA:  BSF    FC0.0
01EC:  BCF    FC0.1
01EE:  BSF    FC0.2
01F0:  BCF    FC0.7
01F2:  BSF    FC2.0
....................    set_adc_channel(0);
01F4:  MOVLW  00
01F6:  MOVWF  01
01F8:  MOVF   FC2,W
01FA:  ANDLW  C3
01FC:  IORWF  01,W
01FE:  MOVWF  FC2

Ahora cambiando el codigo:

Código: [Seleccionar]
setup_adc_ports(AN0);//Aqui no indico referencias a ver que toma por defecto CCS
setup_adc( ADC_CLOCK_DIV_16 );
set_adc_channel(0);

optenemos:

Código: [Seleccionar]
....................    setup_adc_ports(AN0); //Aqui no indico referencias a ver que toma por defecto CCS
01E2:  MOVF   FC1,W
01E4:  ANDLW  C0
01E6:  IORLW  0E
01E8:  MOVWF  FC1
....................    setup_adc( ADC_CLOCK_DIV_16 );
01EA:  BSF    FC0.0
01EC:  BCF    FC0.1
01EE:  BSF    FC0.2
01F0:  BCF    FC0.7
01F2:  BSF    FC2.0
....................    set_adc_channel(0);
01F4:  MOVLW  00
01F6:  MOVWF  01
01F8:  MOVF   FC2,W
01FA:  ANDLW  C3
01FC:  IORWF  01,W
01FE:  MOVWF  FC2
.................... 

Con lo cual creo que si es cierto que por defecto el compilador toma VDD y VSS como referencias si no se expecifican otras.

Tutoriales y proyectos de electrónica

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ADC fondo de escala
« Respuesta #49 en: 06 de Marzo de 2007, 08:16:43 »
Con lo cual creo que si es cierto que por defecto el compilador toma VDD y VSS como referencias si no se expecifican otras.

Es que pensé que hablaban del HARDWARE del pic, no del compilador. 

El compilador en este punto es secundario, ya que "supuestamente" el problema es del hardware...

En realidad por ahí se entremezcla el lenguaje y no es que el compilador "tome tal o cual cosa por defecto" es la función del setup_adc() la que setea esas cosas, el compilador solo cumple la labor de, valga la redundancia, compilarlo.

Es una pena que la gente de CCS no disponga de códigos fuente como trae el C18, realmente es muy útil saber cómo se implementa una cierta función ya que a veces uno no quiere 'exactamente' eso que está ahí escrito, sino cambiarlo levemente.

Todas estas conjeturas, las quise disipar desde el principio y si releemos varios posts atrás Post #4 del hilo pedí que se lea el ADCONx en el MPLAB para ver cómo quedaban seteados... eso disipa toda duda de cómo queda configurado el módulo del hardware del pic ante el comando seleccionado. 

Jamás tuve respuesta de eso (del estado de los ADCON) y eso me hace pensar que 'algo' en la comunicación entre posteadores no está funcionando bien lo cual es una pena.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: ADC fondo de escala
« Respuesta #50 en: 06 de Marzo de 2007, 10:22:32 »
Creo que no es posible ver el estado del ADCON con CCS, no hay funcion que lo permita. Unicamente el estado del ADCON se puede ver en el ensamblador que he puesto, solo que al parecer CCS lo nombra como FC0, FC1 y FC2.

No soy muy experto en ensamblador, creo que FC1 es el equivalente de ADCON1 y tiene sus bits 4 y 5 a 0, con lo que seleccionamos VSS y VDD como referencias.

Me asalta la duda de si FC0 se refiere al ADCON2 y FC2 al ADCON0, seria de la manera que me cuadra la configuracion que puse en C en el mensaje anterior.


Tutoriales y proyectos de electrónica

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ADC fondo de escala
« Respuesta #51 en: 06 de Marzo de 2007, 11:48:17 »
Creo que no es posible ver el estado del ADCON con CCS, no hay funcion que lo permita. Unicamente el estado del ADCON se puede ver en el ensamblador que he puesto, solo que al parecer CCS lo nombra como FC0, FC1 y FC2.

No soy muy experto en ensamblador, creo que FC1 es el equivalente de ADCON1 y tiene sus bits 4 y 5 a 0, con lo que seleccionamos VSS y VDD como referencias.

Me asalta la duda de si FC0 se refiere al ADCON2 y FC2 al ADCON0, seria de la manera que me cuadra la configuracion que puse en C en el mensaje anterior.



5GTT no creo que sea tan complicado.

Yo usé el ccs 3 o 4 veces en mi vida.  Es perfectamente posible acoplarlo al MPLAB y en el WatchWindow se puede ver cualquier registro del pic.

También se podría sacar el valor del ADCONx por algún display, usart, o donde sea.

Esto es así para cualquier compilador, no importa que sea basic, pascal o el que sea.

De todas formas, lo que me preocupa es que cómo dije antes, estamos volviendo al principio donde si hubiera habido mejor comunicación no estaríamos 2 semanas después posteando esto que ya fue posteado.  Eso es lo más preocupante.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: ADC fondo de escala
« Respuesta #52 en: 06 de Marzo de 2007, 12:09:08 »
Otra forma seria en proteus. te deja ir paso a paso, y pues como lo que se quiere es probar la conversion AD, no estaria mal. Yo creo que el punto que tocaron es muy importante. Si le calibras mal la frecuencia de reloj para el AD, lo que se hace es que no le des el tiempo suficiente al AD para sacar los 10 bits y tendras respuestas a medias.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: ADC fondo de escala
« Respuesta #53 en: 06 de Marzo de 2007, 13:05:14 »
la verdad es que con el rollo que se formó anteriormente creo que me faltó preguntar:

¿cuanto es la impedancia a la entrada del AN0?

si estan usando el 18F4550, debe ser <= 2.5K para obtener una precisión aceptable. ver página 266 de 39632c.pdf

si después de varios ensayos no llegan aún al resultado esperado, no les quedará de otra que empezar desde cero pero montando el código en ensamblador. es el último recurso.


Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ADC fondo de escala
« Respuesta #54 en: 06 de Marzo de 2007, 17:10:55 »
si después de varios ensayos no llegan aún al resultado esperado, no les quedará de otra que empezar desde cero pero montando el código en ensamblador. es el último recurso.

Lo cual también fue dicho mucho antes, incluso hasta pedí el esquemático...  8)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: ADC fondo de escala
« Respuesta #55 en: 06 de Marzo de 2007, 21:33:37 »
5GTT no creo que sea tan complicado.

Yo usé el ccs 3 o 4 veces en mi vida.  Es perfectamente posible acoplarlo al MPLAB y en el WatchWindow se puede ver cualquier registro del pic.

También se podría sacar el valor del ADCONx por algún display, usart, o donde sea.

Esto es así para cualquier compilador, no importa que sea basic, pascal o el que sea.

De todas formas, lo que me preocupa es que cómo dije antes, estamos volviendo al principio donde si hubiera habido mejor comunicación no estaríamos 2 semanas después posteando esto que ya fue posteado.  Eso es lo más preocupante.

Saludos


Simplemente nunca he acoplado CCS con MPLAB y no se como hacerlo. He estado trasteando a ver si lo conseguia pero no he averiguado nada. Me gustaria saber como se realiza el acoplamiento ya que parece bastante util saber como andan todos los registros del PIC.  Eso si, mirando en MPLAB en View-> watch a ver si lo conseguia, he aclarado mis dudas sobre cual ADCONX corresponde con cual FCX:

FC1 es ADCON1
FC2 es ADCON0
FC0 es ADCON2

Segun el ensamblador de antes:

-ADCON1 es 11001110 lo que indica que VDD y VSS son las referencias(bit 4 y 5 a 0) y que todo el puerto A es digital salvo AN0 (bit 3-0 = 1110)
-ADCON0 es 11000011 los  bit del 5 al 2 estan a 0, lo que indica que se ha seleccionado el channel 0 (AN0)
-ADCON2 es 0xxxxx101 que indica que esta justificado a la izquierda (bit 7) y que divide la Frec del oscilador entre 16 (bits 2-0 = 101). No se que pasa con los otros bits, se que controlan los Tad pero no deduzco que valor tienen.

Me gustaria que me revisarais estos resultados que obtengo ya que, como digo, no soy experto en emsamblador.

En cuanto a lo de volver al principio, muchas veces es necesario. No debes preocuparte por lo que ya no se puede cambiar, se empezo mal, pero podemos sacar algo util, personalmente voy a empezar un robotito que va a medir las distancias por el conversor AD y va a llevar el 18F4550. Por eso tambien quiero averiguar donde esta el error.

Tutoriales y proyectos de electrónica

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ADC fondo de escala
« Respuesta #56 en: 06 de Marzo de 2007, 22:55:31 »
Simplemente nunca he acoplado CCS con MPLAB y no se como hacerlo. He estado trasteando a ver si lo conseguia pero no he averiguado nada. Me gustaria saber como se realiza el acoplamiento ya que parece bastante util saber como andan todos los registros del PIC.  Eso si, mirando en MPLAB en View-> watch a ver si lo conseguia, he aclarado mis dudas sobre cual ADCONX corresponde con cual FCX:

Cuando yo lo hice, venía con un pequeño programita un .exe que lo agregaba al MPLAB en la sección de TOOLS.  De todas formas, creo que es bastante simple hacerlo a mano también.

C2 es ADCON0
FC0 es ADCON2

Segun el ensamblador de antes:

-ADCON1 es 11001110 lo que indica que VDD y VSS son las referencias(bit 4 y 5 a 0) y que todo el puerto A es digital salvo AN0 (bit 3-0 = 1110)
-ADCON0 es 11000011 los  bit del 5 al 2 estan a 0, lo que indica que se ha seleccionado el channel 0 (AN0)
-ADCON2 es 0xxxxx101 que indica que esta justificado a la izquierda (bit 7) y que divide la Frec del oscilador entre 16 (bits 2-0 = 101). No se que pasa con los otros bits, se que controlan los Tad pero no deduzco que valor tienen.


Creo que está correcta tu apreciación.


En cuanto a lo de volver al principio, muchas veces es necesario. No debes preocuparte por lo que ya no se puede cambiar, se empezo mal, pero podemos sacar algo util, personalmente voy a empezar un robotito que va a medir las distancias por el conversor AD y va a llevar el 18F4550. Por eso tambien quiero averiguar donde esta el error.
Es necesario cuando uno trabaja 'solo' pero si te dicen "oye, fijate esto" y no te fijas, entonces es que uno ya se pone medio cabeza dura.  Ese es el punto que quiero recalcar.

Sin rencores ni buscando culpables, solamente opino que a veces hay que ser menos estructurado y ver con otros ojos los consejos que nos dan. 

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: ADC fondo de escala
« Respuesta #57 en: 07 de Marzo de 2007, 11:23:55 »
A ver si veo a Jose o se pasa por aqui y que pruebe las modificaciones y comente el resultado.

Tutoriales y proyectos de electrónica

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: ADC fondo de escala
« Respuesta #58 en: 07 de Marzo de 2007, 11:24:22 »
5GTT en la web del CCS dan un plugin para facilitarte el proceso de "entendimiento" con el MPLAB.

del resto en el menú view buscas la ventana de los SFR allí te van aparecer toditos, y podras ver el estado del registro que buscas.

Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything