De entrada tengo que pedir disculpas a todas las personas que lleguen a través de un buscador al artículo Motes: 8, Detector de flancos con puertas XOR últimamente no acierto una a la primera, como primero publico lo que hago y después lo pruebo con frecuencia tengo que rectificar. En todo caso si alguien se ha inspirado en el detector de flancos de la página anterior y después de volverse loco ha llegado a esta página le pido disculpas.
En conclusión el circuito de la página anterior está completamente mal, hoy lo miro y no entiendo como no me di cuenta. Hoy busco una alternativa, sigo sin encontrar ninguna referencia para un detector de flancos (que detecte tanto los de subida como los de bajada), como ya tengo los integrados con las puertas XOR he intentado hacerlo de forma que las aproveche, este es el esquema:
El principio de funcionamiento es sencillo, la primera puerta tiene una entrada a nivel alto, por lo que funciona como una puerta inversora, 1 en la entrada es 0 en la salida, la forma de onda en la entrada es la A, la forma de onda en la salida es la B. Tal como se puede observar en el cronograma la forma de onda B tiene un poco de retraso con respecto a la inversa de la A, esto es característico de todas las puertas. En la segunda puerta ponemos en una entrada la misma que en la primera puerta y en la otra entrada la salida de la primera puerta. El resultado es la forma de onda c, siempre a nivel alto y un pulso a nivel bajo en cada cambio de estado (positivo o negativo).Esta es la teoría, he recableado el circuito en el nuevo prototipo en base a este esquema y he mirado la forma de onda. Como generador de onda cuadrada he utilizado un Arduino con el Scketch de blink sin pausas, aproximadamente un ciclo completo ocupaba unos 4 microsegundos según el osciloscopio. de hecho ya se aprecia en la foto que la onda no es cuadrada por la frecuencia y las inductancias/capacitancias del circuito.Para ser completamente sincero me esperaba el problema que me he encontrado, ayer estuve buscando programas de simulación digital para no hacer el montaje, pero como está basado en el retraso de las puertas digitales, inexistente en la aproximación teórica que emplean estas aplicaciones, decidí montarlo.
Aunque en la foto no se aprecia la detección de los flancos descendentes si que existe, el problema que me esperaba es que la puerta fuera tan rápida que no le diera tiempo al Xbee a darse cuenta de que tiene que despertarse con un pulso tan corto. La base de tiempos del osciloscopio está a 1 microsegundo por división y efectivamente no es suficientemente largo (o por lo menos esa es mi conclusión) Según el datasheet el tiempo de conmutación está entre 2 y 7,5 ns, claramente insuficiente.
He llegado a dos conclusiones bastante importantes:
1.- Tengo que buscar una alternativa para el detector de flancos que de un pulso un poco más ancho.
2.- Le tengo que pasar un «trapito» urgentemente al osciloscopio 🙂
Pingback: bMotesPIR, a vueltas con el sensor de flancos | Zigbee labs