Interface para GPIO en 12F629

Hola, soy algo nuevo en el tema y si alguien pudiera decirme si voy por el camino correcto.
Se trata de ingresar una senal para el 12F629 proveniente de un relucotr (pick up) de una motocicleta.
La senal ronda en una frecuencia desde 5 a 200Hz y la tension es proporcional a la frecuencia y alcanza hasta 15Volts
El diseno de la interface esta en esquema adjunto

El LED conduce cuando recibe un pulso negativo por el pick up. El valor de R determina la intensidad que circula por el LED = IF.
Para el opto 4N25 IF < IFmax = 50mA

IF = (VPuP-Vf)/R

Aplicando la condicion más restrictiva el limite inferior de R:
IF < 50mA,
VPuP = tension generada por el captor limitada a un max de 5V6 por D2 (BZX85C = 5,2 a 6V)

R > (VPuP(max)-VFmin)/IF = (6V – 1,2)/50mA = 96 Ohm

SATURACION

En saturacion la tension en 5 debe ser interpretada como un 0 logico por el PIC:
En saturacion: (VCE(sat)max= 0,5V) < (VILmax = 0,8V)

El input GPIO de PIC12F629: VILmax = 0,8V.
Si se usa la entrada con Shmitt trigger (GP2) VILmax = 0.2VDD


Maximo valor de R

R< [VPuP(min)-VFmax]/IF(min) . CTR

La minima tension de PickUp esta dada por el valor de D1 = 2V7 (BZX85C= 2,5 a 2,9)
Para el peor caso

R < [(2 ,5 – 1,5) 1,12] . 0,2 = 178 Ohm

Donde IF(min) = 1,12 de acuerdo a:

Para alcanzar saturacion: Ic < CTR . IF

Ic va a depender del valor del pull-up interno que en el PIC12F629 es de 4K7

Ic(max) = [(VSS - VCEmin)4k7] + IILmax

Para el peor caso:
Ic(max)= [(5,25 – 0)4k7] + 1uA = 1,12 mA

IF(min) = VPuP(min)-VFmax / R

Para que el 4N25 funcione en saturacion con este esquema el rango de R:

R = 96 – 178 Ohm

El valor commercial de 150 Ohm parece adecuado

Vamos a ver…

El pickup a bajas RPM genera baja tension cuando supere los 2,5 Volts D1 permitira el paso de la tension al opto. La resistencia tiene una tolerancia del 10%

IF(min) = [VPuP(min)-VFmax]/R

IF(min) = (2,5-1,5)/165 = 6 mA

Como habiamos calculado en las peores condiciones la maxima carga que debe soportar el transistor usando el pull-up interno del PIC es

Ic(max)= 1,12mA

Se cumple la condicion: Ic < CTR . IF (1,12 < 6 mA) el opto entrara en saturacion.


CORTE

Cuando la senal del pikup caiga por debajo de 2,7v (2,9 en el pero caso para BZX85C) el transistor pasara a corte.
Cuando el 4N25 este en corte la tension VCE(off) debe ser interpretada como 1 logico por el PIC respetando un margen de ruido.


VCE(off) > VIH(min) + NM (H)


VIH(min) = 2.0V (0,8VDD en el caso de compuerta con Schmitt trigger: GP2).


VCE(off) = VCC(min) – PullUp. (I-CEO(max) + IPUR)
VCE(off) = 4,75 – 4K7. (50nA + 400uA) = 2,86

NM(H)= 2,86 – 2 = 0,86 maximo margen de ruido en 1 logico. En el caso de que el PIC se alimentado con 5VCC.

Un capacitor de 1n podria ayudar a manter el marge de ruido?

Conclusiones:

R1 = 150 Ohm 10% tolerancia.
D1 = BZX85C 2V7
D2 = BZX85C 5V7
C1 = 1n
IC1 = 4N25

Potencia de los componentes:
El pick Up producira tensiones de hasta 15V a altas RPM.
La carga maxima del led es de 50mA. V=15 Vz=5,5 R(10%) =135 – 165

Pz = Iz. Vz
R= (V – Vz) / 1,1 . ILmax
Para el peor caso:

V=15 Vz=5,5 R(10%) =135

PD = [(V – Vz) / R] . Vz

PD = [(15 – 5,5) / 135] . 6 = 0,425 W (425mW)

BZX85C tolera 1,3 Watts osea se cumple la condicion.
 

Adjuntos

  • gpio_529.gif
    gpio_529.gif
    40.8 KB · Visitas: 55
Hola te hago una pregunta yo me hice un tacometro con un pic y para tomar la señal tb use un optoacoplador pero en la entrada puse solamente una resistencia de 2.2k y un zener de 12v, con este circuito pude medir las rev de muchisimas cosas pero al conectarlo a la moto me fallaba, tal vez por la baja tension a bajas rpm... me gustaria saber si al final encontraste la solucion para convertir las señales de la bobina en pulsos para el pic, muchas gracias.
 
Atrás
Arriba