I am busy with a project where I am connecting a 5V(Amtel ATMega328) MCU to an 3V(ESP8266) via the serial port. Obviously I need some logic levels converted. I looked at the schematics of several open-source ones on the market to gain a understanding of how other people tackled this problem. On a side note I did build a voltage divider circuit just to start on something basic(just want to be sure I get the concept).
So I reviewed the FreeTronics logic level converter that uses a BSS138LT3G for logic level conversion. This makes some sense as it appears that this design is using a transistor with a low drop out to convert between voltage levels. You can find the schematic for freetronics logic level converter here.
I then looked at the Adafruit HUZZAH schematic board expecting to find one of the following components a voltage regulator or a MOSFET transistor or voltage divider of some sorts. Well I found the voltage regulator SPX3819 on the board but then I realized the serials pins where not using this at all...
When I studied the schematic I found that a 1N4148 diode was connected to the FTDI RX(receive) pin. I never realized you could use a diode this way(I am learning). So since this is a high speed diode it obviously causes a voltage drop from 5V to around 3V by the high speed switching almost like a PWM function would(Educated guess could be wrong). It seemed simple and elegant but then I noticed that they did not do the same on the FTDI TX(transmit) pin.
So at this point I am confused why would you convert a 5V input to the RX pin to 3.3V and then not convert it on the outgoing pin. Surely a serial port cant accommodate both voltages unless it is specified to handle it. Send 5V and receiving 3V just felt wrong.
Now I am speculating at this point but from my understanding, serial data transmissions are essentially bits being transmitted. A 5V being on and 0V being off. However I don't think that is realistic. How can I always have a 5V and 0V with components heating up, resistance variance and all the other factors in electronics? I suspect this designs works because 3V is above the 2.5V mark and the AMTEL MCU reacts to this voltage level like it was ON/1/YES bit being transmitted.
Now if my theory holds are there any risks with doing serial communications between an AMTEL chip and ESP chip via serial this way?
Or maybe I am just mad and missing something very obvious.