Electrical – are 100K resistors too weak for connecting HC to cmos

cmoseepromlcdpullupshift-register

I have created two identical circuits. The only difference between them apart from the number of lines on the LCD is that the old circuit uses 10K pull-up resistors instead of 100K pull-up resistors. I'll explain further…

I created a circuit in which data gets fed serially into shift registers (74HC164) via a serial port. The output of the registers are connected to a AT28C256 EEPROM which then loads the data to an LCD. This saves the micro controller from using up its space to store lengthy LCD messages.

When I tested things, both circuits turned on the LCD as expected, however in the newer circuit, the LCD didn't respond to anything where as in the older circuit, the LCD did respond and produced correct text on the screen.

I tested the LCD in the older circuit (even though it didn't fit), and the LCD does work.

I also tested the new circuit and fixed all the short circuits and open circuits I could find.

In both circuits, the pull-ups I described above are connected to the outputs of the shift registers (74HC164) because I was told that a solution was to use the 74HCT164 instead of 74HC164, but they might create EMI, and its harder to find 74HCT.

The reason why I jumped to 100K is because I wanted to save power on my circuit but the question is is 100K too high of a pull-up resistor value between an 74HC output and a cmos input? If so, what is the maximum value I should use?

EDIT: Just to clarify, old circuit uses 10K resistor pull-ups and new circuit uses 100K resistor pull-ups. Other than that, the schematic below was used for both circuits. Items marked J were staples that conduct electricity.

The LCDCLKB and LCDCLK connect together to prevent the 74HC164 inputs from floating.

circuit

Best Answer

the pull-ups I described above are connected to the outputs of the shift registers (74HC164)... is 100K too high of a pull-up resistor value between an 74HC output and a cmos input? If so, what is the maximum value I should use?

The 74HC164 already has CMOS outputs that actively pull up to Vcc, so you shouldn't need any pull-up resistors.

The output of the registers are connected to a AT28C256 EEPROM

The AT28C256 has TTL compatible inputs, so pull-ups should not be required even when driven with standard TTL logic.

I was told that a solution was to use the 74HCT164 instead of 74HC164

This sounds like there might be a problem with voltage levels on the inputs to the shift register. HCT logic has TTL compatible inputs (0.8V-2.0V), whereas HC requires CMOS input levels (1.3V-3.7V). If your microcontroller's I/O is 3.3V it might not work with standard CMOS, but should work with HCT.

The chart below shows input and output voltage ranges for various logic families. For an input to be reliably recognized as high or low it needs to be outside the purple/blue areas. Outputs normally stay inside the orange or yellow area.

Standard CMOS, HC, AC and AHC all have the same input and output levels. Their outputs are also compatible with HCT and standard TTL.

Standard TTL outputs may not be compatible with standard CMOS inputs because a TTL output can be as low as 3.3V. This is where a pull-up resistor helps, since it can pull the TTL output up closer to 5V.

enter image description here