Electronic – How to equalise highly asymmetrical rise and fall times

comparatorrise time

This question is kinda similar to highly-asymmetrical-rise-and-fall-times, but I think that the data sheet is already suggesting that I'm at the optimum design. Resistor changes were the answer to that particular question.

I have this:-

my circuit

which produces this output that's fed into an Arduino digital input:-

trace

with 1 V and 200 nS /div settings. It's clear that the LM311P comparator is being thrashed beyond it's slew rate which is okay. You can see the relatively slow rise time in comparison to the fall time. The data sheet suggests a 500 Ohm pull up resistor. That's about 10 mA of current which seems a lot for a logic circuit. I'm assuming that as they've used the 500 value for their timing diagrams, this is the optimum value and maximises speed. I realise that the rise /fall times are different on the datasheet, but is this the only reason for my asymmetry? And if so, is there no solution to equalising them any better? Even if a solution eludes me, I'd be happy with an explanation.

The reason for the output pulses not reaching the full 5V level as been asked. The inputs to the comparator are white noise from the Zeners, which looks like:-

zener input

I don't think that it's oscillations, it's just too fast for the 120 ns switch time. The Rigol's FFT display is naff so I can't accurately measure the spectrum /frequency.

Best Answer

Your rise and falls times aren't all that asymmetrical. Sure, the rising edge has that long tail as it approaches +5, but that really doesn't matter, since you are driving a digital input. What counts is the time from either 0 or +5 to (approximately) the mid=point, and from the looks of the scope traces that is a few tens of nanoseconds. If you need better symmetry you're probably better off with a higher-speed comparator.

So let's start by dropping back to basic questions. How much symmetry do you need, and why?