I have a UART module that needs to be connected to an MCU.

The pins are Open drains.

The input base current is 1.16mA. Output Current 96mA. Hope its fine. Anything I missed or I need to take care of with the transistor (CB configuration) or others?

  • \$\begingroup\$ We have no knowledge what voltages your device accepts as inputs, so we can't answer if something works or not. Why are the pins open-drain anyway? \$\endgroup\$
    – Justme
    Commented Jul 11, 2023 at 9:58
  • \$\begingroup\$ @Justme The module seems to have UART TX and RX pins. They are mentioned as open-drain in the datasheet. Since, the device (module) is working on a Vcc of 5V. I assume that's the output we need to do level shifting to from the MCU. Right? \$\endgroup\$
    – Freshman
    Commented Jul 11, 2023 at 10:00
  • \$\begingroup\$ It would read in the data sheet what levels are acceptable. Don't assume. \$\endgroup\$
    – Justme
    Commented Jul 11, 2023 at 10:02
  • \$\begingroup\$ "The pins are Open drains" - which pins? \$\endgroup\$
    – Finbarr
    Commented Jul 11, 2023 at 10:03
  • \$\begingroup\$ @Finbarr, UART TX and RX pins in the UART module are open drain. \$\endgroup\$
    – Freshman
    Commented Jul 11, 2023 at 10:12

1 Answer 1


Some 3.3V MCUs have 5V tolerant IO, this means they can't actively drive outputs to 5V, but they can accept 5V input. If your 3.3V MCU has 5V tolerant IO then you will not need a level converter and can tie GPIO configured as open-drain outputs to 5V with a resistor.

You have not said which MCU is being used or which device it connects to, so I can't be more specific.

Your circuit looks like it could work. R2 is too low though, that will be a lot of current draw, you only need about 10k pull up for UART.

I am not a fan of BGT transistors as they draw a lot of current (in relative terms) and also can be very slow switching and suffer from turn-off delay caused by over-saturation which is very difficult to avoid when implementing a switching circuit as supposed to a linear analogue circuit. To overcome turn-off delay caused by over-saturation you end up having to drive the BGT transistor with even lower impedance, i.e. even higher currents, or develop a more complex circuit. A low frequency of 9.6 kHz is not difficult to achieve with BGTs though.

  • \$\begingroup\$ Thank you for your answer. If I try to reduce the 96mA current by increasing the pull-up resistor, the output voltage goes down? Any idea why is that happening? \$\endgroup\$
    – Freshman
    Commented Jul 11, 2023 at 10:56
  • \$\begingroup\$ Is the output loaded, or open circuit in the simulation? \$\endgroup\$ Commented Jul 11, 2023 at 10:57
  • \$\begingroup\$ Output is open circuit in the simulation. \$\endgroup\$
    – Freshman
    Commented Jul 11, 2023 at 10:59
  • \$\begingroup\$ You could try reducing resistor R1, if the issue is caused by slow switching times. Is the output high voltage too low with a constant voltage, or is it that the output takes too long to settle? \$\endgroup\$ Commented Jul 11, 2023 at 12:48
  • \$\begingroup\$ I think you would have an easier time using a level converter IC \$\endgroup\$ Commented Jul 11, 2023 at 12:49

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