Autor Tema: Tiempo mínimo de detección de un flanco  (Leído 2627 veces)

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

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Tiempo mínimo de detección de un flanco
« en: 11 de Agosto de 2017, 07:08:09 »
Hola a tod@s de nuevo!

Hacía tiempo que no me pasaba por el foro, porque profesionalmente me ha tocado alejarme un poco de los micros, pero he vuelto con un pequeño diseño en el que me surgen dudas.
Tengo que detectar un flanco de subida de un fotodiodo que está recogiendo pulsos de un láser. Utilizo un pic18f4520, a través de la patilla RB0 lo recojo y tengo que emitir una señal de salida para sincronizar otro dispositivo.
El tema es que creo que no siempre lo detecta bien y tengo dos teorías, primera es que no siempre detecta el flanco de la señal del fotodiodo, y no se si es por que es muy rápida en caer, y la pregunta aquí es el tiempo mínimo de señal que es capaz de detectar el micro?.
La segunda teoría es que pueda estar recibiendo ruido, hay señales espúreas dentro de la que se recibe del fotodiodo, sin embargo su amplitud está en menos de 100 mV, entonces, mi pregunta aquí, es a partir de que valor se detecta el flanco de subida para la interrupción? (La señal que lo debe activar anda en torno a los 3,5-4 V, es el ajuste al que he intentado llegar).

Gracias de antemano por vuestra ayuda y un saludo!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Tiempo mínimo de detección de un flanco
« Respuesta #1 en: 11 de Agosto de 2017, 12:53:11 »
Si no me equivoco. Minimo un TCY para las interrupciones seria lo recomendable, por otra parte me aseguraria de usar algun comparador para que la salida de tension sean los 5V a alimentar al PIC.

De querer hacer un  pulso de sincronismo lo haria con los comparadores del PIC, que seguramente ese debe tener.
Ademas haces uso de la interrupcion de ese comparador, en ves de realizarlo con algun pin como el B0 que es por flanco, Y tenes tambien un modulo de referencia de voltaje para compararlo. Suponiendo que tengas suficiente tiempo como para hacer todo hasta el proximo pulso del fotodiodo.

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re:Tiempo mínimo de detección de un flanco
« Respuesta #2 en: 18 de Agosto de 2017, 05:32:54 »
Hola KILLERJC,

Gracias por tu respuesta. El problema que tengo también es que la PCB está diseñada y utilizo unicamente la RB0 como entrada por flanco, asique de momento no puedo usar los comparadores (salvo que haga una chapuza sobre ella, que a lo mejor al final es lo que me toca). Por eso me gustaría saber cuanto tiempo necesita la patilla para detectar un flanco de subida, y a que nivel de tensión lo hace?. Porque detectarlos los detecta, lo que pasa es que no siempre lo hace en el mismo momento y eso me tiene desorientado.

Gracias por vuestra ayuda,
Un saludo!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Tiempo mínimo de detección de un flanco
« Respuesta #3 en: 18 de Agosto de 2017, 10:50:41 »
Segun el datasheet en la parte de AC timings tenes que para los pines INT ( que seria el Rb0 ) el minimo es TCY, es decir si lo tenes alimentado a 4Mhz, el minimo (ancho de pulso que debe mantenerse) es de 1us, Si usas otra frecuencia, entonces sera menor o mayor.

Respecto a la tension, el pin RB0 en su funcion INT posee un buffer Schmitt Trigger, por lo cual la tension en Alto esta dado por tensiones mayores a 0.8*VDD , y el bajo en tensiones menores a 0.2*VDD

Es decir si tenes 5V de alimentacion necesitas que:
Tu pulso vaya desde 0V a 1V para indicar un 0, y de 4V a 5V para indicar un 1.
Por lo cual tus tensiones de 3.5V a 4V no te va a servir, por eso apuntaba al comparador
« Última modificación: 18 de Agosto de 2017, 13:59:02 por KILLERJC »

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re:Tiempo mínimo de detección de un flanco
« Respuesta #4 en: 06 de Septiembre de 2017, 09:51:29 »
Hola KILLERJC,

Gracias por tu respuesta, al final voy a tener que usar el comparador, porque he intentado arreglarlo de mil maneras, es muy raro el problema la verdad, porque existe como un retardo desde que se detecta el flanco hasta que abre la ventana de tiempo y éste es variable, que es lo que me choca, porque si fuese fijo no habría problema. De ahí que me pregunte si las gpio (RC0 en mi caso) tiene algún kitter variable desde que le dan la orden de subir de nivel hasta que lo hace?
Para usar el comparador de referencia, que nunca lo he hecho, tienes algún ejemplo en CCS de como se hace, porque he buscado pero no he encontrado nada útil...
Gracias y un saludo!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Tiempo mínimo de detección de un flanco
« Respuesta #5 en: 06 de Septiembre de 2017, 16:29:17 »
No manejo CCS, asi que no puedo ayudarte en ese caso.

Tenes 2 opciones,

Usar estos 2 modulos:
- La referencia de tension para el comparador
- El comparador
El tiempo de respuesta del comparador esta en 150ns o mas.

O usar el modulo de detenccion de alta/baja tension.
- HLVD
Este ultimo queda descartado por necesitar un pulso de 200uS o mas

Entonces solo te queda la primer opcion.
Para usar la referencia de tension interna, vas a perder 3 pines, ya que si o si pasan 4 a ser analogicos.
Si usas una referencia de tension externa, entonces ahi vas a usar 2 pines ( referencia + entrada )

Si no, usas un comparador externo.

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re:Tiempo mínimo de detección de un flanco
« Respuesta #6 en: 07 de Septiembre de 2017, 04:51:31 »
Gracias por tu respuesta KILLERJC. Intentaré utilizar el modulo de referencia externo que lo puedo sacar de la VDD.
Si no, como bien dices, un comparador externo con operacional y en este caso imagino que si quepodría usar la RBO/INT para capturar el evento, porque la señal que me dé el operacional entrará en mi rango de tensión...
Ya contaré a ver que he conseguido.

Gracias y un saludo.