So I have the level shift some signals from 3.3v to 5v.
Simple enough. The signals are SPI clock and data, and will be used to drive APA102 LEDs.
So I'm thinking about what the best way to do that is.
The first thing that comes to my mind is a '393, with outputs pulled up to 5v, inverting inputs held at like... 2v or something, and non-inverting inputs connected to the 3.3v signal.
I have also seen things like 74LVC245 - but it looks like that doesn't provide a solution to going from 3.3v signal to 5v signal, only the other direction (unless using pullups on the 5v side?) - and going from 5v signal to 3.3v can be done with just resistor divider anyway, so this seems somewhat less useful.
And there's the 74HCT125, which looks like it goes from 3.3v to 5v, but not the other way around.
Plus, there are the various "manual" ways with transistors and resistor dividers.
What methods have I missed, and what ones would you all recommend?
These will be going onto a PCB I'm designing (so not interested in other level shifting modules).
I assume the question is primarily directed to me. As far as I can tell, none of the other proposals make use of MOSFETs.
If that is the case, I have no idea. The older document from the Technical Details section lists these characteristics...
Type : N-channel enhancement mode MOS-FET.
Gate threshold voltage : VGS(th) min. 0.1V max. 2V
On resistance : RDS(on) max. 100 Ohm @ ID = 3mA, VGS= 2.5V
Input capacitance : Ciss max. 100 pF @ VDS = 1V, VGS = 0V
Switching times : ton toff max. 50 ns.
Allowed drain current : ID 10 mA or higher.
With these parts... BSN10, BSN20, BSS83, BSS88.
My guess is any low gate voltage (low gate energy) fast switching N-channel MOSFET will work. It is my understanding that Adafruit / SparkFun chose the BSS138 based on that target (plus inexpensive).
I expect to be asked about this by people who don't do SMD
Tell them to buck-up. It is not that bad. (But tweezers are important so they may have to buy a tool.)
Another bit of coolness to consider: the MOSFET one from Adafruit is reliable shifting between 1.6 V and 5.0 V at 1 MHz. (The two AA batteries gave up the ghost so it may work at an even lower voltages. I did not test at higher frequencies.)