2
\$\begingroup\$

Update: after posting this question I learned more about electronics and that this kind of complexity should not be added as the result of playing around in a simulator, but only after problems are found in real life. Also, I did not build a device which used RS-232 at 50MHz.

I wanted to try designing a device that will use an RS-232 interface. RS-232 works at +12/-12V - I know I can use a MAX232 as a level converter, but I wanted to try designing my own (this is a hobbyist project).

I designed this circuit in Falstad CircuitJS, and it seems to work quite well in the simulation. (Click the link for a demo)

schematic

simulate this circuit – Schematic created using CircuitLab

CircuitJS shows it working acceptably at up to 50MHz - though at that frequency I'd expect I need to simulate more parasitics, and I don't need that level of performance anyway.

Is this design more complicated than is needed for its purpose? It seems like quite a lot of components. Have I made any beginner mistakes?

Circuit explanation:

The circuit formed by R1, Q1, R5, R9 and M2 should be easy to understand - when the input signal is high, Q1 turns on, which pulls down M2's gate through R5, which turns M2 on, which pulls the output high. When the input is low, Q1 is off, and the gate recharges through R9, which stops pulling the output high. (The mirror-image circuit on the bottom half will turn M1 on and pull the output low).

At high frequencies the gates do not recharge quickly enough through R9 and R10, causing excessive power dissipation when both M1 and M2 are turned on. To alleviate this I added Q6 and Q2. When Q1 turns off, the gate starts charging through R9, and when it reaches Q2's threshold voltage, Q2 turns on, which turns Q6 on, which very quickly recharges the gate. .A separate inverter could have been used to control Q2, for another small improvement, but it would add even more complexity. R9 is smaller than R10 because the top half has less voltage to work with (12V instead of 15.3V) and I found this made a surprisingly large difference in the turn-off time in the simulation.

Note the part numbers (IRF9530 etc) were added by CircuitLab, and aren't specific components that I plan to use.

\$\endgroup\$
5
  • 1
    \$\begingroup\$ Not sure if anybody, except you needs that driver. \$\endgroup\$ Jun 15, 2017 at 12:09
  • 1
    \$\begingroup\$ @MarkoBuršič That suggests you think everyone else would use something different - such as what? (and a MAX232 is an all-in-one solution for +/-12V, but what if I needed say a +/-8V or +/-15V output? \$\endgroup\$
    – user253751
    Jun 15, 2017 at 21:24
  • \$\begingroup\$ If you don't want the charge pumps from the MAX232s use an SN75150 which is just the line driver part or the SN75154 which is just the receiver, and has a venerable history of being used to do this is in practically everything including the original IBM PC \$\endgroup\$
    – james
    Jan 14, 2019 at 21:51
  • \$\begingroup\$ @james Since posting this question I bought some SN75188s instead of playing with trial-and-error in CircuitJS. \$\endgroup\$
    – user253751
    Jan 14, 2019 at 22:10
  • \$\begingroup\$ I'd like to add this question was the result of playing around in CircuitJS with not much idea what I was doing, and a much simpler circuit probably works in real life, and at frequencies above where basic circuits work, they design them to not need to shift levels! (also, a transformer could do that) \$\endgroup\$
    – user253751
    Sep 17 at 15:22

2 Answers 2

2
\$\begingroup\$

Although some consider this useless, I love this king of hobby projects, where you go down to the basics of electronics.

I think there is an issue with your circuit: V1 won’t raise instantly from 0V to 3.3V (and won’t either drop instantly from 3.3V to 0V). When it will be at 1.65V (and in fact roughly anywhere between 0.6V and 2.7V), both Q1 and Q3 will be on. As a consequence, both M1 and M2 will be on, causing an excessive power dissipation.

I think you should try to ensure that Q3 turns off before Q1 turns on and that Q1 turns off before Q3 turns on.

\$\endgroup\$
0
0
\$\begingroup\$

The biggest problem with your design is that the circuit is non-inverting ie. high level at the input pulls the output high while RS-232 requires inverting action. If you really need to play with output voltages try an IC like MC1488.

\$\endgroup\$
2
  • 2
    \$\begingroup\$ well that's trivial to fix by adding an inverter in front of it, or by inputting an inverted signal to begin with. \$\endgroup\$
    – user253751
    Jun 18, 2017 at 23:42
  • \$\begingroup\$ Your fix adds complexity to already complex circuit; monolithic RS-232 drivers were invented long time ago \$\endgroup\$
    – user117884
    Jun 19, 2017 at 19:55

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.