This circuit can drive an inexpensive optocoupler with high voltage isolation at frequences above 100 kHz using an AD654 voltage-to-frequency converter. The AD654 provides an open collector output with 50% conduction duty cycle. It pulses the optoisolator input current by discharging C1 into the diode. Transistor Q1 is switched off while the AD654 conducts. Q1 then recharges C1 during the second half of the cycle.
The value of C1 is chosen to suit the type of optocoupler. In practice, this value has been found to be less critical than the value of resistor required for conventional constant-current mode. Typical values range from 1 nF to 10 nF.
If C1 is too large, the phototransistor won't recover by the end of the cycle and Q2's collector voltage will remain low. For a transmission frequency of 100 kHz, an ideal value of C1 will keep the collector voltage of Q2 near to the ground rail for 5 µs after the capacitor discharges. The circuit shown has operated at frequencies in excess of 180 kHz.
It's interesting to note that the response time from the discharge of C1 to the falling edge of Q2 is less than 200 ns. The average current taken by the optocoupler diode and drive transistor is proportional to frequency and is less than 1.5 mA at 100 kHz.
To complete the design, a CMOS 555 timer configured as a 5-µs monostable followed by an active filter makes a low-cost frequency-to-voltage converter with a 0-to-5-V output range. Circuit nonlinearity is less than one bit for 8-bit applications. R14 is an offset control.