# How does input pin voltage protection with schottky work?

I'm trying to figure out how the schottky diode D1 is supposed to work in this schema. Besides a lower forward voltage and faster switching time, the schottky diode works like a silicon diode. So it blocks the current from the microcontroller TXD to the pin2 RXD of the bluetooth module (EGBT-45MS), which is confusing to me since now we don't get the signal to the bluetooth module.

So am I understanding this wrong or is the schema wrong?

I saw a another circuit diagram that used a 1N5817 schotty barrier rectifier and nothing else on the RXD pin. There the direction of the diode was reversed. But even then I'm not sure what that diode is protecting against.

• Your second schematic is fuzzy and is not clear enough. Post a better image. Feb 14, 2018 at 8:31
• @LorenzoDonati I agree. Unfortunately I don't have a better image (i.e. not my image). Basically D1 is reversed. Feb 14, 2018 at 8:35

That is not a protection diode in itself, but it is part of a crude level translator circuit, together with the 3k3 and 1k resistors.

You may have noticed that the two boards are powered with different voltages: the MCU has a 5V power rail, whereas the EGBT module is powered with 3.3V.

Therefore, their UART signals are not compatible. In particular, the TXD on the MCU is 5V when HIGH, and this will damage the EGBT module if applied on its RXD pin. Note that the caption of the image states clearly that the EGBT module inputs are not 5V tolerant, as some 3.3V chips inputs are.

To overcome this they use a level translator, which is quite crude since it uses no active components. I explain how it works below.

If TXD is LOW (0V) D1 conducts and you have about 0.3V drop across its terminals. This means RXD receives a voltage (~0.3V) which is interpreted as a logic LOW in 3.3V logic.

Note that D1 must necessarily be a Schottky diode. A normal silicon (PN junction) rectifier diode will produce a ~0.6V-0.7V drop, which won't be recognized as a logic LOW in 3.3V logic.

If TXD is HIGH (5V) D1 is OFF. Hence RXD receives the full 3.3V voltage through the two resistors, which are now in series and collectively act as a pull-up. In other words, now RXD gets a HIGH voltage level (3.3V) compatible with 3.3V logic.

Here is the datasheet of that module EGBT-045MS. The following excerpt confirms my explanation (emphasis mine):

When used with 5V microcontrollers, The TXD output logic swing of the EGBT-04 still falls within the valid 5V TTL range, hence, can be connected directly to the UART RXD of the 5V microcontroller host. EGBT RXD and inputs, however, are not 5V tolerant, and can be damaged by 5V level logic going in. Some level translation circuit must be added to protect the inputs. A simple diode level translator circuit like the ones shown in Figure 3 and 7 will suffice in most applications. A better alternative is with the use of 5V input tolerant tiny logic chips such as 74LVC1G125 – a single buffer chip housed in smd sot23-5 package.

As I said, it is quite a crude level translator because the drop on D1 doesn't produce a very "solid" logic LOW, i.e. it erodes the noise margin of the connection. It is OK if the wires from the MCU and the module are short, and the entire circuit is placed in an environment with low electric noise.

The excerpt above suggests, for a better alternative, using a tiny logic single buffer to perform the translation. There are also other alternatives, such as using a MOSFET, for example. These translators using active circuitry are better because they don't affect the noise margin of the connection and let your design be more robust, especially when used in an electrically-noisy environment.

• I still have a hard time understanding how the logic LOW is created. Does current flow into the TXD of the micro controller? Also, how does this compare to a simple voltage divider? Ultimately, I'd like a 38400bps communication between the CAT port of an amateur radio and the bluetooth module. Feb 14, 2018 at 9:16
• When TXD is LOW it is connected to ground (by MCU internal circuitry), hence it is at 0V. Since the anode of D1 is connected to the 3.3V rail through that 3k3 resistor (the other one doesn't matter, because it is in series with RXD input, which has high impedance, so it is virtually an open circuit) you have current flowing from the 3.3V rail through the 3k3 resistor, then through D1 and ground (through the MCU TXD pin). In this case the MCU doesn't source current, instead it sinks it. RXD doesn't draws appreciable current anyway. Feb 14, 2018 at 9:37
• @Claus it basically turns a push-pull output into an open-collector output. Feb 14, 2018 at 13:18
• @LorenzoDonati thanks for the explanation. Now I understand how the circuit works. Feb 14, 2018 at 15:36