Cory Cross wrote:
> After Bruce's addition of a capacitor, what's the current speed
> bottleneck of the EViLbus?
> Is there much to be gained by altering the microcontroller-side receive
> circuit? According to the datasheet for the CNY optoisolator, Toff
> (@10mA, not our 1mA) for a 22Kohm pull-up is somewhere in the 100's of
> microseconds, but since the voltage must only go up ~700mV to activate
> the transistor and the fact of working circuits both disprove this
> number, I am interested in finding out what real life has to say.
The fundamental problem is that optos don't specify their gain and speed
at more than one operating point. For marketing reasons, they pick an
operating point that makes the numbers look as good as possible. This
invariably is at high currents with very low resistor values for the LED
And, there are huge variations between parts. A 2:1 range in CTR is
common, even at the data sheet's 10ma specified current. We are using it
at 1/20th of this current, so the variation is even larger. So, you have
- Use parts at substantially below their rated speed (so all parts
work acceptably). That's why I originally used 1200 baud.
- Test and hand select parts. Use the best ones for the receiver
and the others for the transmitter (which is less critical)
or in some other circuit.
- Tweak the circuit. There are other arrangements, such as the cascode
circuit or a fast opamp or comparator as a photoamp, that will
extract the maximum possible speed from a given part. But they
add parts and cost.
- Use a more expensive part that *is* spec'd for high speed at low
operating currents (6N139, for example).
> I'm not looking to get faster speed, just to avoid having to "match"
> circuits because they are not being specified properly.
It's not so much a matter of being specified properly. Virtually all
optos are spec'd at 10ma. We use the opto at 0.5ma in this circuit,
because if you used 10ma, you would need 20 times more power. 10 nodes
at 10ma per node would draw 100ma from the 12v battery!