Autor Tema: Comparadores analogicos  (Leído 10273 veces)

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

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Comparadores analogicos
« en: 08 de Octubre de 2009, 19:44:31 »
Que tal amigos!
Estoy un poco retirado del foro por lo de la universidad, pero espero pronto volver de nuevo al la faena  :mrgreen:
Lo que me trae por aqui es  unas dudas sobre la configuracion de los comparadores analogicos con el ccs y un pic16f877a.
Estuve revizando el archivo 16f877a.h y alli me parecen una configuracion para los comparadores que no logro entenderla se las coloco:

Citar
// Comparator Variables: C1OUT, C2OUT
// Constants used in setup_comparator() are:
#define A0_A3_A1_A3  0xfff04
#define A0_A3_A1_A2_OUT_ON_A4_A5  0xfcf03
#define A0_A3_A1_A3_OUT_ON_A4_A5  0xbcf05
#define NC_NC_NC_NC  0x0ff07
#define A0_A3_A1_A2  0xfff02
#define A0_A3_NC_NC_OUT_ON_A4  0x9ef01
#define A0_VR_A1_VR 0x3ff06
#define A3_VR_A2_VR 0xcff0e
#define CP1_INVERT  0x0000010
#define CP2_INVERT  0x0000020

#bit C1OUT = 0x9c.6     
#bit C2OUT = 0x9c.7
En cada una de las lineas se observa que hay mas de 2 bytes  :shock: cuando deberian ser dos byte que es el tamaño de los registros del pic   :?
ahora bien como se leen entonces esos parametros o es que hay algun error?
Como configuraria el programa para trabajar con un solo comparador y una salida al exterior?

Bueno espero que alguna alma caritativa me ilumine un poco en el camino con el CCS   :mrgreen:

Saludos

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: Comparadores analogicos
« Respuesta #1 en: 08 de Octubre de 2009, 20:52:38 »
Que tal amigos!
Estoy un poco retirado del foro por lo de la universidad, pero espero pronto volver de nuevo al la faena  :mrgreen:
Lo que me trae por aqui es  unas dudas sobre la configuracion de los comparadores analogicos con el ccs y un pic16f877a.
Estuve revizando el archivo 16f877a.h y alli me parecen una configuracion para los comparadores que no logro entenderla se las coloco:

Citar
// Comparator Variables: C1OUT, C2OUT
// Constants used in setup_comparator() are:
#define A0_A3_A1_A3  0xfff04
#define A0_A3_A1_A2_OUT_ON_A4_A5  0xfcf03
#define A0_A3_A1_A3_OUT_ON_A4_A5  0xbcf05
#define NC_NC_NC_NC  0x0ff07
#define A0_A3_A1_A2  0xfff02
#define A0_A3_NC_NC_OUT_ON_A4  0x9ef01
#define A0_VR_A1_VR 0x3ff06
#define A3_VR_A2_VR 0xcff0e
#define CP1_INVERT  0x0000010
#define CP2_INVERT  0x0000020

#bit C1OUT = 0x9c.6     
#bit C2OUT = 0x9c.7
En cada una de las lineas se observa que hay mas de 2 bytes  :shock: cuando deberian ser dos byte que es el tamaño de los registros del pic   :?
ahora bien como se leen entonces esos parametros o es que hay algun error?
Como configuraria el programa para trabajar con un solo comparador y una salida al exterior?

Bueno espero que alguna alma caritativa me ilumine un poco en el camino con el CCS   :mrgreen:

Saludos

la verdad no he trabajado con el comparador, pero con el wizar de CCS puedes configurarlo muy facilmente...

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comparadores analogicos
« Respuesta #2 en: 09 de Octubre de 2009, 12:45:20 »
si parece raro que tenga más de 2 bytes, pero seguramente el ccs sabrá bien como manejarlo, si no sin dudo hay un error por allá o provoque algún error, no he trabajado mucho con comparadores analógicos, pero lo que te recomiendo es que lo configures como lo necesites, deberás hacer:

setup_comparator(A0_A3_A1_A3);   //si quieres que todos los comparadores estén activos
ó alguna otra configuración si quieres salvar pines por ahí, y probablemente debas usar:

setup_comparator(A3_VR_A2_VR | CP1_INVERT);  //para colocar más de una configuración cuando es posible.

Aunque experimente con A0_A3_NC_NC_OUT_ON_A4, por decirlo nada más, con otro micro pensando que los que se configuran como NC deberían ser simples salidas o entradas digitales, pero no cumplen esta función o es que llevo algún concepto errado o el CCS está trabajando un poco mal??

saludos!
.

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Comparadores analogicos
« Respuesta #3 en: 09 de Octubre de 2009, 13:10:51 »
Aun no se como utilizar ccs pero pueden entrar a este tema que trabaja con mikroc

