0
\$\begingroup\$

I'm transmitting serial data across a cable to a shift register. I transmit data in discrete packets, where different packets have different bit lengths. The clock frequency is about 20 MHz while transmitting.

When each packet ends, I need to generate a short pulse to latch the shift register. I know a packet has ended when the clock stays low for a few cycles.

What circuit will output this latch signal?

Timing chart example

Commenters asked some good questions about timing, so I'll clarify:

  • The shortest packet is 800 bits, for a duration of 40 μs minimum.
  • Idle time between packets is 10 μs minimum.
  • The latch pulse duration must be 10 nanoseconds minimum.
\$\endgroup\$
9
  • 1
    \$\begingroup\$ 1) Is the clock rate known, or at least constrained? \$\endgroup\$
    – SteveSh
    Jan 5, 2020 at 22:32
  • 1
    \$\begingroup\$ 3) Do you need a pulse, or would just a rising or falling edge suffice? \$\endgroup\$
    – SteveSh
    Jan 5, 2020 at 22:41
  • 1
    \$\begingroup\$ a re-triggerable monostable multivibrator (retrig one-shot) would be the kind of circuit that you are looking for \$\endgroup\$
    – jsotola
    Jan 5, 2020 at 22:56
  • 2
    \$\begingroup\$ 1st you must be more specific. T1= Duration free of clock transitions ,T2 for duration of pulse and recurring if necessary. With tolerances.. even if you don’t care.... \$\endgroup\$ Jan 6, 2020 at 0:01
  • 2
    \$\begingroup\$ you want a missing pulse detector \$\endgroup\$ Jan 6, 2020 at 2:34

1 Answer 1

0
\$\begingroup\$

Thanks to the commenters 🥳, I've come up with a solution: invert the intermittent clock signal, pass that to a missing pulse detector, and pass that output to a falling-edge pulse detector.

Here's a simulation. Click L or H to start or end a packet.

circuit diagram and timing chart

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.