Power supplies & logic interface
A long time ago most digital logic was TTL and ran off 4.75-5.25v power supplies, with logic threshold typically 1.2V (so that logic '1' and logic '0' were assymetrical).
Outputs | Inputs |
logic '1': 2.4 - 5v | 2.0-5v |
1.2v typical threshold | |
logic '0': 0 - 0.4v | 0-0.8v |
Now the dominant logic families are CMOS with no such restriction. CMOS outputs always attain supply voltages at low load currents. Assymetrical threshold on inputs is needed for compatibility with TTL, some families have this:
Some 5v microcontrollers
74HCT series CMOS
etc
Other families have symmetrical threshold (2.5v at 5v supplies):
4000 series CMOS
74HC series CMOS
Some CMOS logic - e.g. 4000 series can - work 3V-15V (see datasheets). Modern microcontrollers can work 3V-5v or even 1.8V to 5V. Modern FPGAs will work 3.3V, 2.5V or 1.8V.
This means there are logic level translation issues when interfacing a low voltage microcontroller to higher voltage peripheral logic. The simplest design solution is to run all logic at the higher supply voltage. This will use more power than necessary, and may not be possible.
Solutions for voltage translation are shown in the table below.
Common source nmos FET with pullup resistor to the output supply | Simple, will work with most supplies with lower limit determined by
max Vt of FET. May be slow if pullup resistor value is high. High
component count but good for single or dual outputs. Also good for
translating up to high voltages at low load currents. For high currents
(e.g. driving power MOSFETS) see special purpose MOSFET driver ICs. Similar circuit with BJT requires base resistor and will be slower. NB this translation INVERTS logic level |
CD40109 (quad translator) | Requires both supplies to be 3V-10V range, can convert up or down, 4 signals in 16 pin package. |
GTL2002 (dual translator) | Tiny 8 pin SMT package. Note there is an 8 bit version but this is
in a SMT package with lead spacing so small it will not be possible to
solder! This translator requires pullup resistors on outputs, and will work from any voltage 1.2-10v to any other. Uniquely this translator allows bidirectional outputs to be connected without a direction pin. this is very useful when interfacing bidirectional microprocessor pins. When used in bidrectional mode two pullup resistors are required. |