This instructable will briefly explain the two logic families of IC's you will most likely be encountering and using in your circuit designs and how to ensure that the HIGH or LOW output of the other is translated and interpreted correctly between a TTL and CMOS device. This process is called voltage level shifting and is the subject of this instructable.
Turn the page and read up on the two logic families that you have probably already implemented in your designs.
Step 1: TTL Integrated Circuits
The bipolar logic family, as the TTL series falls under have had consideral improvements, the first being the 74H which provided twice the speed of the original 74xx series, but at a cost of over twice the power consumption. The next improvement was the74L which increased all the internal resistances, leading to a net improvement in power consumption, but increased the propagation delay.
A key improvement came with the 74S series which placed Schottky diodes across the base-to-collector junctions of the transistors. Capacitive effects were reduced and yielded a speed increase of a factor of 5 with about a two-times increase in power consumption. The above mentioned lines 74LSxx were derived from this series and reduced power consumption by about 1/3. The 74ALSxx improved performance even further. The 74F series, based on a new technology, reduced the propagation delays and even further reduced the size of the IC.
Step 2: CMOS Integrated Circuits
The CMOS line also had a much wider operating voltage range (3V to 18V) and had a specific requirement for the voltage meaning HIGH and LOW, for both input and output to other integrated or digital circuits (which I will cover later). The 4000 series, while offering greater power requirement reduction, were considerably slower than its TTL counterparts and were particularly susceptible to static discharges and were easily damaged by static electricity.
Several advances were made in the CMOS line. The 74Cxx series were made to be pin-for-pin compatible with the TTL IC of the same name (ie 74138 == 74C138). Also, later was introduced the 74HC and 74HCTxx series of CMOS IC's. This High-speed CMOS (HC) line was also pin-compatible with the TTL series but still used the same voltage supply and logical voltage setup as the previous CMOS circuits. The 74HCTxx series were High-Speed CMOS but were voltage-compatible with their TTL counterparts. Finally, the "Advanced CMOS" 74ACxx series was developed to have a processing speed comparable to the 74F TTL line.
Today, which one you choose is mainly a decision based on availability, cost, and voltage requirements of your design. However, there are still compatibility issues if you "mix and match" CMOS and TTL ICs because each logic family defined what a HIGH voltage was and what a LOW voltage was, and they are not generally compatible except in a small overlap. What does this mean for us? We may get lucky and it means nothing, but for most of us, it means that we have to design in some way to match each of the logic families logic voltage requirements in a process called voltage level shifting, or just level shifting.
Step 3: The Problem Defined: Level-shifting
The TTL family allows a 2V - 5V difference to be counted as a HIGH and defines the threshold for output for HIGH as 2.7V to 5V. In the CMOS family, an input wanting to define HIGH must bring between 3.5V and 5V. But TTL only has to bring 2.7V, leaving a difference of almost a volt that is valid for TTL and invalid for CMOS. It's when a TTL chip wants to send a HIGH and sources somewhere in that nebulous range that's not valid for CMOS HIGH but is for TTL.
The answer is to level shift. This is the act of actively either shifting down or up a signal voltage to match a target IC. The most useful I've found is the shift up to 5V from 3.3V signal.
Step 4: Using a Zener Diode
By attaching a load resistor inline before the zener diode, and taking the zener to ground, you can ensure that the voltage that gets past the zener is at or slightly below the zener voltage (Vz) of the zener diode. In the example picture below, you can see that inputting a 5V signal outputs a 3.18V signal.
In the second example, I'm "regulating" 5.1V after stepping down from 10V. This isn't to be confused with a constant-current/voltage regulation. This is best used as a signal with little to no load.
Step 5: Stepping Up Voltage With ATransistor
Notice the voltage divider network in the 2nd example. I've found 10k ohm resistors yield the best value closest to 5V without going over. Your mileage may vary.
Step 6: Level-Shifting: Inverter Circuit
The same idea can be applied to octal and hex line buffers without having to invert and this is useful if you have multiple signal elements that are coming out of an MCU or other logic family IC and are all having the same action applied (ie all being stepped up or stepped down).
Step 7: Level-Shifting: Octal Bus Transceiver
Some IC options here are 74*241, 74*244, 74*245. You could also use a 4050 hex non-inverting buffer or any other one of your choosing. In my example, I use the 4050.
Step 8: Dedicated IC: CD4504 Level Translator
This IC is a CMOS hex voltage-level shifter for TTL-to-CMOS and CMOS-to-CMOS. From the datasheet:
CD4504B hex voltage level-shifter consists of six circuits which shift the input signals from the Vcc logic level to the Vdd logic level. To shift TTL signals to CMOS logic levels, the SELECT input is at the Vcc HIGH logic state. When the SELECT input is at a LOW logic state, each circuit translates signals from one CMOS level to another.
Check the picture below or check out the datasheet for the pinout. Essentially, your signal-to-be-shifted may be on AIN and it will be shifted and put back on AOUT. Same for BIN and BOUT, etc.
Step 9: Dedicated IC: MAXIM MAX3390
Connect your signals accordingly:
- IVL1 to OVL1
- IVL2 to OVCC2
- IVL3 to OVCC3
- IVL4 to OVCC4
Step 10: Check It
Thanks for reading my instructable. As always, I look forward to any comments or suggestions you may have regarding this or any of my instructables.