meBigGuy said:
One more question. Relative to the Blue signal, what it is you want to detect (I sort of lost track of the original + and - pulses)?
MPU need to work with the following 3 states:
Pulses is positive
Pulses is negative
No pulses (no signal or signal to weak to be detected)
Edit:
Relative to the graphics, a pulse starting on T=0. I want to detect a pulse and it's direction. Delay doesn't matter. So I want to detect the cycles of blue or green, and I need to know which of them to pay attention to. As I pictured above, using the blue and green to trigger one 555 each. And say the 555 has a hold time of 50% of a cycle. The 555's will trigger when input is below Vcc/3. That is 5V/3 = 1.667V. Vgnd = 2.5V. Hence the 555 will trigger when signal is more than 1.667V-2.5V=-0.833V.
So, considering the weak signal graphed above, the timeline looks like this:
T=0, no triggers. Both 555's are recently reset.
T=20: blue will trigger 555#1.
T=20+[delay]: 555#1 will trigger and hold reset on 555#2
T=40: blue will release trigger on 555#1
T=80: green is close to trigger 555#2. A little bit stronger signal, or some noise could be enough to trigger. But 555#1 is still holding the reset of 555#2, so it doesn't matter if the trigger is pulled or not.
T=120: 555#1 times out and returns to stable state. Reset on 555#2 is released.
T=200: new cycle starts
T=220: blue will trigger 555#1.
...
This was the positive pulse. With negative pulse the blue and green would swap, hence 555#2 would be triggered and 555#1 would be held in reset.
But there's a risk of this system will be out of sync when powered on. Say it's powered on at T=60, and assume reset of both 555's is part of the power on procedure. Then timeline will look like this:
T=80: green is close to trigger 555#2. A little bit stronger signal, or some noise could be enough to trigger. Assume it's triggered. (No trigger will just let the circuit wait for start of next cycle.)
T=80+[delay]: 555#2 will trigger and hold reset on 555#1
T=85: green will release trigger on 555#2
T=180: 555#2 times out and returns to stable state. Reset on 555#1 is released
T=200: new cycle starts. Both 555's are ready
T=220: blue will trigger 555#1.
T=220+[delay]: 555#1 will trigger and hold reset on 555#2
T=240: blue will release trigger on 555#1
T=280: green is close to trigger 555#2. A little bit stronger signal, or some noise could be enough to trigger. But 555#1 is still holding the reset of 555#2, so it doesn't matter if the trigger is pulled or not.
T=320: 555#1 times out and returns to stable state. Reset on 555#2 is released.
T=400: new cycle starts
T=420: blue will trigger 555#1.
...
So the out of sync-issue will make one error before it recovers to the correct sync.
For the strong signal, the timeline looks like this:
T=0, no triggers. Both 555's are recently reset.
T=2: blue will trigger 555#1.
T=2+[delay]: 555#1 will trigger and hold reset on 555#2
T=50: blue will release trigger on 555#1
T=52: green will trigger 555#2, but 555#1 is still holding the reset of 555#2, so it doesn't matter that the trigger is pulled.
T=102: 555#1 times out and returns to stable state. Reset on 555#2 is released.
T=102+[delay]: green is still holding the trigger of 555#2. Hence 555#2 is triggered.
T=102+2x[delay]: 555#2 pull the reset on 555#1
T=170: green will release trigger on 555#2
T=200: new cycle starts
T=202: blue will trigger 555#1, but it won't react as 555#2 is holding it's reset
T=203: 555#2 times out
T=203+[delay]: 555#2 releases reset on 555#1
T=203+2x[delay]: 555#1 is triggered
...
So, a strong signal makes the 555's fail totally.
Increasing the timeout for the 555's may help some, but it will lose the functionality to recover when out of sync.