Autor Tema: OAMP: comparador responde como seguidor???  (Leído 2493 veces)

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

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
OAMP: comparador responde como seguidor???
« en: 13 de Agosto de 2016, 08:32:23 »
Hola,

para la salida de un circuito con fototransistor que no funciona bien pero que no tengo otra que utilizar (abierto = 3.3V, cerrado = 1.65V) he puesto un comparador para adaptar la señal a la entrada digital de un PIC:

subir fotos gratis

El caso es que la salida del OAMP me da el mismo voltaje que la entrada no invertida, como si fuese un seguidor de voltaje: 3.3V==>>3.3V y 1.65V==>>1.65V en vez de 3.3V==>>3.3V y 1.65V==>>0V.

Aunque es un circuito muy simple lo he simulado en proteus (con otro OAMP porque ese rail-to-tail no está) y funciona perfecto.

No hay ningún pin en corto con otro y el chip no se calienta. Lo cambiaría por si está roto pero no puedo ir a la oficina el fin de semana y tenía planes de programar el PIC y esto me limita :-(.

¿Alguna sugerencia?.

Gracias.
Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:OAMP: comparador responde como seguidor???
« Respuesta #1 en: 13 de Agosto de 2016, 09:55:51 »
No entiendo por que si necesitabas un comparador, no usaste un comparador en ves de un OPAMP, a mi parecer.

La salida tiene algo mas? o va directo al PIC asi como esta, me refiero a que si tenes algun pull-up o pull-down?

Si no es eso entonces no tengo la menor idea que es. Y lo unico que me queda pensar es el OPAMP,

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #2 en: 13 de Agosto de 2016, 11:36:23 »
No utilicé el comparador del PIC por pereza: se que tiene amplificadores internos pero nunca los he utilizado. La salida va directa al micro, no hay resistencias de referencia. Eso puede influir?

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:OAMP: comparador responde como seguidor???
« Respuesta #3 en: 13 de Agosto de 2016, 12:17:30 »
Pense el caso contrario, en que si exista un pull-up/down podria formarse una realimentacion, pero si va directo no tiene razon de ser, por lo que vi la ganancia de tension es de unos 100 aproximadamente. Pero si decis que tenes 1.65V en una entrada y la de referencia son 2.5V tranquilamente deberias tener los 0V a la salida.

Por eso decia que lo unico que me queda pensar es el OPAMP

PD: Cuando me referia a un comparador, lo decia a un comparador externo.
« Última modificación: 13 de Agosto de 2016, 12:21:29 por KILLERJC »

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #4 en: 13 de Agosto de 2016, 13:34:01 »
Nada: pues lo cambiaré el martes en la oficina.

¿Te refieres a algún IC distinto a un operacional que hace directamente de comparador? No utilicé nunca ese IC...

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:OAMP: comparador responde como seguidor???
« Respuesta #5 en: 13 de Agosto de 2016, 13:55:35 »
Dejando de lado que esto no tiene nada que ver con el problema, ni es una solucion a ese problema. Solo para agregar y responderte:

Es que son dos cosas distintas a pesar que tengan el mismo simbolo

Aunque un AO pueda usarse de comparador si es que la velocidad no es necesaria ( ya que suelen tener un slew-rate en la salida ). Ya que tu parte es de TI voy a poner el enlace a la parte de amplificadores.

http://www.ti.com/lsds/ti/analog/amplifiersandlinears/amplifiersandlinears.page

Vas a ver que en todas las secciones se separa el "Op Amp" del "Comparador"

Ejemplo este es uno:
http://www.ti.com/lit/ds/symlink/tlv7211.pdf
O uno de los mas conocidos:
http://www.ti.com/lit/ds/symlink/lm397.pdf
( Salida Open Colector y en el datasheet te dice hasta como hacer y calcular la histeresis, aunque las tensiones no te sirven en tu caso. )

el AO funciona de manera lineal, mientras que el comparador es TODO o NADA (pensalo como un AO con ganancia infinita pero no preparado para lo "lineal").

La anterior ves si no me acuerdo en un post de micro_pepe y con la ayuda de Picuino y Chaly se trato si no mal recuerdo una realimentacion (el cual habian otros componentes mas), me sorprendio que el comparador sea el que mejor funciono. A pesar que su salida era como una señal triangular ya que como decia es TODO o NADA. Mientras que el AO tuvo un pobre desempeño comparado con el otro. A pesar que uno quisiera que la salida respondiera de forma lineal, tal ves la velocidad del mismo afectaba a la regulacion.
« Última modificación: 13 de Agosto de 2016, 14:09:52 por KILLERJC »

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #6 en: 13 de Agosto de 2016, 15:00:54 »
Genial! Gracias por la info: siempre usé AOs como comparadores. En este caso no se necesita mucha velocidad. La señal del fototransistor viene de un "laptimer" y sólo voy a dar precisión de centésimas de segundo: de hecho el filtro de ruido es por SW (menor precisión aún).

Es bueno tener alternativas que funcionen mejor para casos específicos.

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Re:OAMP: comparador responde como seguidor???
« Respuesta #7 en: 13 de Agosto de 2016, 15:15:16 »
Una entradita que tenía en un blog desde hace tiempo de una vez que monté un circuito con un comparador: http://webdelcire.com/wordpress/archives/866

Opino como Killer que es más adecuado usar un comparador que un operacional para lo que quieres hacer, además si añades realimentación al circuito tendrás histéresis.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:OAMP: comparador responde como seguidor???
« Respuesta #8 en: 13 de Agosto de 2016, 16:02:20 »
También puedes usar uno de los comparadores del pic o el conversor ADC si los tiene.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #9 en: 14 de Agosto de 2016, 06:00:58 »
También puedes usar uno de los comparadores del pic o el conversor ADC si los tiene.

Lo que necesito es una interrupción por flanco de subida aunque una interrupción por nivel bajo (1.65V en este caso) también sería útil. Parece ser que ambos me valdrían. Lo único es que tendría que puentear a mano los pines del PIC ya que el actual no está multiplexado con ADC ni es remapeable para "llevarlo" al comparador.

Voy a investigar. Gracias.
Saludos!

PD.: perdón, los pines del comparador, asl ser analógicos también, no parecen remapeables.
« Última modificación: 14 de Agosto de 2016, 06:09:13 por manwenwe »
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #10 en: 15 de Agosto de 2016, 14:34:05 »
Bueno,

lo del comparador parece que va bastante bien y es más sencillo de lo que pensaba. Como no tengo soldador a mano y tengo que hacer pruebas las he hecho con un pulsador que está abierto a 0V (pulldown interna) y cerrado a 3.3V. Es para PIC32MZ. Dejo la inicialización por si a alguien le es útil. OJO!!!: no miréis los manuales especificos de CVREF y COMPARATOR porque son de PIC32MX (los registros son parecidos pero no iguales a los de PIC32MZ); Los CAPULLOS de Microchip no actualizan las documetaciones. :5].

