Constantin:
What makes the bss138 or txb approach so attractive is that these circuits are bidirectional. This is especially useful on circuits like twi or i2c where signals can originate from either slave or master on a shared bus.Because of its inherent uni-directionality, SPI is easy to implement with inexpensive buffer chips. For other buses / hardware configurations / protocols, you have to figure out a way to enable/disable the buffer chip via the OE pin as needed. That may not be feasible with some types of devices /buses that do not feature a suitable OE signal output as part of the package.
Got it, thanks!
Another thing to keep in mind is that you may be able to economize on level-translating chips as long as whatever target voltage is within spec for all devices. Of course it's best to hit the specification bang on but spec sheets wouldn't be publishing allowable ranges if the designers had not anticipated this sort of thing happening in the real world.
Perhaps with this device:
I could use half of it for the I2C bus and the other half for the UART. Yes the UART lines are unidirectional but who cares, it will still work. I found some interesting reading in these here:
So apparently I don't need pullups because the level translator has 10K pullups internally. But that presents a problem. The device I am interfacing with already has pullups on the bus, and they can not be disabled. This is fine for the 3.3V side, but the 5V side might be a problem.
Also, the data sheet says to pull OE to ground through a resistor, the value of which depends upon the current capability of the driver. But which side, and how would that be calculated?