Re: 74HCxx vs 74LSxx
Posted: Tue Aug 13, 2019 12:11 pm
Interesting that no-one mentioned the biggest difference between HC and LS - power requirements. HC(T) uses power practically only when the signal transitions or there is a resistive load, the latter not being the case when it only drives other HC(T) or CMOS and indeed NMOS circuits like CPU or FPU pins. In these conditions, changing LS with HC(T) is almost like getting the same curcuit just without the power drain of the LS chip you just replaced - it can be quite dramatic.
Also, as to the circuit design in question - HCT should be used at least for the 08 ans 27 chips, not HC. HC could be used safely only it the CPU is a HC or EC variant. The reason for this is the CPU, despite being a MOS device, has TTL compatible output levels when the pins are loaded, which means, depending on the load on the particular signal, the high level might fall below what HC recognizes as a high level (2/3 of it's power supply voltage, in the 5V case this is 3.33V, while the minimum considered for LS to be 1 is about 2.4V). HCT has TTL compatible input thresholds and will function properly when driven by TTL input signals.
That being said, HC(T) outputs swing to very near the power supply rails, so logical 0 is very close to 0V, and logical 1 very close to 5V. In the case of the schematic given, the 08 ans 27 chips only drive the FPU pins or the 30 chip pins, so they are very lightly loaded, and the voltage levels for 0 and 1 will be close to theoretical 0V and 5V. This means the 30 chip can be either HC or HCT as the input voltages for 0 and 1 will be properly recognized in either case.
Regarding speed (propagation delay and edge rates) be careful as specs can be misleading. HC(T) chips internally operate at very low powers and the internal logic is very fast, though speed dependent on the power supply voltage and temperature. Under normal conditions, the internal logic is MUCH faster than LS TTL. However, in order to interface with the external world that used to be regular, LS or even S TTL, where static currents are required, the output stages of output pins are quite a lot beefier but also more dependent on loading. Lightly loaded and cool HC(T) can be way faster that specs would suggest, and indeed much faster than equivalent LS with no load. Indeed, it's also reasonable to expect they will run cool since the static power drain of HC(T) is virtually zero, so unlike LS it does not heat itself even doing nothing.
The down side is that maximum power drain occurs when signals change, producing sharp current peaks in the power supply and ground. Although the average is far lower than LS, the peaks can be shorter so PCB line inductance will play a bigger role. Simply put: replacing lots of LS with HC(T) can result in problems with some marginal PCB layouts.
In the proposed schematic, LS (or ALS) should work fine, just expect more current draw from the power source. In either case (LS or HC(T)) be sure to do as good a job as you can with power decoupling and grounding - so my suggestion here would be to carefully reconsider the design you have made. Miniaturizing the PCB is only desirable goal, but it cannot replace good layout when the actual signals are concerned.
Also, as to the circuit design in question - HCT should be used at least for the 08 ans 27 chips, not HC. HC could be used safely only it the CPU is a HC or EC variant. The reason for this is the CPU, despite being a MOS device, has TTL compatible output levels when the pins are loaded, which means, depending on the load on the particular signal, the high level might fall below what HC recognizes as a high level (2/3 of it's power supply voltage, in the 5V case this is 3.33V, while the minimum considered for LS to be 1 is about 2.4V). HCT has TTL compatible input thresholds and will function properly when driven by TTL input signals.
That being said, HC(T) outputs swing to very near the power supply rails, so logical 0 is very close to 0V, and logical 1 very close to 5V. In the case of the schematic given, the 08 ans 27 chips only drive the FPU pins or the 30 chip pins, so they are very lightly loaded, and the voltage levels for 0 and 1 will be close to theoretical 0V and 5V. This means the 30 chip can be either HC or HCT as the input voltages for 0 and 1 will be properly recognized in either case.
Regarding speed (propagation delay and edge rates) be careful as specs can be misleading. HC(T) chips internally operate at very low powers and the internal logic is very fast, though speed dependent on the power supply voltage and temperature. Under normal conditions, the internal logic is MUCH faster than LS TTL. However, in order to interface with the external world that used to be regular, LS or even S TTL, where static currents are required, the output stages of output pins are quite a lot beefier but also more dependent on loading. Lightly loaded and cool HC(T) can be way faster that specs would suggest, and indeed much faster than equivalent LS with no load. Indeed, it's also reasonable to expect they will run cool since the static power drain of HC(T) is virtually zero, so unlike LS it does not heat itself even doing nothing.
The down side is that maximum power drain occurs when signals change, producing sharp current peaks in the power supply and ground. Although the average is far lower than LS, the peaks can be shorter so PCB line inductance will play a bigger role. Simply put: replacing lots of LS with HC(T) can result in problems with some marginal PCB layouts.
In the proposed schematic, LS (or ALS) should work fine, just expect more current draw from the power source. In either case (LS or HC(T)) be sure to do as good a job as you can with power decoupling and grounding - so my suggestion here would be to carefully reconsider the design you have made. Miniaturizing the PCB is only desirable goal, but it cannot replace good layout when the actual signals are concerned.