I am busy interfacing things to the inputs of a microcontroller.
If I look at the datasheet for the So8DZ128, in the Appendix A, Electrical Characteristics, DC Characteristics, I find the following:
Input high voltage; all digital inputs,
VIH (input high) for 5V = 0.65 x VDD
VIH (input high) for 3V = 0.7 x VDD
So I interpret this for a 5V supply that the input must be at least 3.25V to register as a logic 1.
Therefore all TTL or 3.3V CMOS devices (Vout high = 2.4V) will need a level-shifter before connecting to the input of the CPU.
I am currently using a Schmitt trigger/buffer to do this (NC7WZ17). The buffer is connected to a supply of 5V.
(And for the reverse direction the same buffer is used, connected to 3.3V)
I know that the inputs of the microcontroller have a pull-up resistor that can be enabled via software, but I do not think this is of much help in this case, only if you connect the controller input to something that is floating (high impedance).
Is this the necessary and correct/best/easiest way to do level shifting ? (and correct me if I am wrong).
What cheap/commonly available integrated circuits do you use to do TTL/CMOS level-shifting for your microcontroller application ?