Para  configurar el pin de la entrada no invertida (curioso pero la pulldown en el pin analógico también funciona, si no la ponía ocurrían un montón de falsos positivos):

#define LAPn_TRIS               TRISBbits.TRISB2
#define LAPn_ANSEL              ANSELBbits.ANSB2
#define LAPn_PULLDOWN           CNPDBbits.CNPDB2
LAPn_TRIS = 1;
LAPn_ANSEL = 1;
LAPn_PULLDOWN = 1;


Para configurar CVREF:

    CVRCONbits.CVROE = 0; // CVref pin disconnected.
    CVRCONbits.CVRSS = 0; // Reference: Avdd - Avss
    CVRCONbits.CVRR = 0;
    CVRCONbits.CVR = 0b1111; //2.37V with CVRSRC = 3.3
    CVRCONbits.ON = 1;


Para configurar el comparador 2:

    CM2CONbits.COE = 0; // CVREF pin disconnected.
    CM2CONbits.CPOL = 1; // Output is inverted.
    CM2CONbits.EVPOL = 0b10; //Interrupt: high-to-low.
    CM2CONbits.CREF = 1; // Non-inverting input to CVref.
    CM2CONbits.CCH = 0b00; // Inverting input to C2INB.
    CM2CONbits.ON = 1;


Interrupciones:

    IPC32bits.CMP2IP = 4; // Set priority level = 4
    IPC32bits.CMP2IS = 1; // Set sub-priority level = 1
    IFS4bits.CMP2IF = 0;
    IEC4bits.CMP2IE = 1;


Vector de interrupciones:

void __ISR(_COMPARATOR_2_VECTOR, ipl4AUTO) IntHandlerDrvCmpInstance0(void)
{
    IFS4bits.CMP2IF = 0;
    return;
}


El módulo es muy sencillito y con lo de invertir la salida, el selector de flancos para interrupciones y CVREF... muy versatil.

Algo nuevo que aprendí...

Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #11 en: 22 de Agosto de 2016, 16:12:56 »
Se resolvió el misterio... Mi mala cabeza :oops: :oops: :oops:, por no acordarme de dos cosas. 1º Los leds de infrarrojos se disparan con PWM. 2º (MAS IMPORTANTE) usar multímetro en vez de osciloscopio para medir señales. El OP estaba funcionando bien y el multímetro me daba el valor RMS.

A parte de eso he tenido más problemas. EL micro está alimentado por el mismo "rail" que alimenta el DC-DC de backlight de un LCD, el cual genera ruido. Cada cierto tiempo (de 200ms a pocos segundos) el fototransistor lanza un pulso sin el emisor encendido (un "falso positivo"). He tenido que filtrar por SW; un timer cada 10ms contando pulsos: con 3-5 pulsos me aseguro de descartar los "falsos positivos".

En fin. Al menos está solucionado :).

Saludos! 
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re:OAMP: comparador responde como seguidor???
« Respuesta #12 en: 22 de Agosto de 2016, 21:09:13 »
Hola manwenwe, un buen filtrado para el DC-DC también hubiera sido una buena opción.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:OAMP: comparador responde como seguidor???
« Respuesta #13 en: 23 de Agosto de 2016, 04:09:37 »
Hola manwenwe, un buen filtrado para el DC-DC también hubiera sido una buena opción.

Un saludo.

Atte. CARLOS.

Sin duda Carlos: pero en esta PCB no puedo ya que hay que hacer "demasiada cirujía" para arreglarlo y tengo que dar el proto funcionando ya. Para la final filtro con ferrita.

Gracias.
Saludos!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -


 

anything