In this section you will learn about TTL logic levels, CMOS logic levels & Arduino logic level and their respective input/output threshold voltage values. How TTL, CMOS and Arduino logic levels are different from each other.
TTL LOGIC LEVELS
A majority of systems rely on 5 V TTL Logic Levels. TTL is an acronym for Transistor-Transistor Logic. It relies on circuits built from BJT (bipolar transistors) to achieve switching and maintain logic states. There are number of threshold voltage levels predefined for any logic family, to know:
VOH – Minimum OUTPUT Voltage TTL device will offer for a HIGH signal
VIH – Minimum INPUT Voltage to be measured as HIGH signal
VOL – Maximum OUTPUT Voltage a device will offer for a LOW signal
VIL – Maximum INPUT Voltage to be measured as LOW signal
If you notice that the minimum output HIGH voltage (VOH) from the device will be 2.7 V. Basically, this means that the HIGH output voltage of the device will always be at least 2.7 V.
The minimum input HIGH voltage (VIH) is 2 V, it means, any voltage that is at least 2 V will be read as logic 1 or HIGH to a TTL device.
You will also notice that there is a gap of 0.7 V between the output of one device and the input of another. This is sometimes referred to as noise margin.
As well, the maximum output LOW voltage (VOL) is 0.4 V. This means that a device trying to drive out logic 0 will always be below 0.4 V.
Voltage 0.8 V is the maximum input LOW voltage (VIL). So, any input signal that is below 0.8 V will still be considered a logic 0 (LOW) when read into the device.
What happens if you have a voltage that is in between 0.8 V and 2 V? Well, your guess is as good as mine. Honestly, this range of voltages is indeterminate and results in an invalid state, often referred to as floating. If an input pin on your device is “floating” in this range, there is no certainty with what the signal will result in. It may bounce illogically between HIGH and LOW.
Here is another way of observing at the input / output range for TTL devices.
Another common voltage standard that you will encounter is CMOS devices which work on 3.3 V.
3 V CMOS LOGIC LEVELS
As technology has advanced, we’ve got devices that need lower power consumption and work with a lower base voltage (VCC = 3.3 V instead of 5 V). The fabrication technique is also a bit different for 3.3 V devices that allow a smaller footprint and lower overall system costs.
It is also compatible with 5V devices. A 3.3 V device can interface with a 5V device without any additional components. For example, output high or logic 1 from a 3.3V device will be at least 2.4 V. This still can interpret the 5V system as logic 1 (HIGH) because it is above its input high range VIH of 2 V.
A word of caution, however, is when going the other direction and interfacing from a 5 V to a 3.3 V device to ensure that the 3.3 V devices is 5 V tolerant, any voltages above 3.6 V will cause permanent damage to the chip or microcontroller. You can use a simple voltage divider circuit to avoid damages.
ARDUINO LOGIC LEVEL
Microcontroller used for Arduino Uno & Sparkfun Redboard is ATMEGA328, voltage levels are slightly different, and you can check it in the datasheet of ATMEGA328.
The microcontroller ATMEGA328 used in arduino is built on a slightly more robust platform. The most noticeable difference is that the invalid region of voltages is only between 1.5 V and 3.0 V. It has a higher threshold for a LOW signal and noise margin is greater on the Arduino. This makes interfaces & working with other hardware much simpler.
BINARY LOGIC – LOGIC 0 AND LOGIC 1