Entradas Comparadoras, MikroC y Proteus

Espero que les sirva de algo
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comparadores analogicos
« Respuesta #4 en: 09 de Octubre de 2009, 13:56:54 »
Aun no se como utilizar ccs pero pueden entrar a este tema que trabaja con mikroc

Entradas Comparadoras, MikroC y Proteus

Espero que les sirva de algo
Tuviste experiencia en lo que indica Cryn? Osea si solo se usan 2 entradas a los comparadores con referencia interna, y los otros 2 pines desactivados, los pudiste usar como I/O digital?
No contesto mensajes privados, las consultas en el foro

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Comparadores analogicos
« Respuesta #5 en: 09 de Octubre de 2009, 17:27:17 »
Que tal amigos!
Gracias por su ayuda  :mrgreen:
Ayer con la ayuda del amigo palitroquez descubri por que son tres byte (5 hex), es porque van configurados asi en este orden:

TRISA -> CVRCOM ->CMCON  ese es el orden de mayor a menor.
La gente del CCs deberas que se la ingenia  :mrgreen:

Bueno pana esa configuracion que indicas, cryn, es la que voy a utilizar pero abra que probarlo en fisico para ver como opera.
Suki con lo que coloque arriba podras ver que si puedes utilizar salidas digitales estando utilizando el comparador con los pines que no se usan para tal fin.
Y deberia ser posible utilizar tambien entradas como digitales, pero eso es otra historia...  :D

Saludos

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comparadores analogicos
« Respuesta #6 en: 09 de Octubre de 2009, 18:19:30 »
particularmente a mi no me funcionó los NC como salidas digitales :(
.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comparadores analogicos
« Respuesta #7 en: 09 de Octubre de 2009, 20:04:05 »
Yo tengo el mismo problema  :?
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comparadores analogicos
« Respuesta #8 en: 09 de Octubre de 2009, 20:29:49 »
será un bug? o será que el micro funciona así?
.

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Comparadores analogicos
« Respuesta #9 en: 09 de Octubre de 2009, 21:48:50 »
Que tal amigos!
Las pruebas que estan haciendo con las salidas las estan simulando en el proteus? o estan probando en fisico?.
Si las pruebas la hacen en el proteus puede ser alli donde este el problema ahora bien ,ya que, segun entiendo algunas versiones del proteus no soportan a los comparadores.

Lo mejor seria probarlos en fisico a ver que tal.

Saludos

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comparadores analogicos
« Respuesta #10 en: 09 de Octubre de 2009, 22:04:25 »
En lo físico probado en un 16F877A  :mrgreen: Me queda hacer un programita en asm y probarlo, pero me acuerdo en su momento haberlo programado en CCS y no logre el resultado previsto  :?
« Última modificación: 09 de Octubre de 2009, 22:06:53 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Comparadores analogicos
« Respuesta #11 en: 09 de Octubre de 2009, 22:46:38 »
Que tal amigos!
Disculpenme pero tengo un pequeño error en lo que les escribi arriba  :(
Efectivamente como me han dicho no les va a trabajar porque la configuracion que les di arriba no es la correcta.
La correcion seria:
X->TRISA->CMCON  // Asi si les va a trabajar solo queda definir quien es la X la cual corresponde al primer hex que aparece en la palabra de configuracion.
Eso se los dejo como tarea  :D
Prueben esta combinacion en fisico a ver si les trabaja
Citar
#bit ra4 = 05.4
void main()
{
   setup_comparator(A0_A3_A1_A3_OUT_ON_A4_A5);
De ser asi me parece que hay un bug en el proteus de nuevo, porque en la simulacion no me anda bien  :shock:

Saludos

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Comparadores analogicos
« Respuesta #12 en: 10 de Octubre de 2009, 12:19:03 »
y los A3_VR_A2_VR en VR se tiene voltajes de referencia?
.

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Comparadores analogicos
« Respuesta #13 en: 10 de Octubre de 2009, 15:58:53 »
Que tal amigo cryn!
Mira no lo creo,  :shock: 
Segun la simulacion hecha en el proteus, paso a paso, los pines del puerto A quedan como entradas, aunque dos de los pines ra4 y ra5, quedan como salidas al exterior. Es una cosa de veras extraña.
No se si es la simulacion en el proteus que falla, pero sino trabajan los pines como salida porque el comparador da una salida?   :(

N.P.I   :D

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Comparadores analogicos
« Respuesta #14 en: 10 de Octubre de 2009, 16:14:26 »
según

http://www.labcenter.co.uk/products/comparison.cfm#

http://www.labcenter.co.uk/products/pic16.cfm#tabs-3

el modulo comparador si es soportado en el Virtual System Modelling del Proteus

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