0
\$\begingroup\$

I'm looking for help with how to read datasheets. For the below application, specifically what in the datasheets is it that would help me choose between these components? (datasheet for SN74LVC245A.)

NOTE: I am not looking for the technical answer for this application, I'm looking for how to relate the content of the datasheet to the problem

I was looking for the right component for fast bidirectional level shifting for 3.3V <> 5V. I've now decided on TXS0108E as the datasheet clearly describes my application and it's available in built modules, but I don't have enough experience to understand if the SN74LVC245A would also do the same job. The datasheet is somehow harder to read, but kind of implies that it can do 5V on one bus and 3.3V on the other.

Application is the 6502 data bus connection (5V) to Raspberry Pi Pico GPIO pins (3.3V), but I want to ensure I can run at ≥ 1 MHz clock on the 6502, and want to be able to support faster bus speeds later. I don't mind building this to run fast, even if it's overkill for now.

Looking for help to determine what it is in the '245 datasheet that would help me determine if it could do the same job as the TXS0108E for my application, and how I'd configure it for that job.

\$\endgroup\$

2 Answers 2

1
\$\begingroup\$

The 74LVC245 cannot (alone) do what you need. It has only one power supply, which means that its push-pull outputs on either side (when they are indeed enabled as outputs by the correct combination of \$\overline{OE}\$ and \$DIR\$ signals) can only produce one signal type, either 0V/3.3V or 0V/5V depending on \$V_{CC}\$.

So, even though as inputs, both sides of the bus will work perfectly well with 3.3V or 5V, if you set \$V_{CC}=5V\$, then as outputs, buses on both sides will produce 5V highs, or with \$V_{CC}=3.3V\$ both sides will produce 3.3V highs. In other words, it's not very useful as a bidirectional bus in your application (with different logic families on each side), because it is unable to switch between appropriate output levels depending on which side its outputs are currently driving.

The TXS0108E does not suffer from this, as it is designed with two independent supplies, intended to produce logic outputs on each side compatible with the logic family on that side.

In addition to that, the 74'245 is bidirectional, but only in the sense that direction is under control of the \$\overline{OE}\$ and \$DIR\$ signals. By contrast,the TXS0108E has very clever circuitry that automatically senses if something connected to a bus line (on either side) is trying to assert a logic level, and if so, automatically configure its own input/output line as a high-impedance input. In this way, there is (theoretically) no need to signal to the IC which side should be inputs, and which side should be outputs.

The only use for an 74LVC device I can think of, in a bidirectional application, which takes advantage of its 5V tolerant inputs, would pair it with a 74HCT as follows:

schematic

simulate this circuit – Schematic created using CircuitLab

The 74HCT244 is fine with 3.3V inputs, but produces 5V outputs by being powered from +5V. The 74LVC244 is fine with 5V inputs, but produces 3.3V outputs by being powered from +3.3V.

This setup is very fast, and will work with signals of many megahertz, since it does not employ open drains with "pull-up" elements anywhere.

Interestingly, since both HCT and LVC inputs are happy with either 3.3V or 5V logic, you can control the direction (DIR) signal from either side!


Response to comment

On page 5 of the 74LVC245 datasheet:

enter image description here

Maximum power supply voltage is +3.6V. This device must be powered from the 3.3V supply.

Maximum output voltage on any output is \$V_{CC}\$, which due to the previous constraint, will also be +3.3V. That means you can't drive any normal 5V CMOS logic inputs from the outputs that this device can produce.

\$\endgroup\$
3
  • \$\begingroup\$ As per question, looking for help to determine what it is in the '245 datasheet that would help me determine if it could do the same job as the TXS0108E for my application, i.e. how you determined that information from the datasheet, as I found it harder to understand than the TX one. \$\endgroup\$
    – mozboz
    Jul 10, 2023 at 11:43
  • \$\begingroup\$ @mozboz I have updated my answer with this information. \$\endgroup\$ Jul 10, 2023 at 12:32
  • \$\begingroup\$ Hmm, well I am using 74LVC245 as bidirectional 5V <-> 3.3V converter in a product that has been in production for some 10 years. No problems - the LVC245 was supplied with 3.3V and it is 5V tolerant. The 5V part in this case was a MCU that could handle 0.65*Vdd = 3.25V min input. A 0.05V margin is admittedly not ideal, but we probably tweaked the 3.3V supply slightly higher for that reason, say 3.4V or so. \$\endgroup\$
    – Lundin
    Dec 4, 2023 at 15:32
0
\$\begingroup\$

The TXS is a passive switch with integrated pull-up resistors. This allows auto-bidirectional translation, but also introduces restrictions, i.e., it does not work with external pull-down resistors, and requires enough drive strength from the other devices, and has speed limits.

The SN74LVC245A, like all LVC-family devices, has overvoltage-tolerant inputs, i.e., it accepts input signals that might have a higher voltage than its own VCC. But the SN74LVC245A always outputs signals that correspond to its own supply (see the VOH specification), so it cannot be used for level shifting in two directions.

Fast level shifters always require two supply voltages. There are many level translators that work like the '245 transceivers; this is usually indicated by a "T" in the name, for example, SN74LXC8T245.

\$\endgroup\$
5
  • \$\begingroup\$ As per question, looking for help to determine what it is in the '245 datasheet that would help me determine if it could do the same job as the TXS0108E for my application, i.e. how you determined that information from the datasheet, as I found it harder to understand than the TX one. \$\endgroup\$
    – mozboz
    Jul 10, 2023 at 11:07
  • 1
    \$\begingroup\$ Not correct, the TXS0108 is not a passive switch with pull-up resistors. It has highly sophisticated auto-sensing of which way to buffer the signals and rise-time accelerators, which for most hobbyist projects, causes more problems as they just really want passive level translation. \$\endgroup\$
    – Justme
    Jul 10, 2023 at 12:19
  • \$\begingroup\$ @Justme There are no buffers, and the rise-time accelerators do not help for DC signals. See the TXS app note. \$\endgroup\$
    – CL.
    Jul 10, 2023 at 12:25
  • \$\begingroup\$ @mozboz As I said, see the V_OH specification. \$\endgroup\$
    – CL.
    Jul 10, 2023 at 12:28
  • 1
    \$\begingroup\$ @CL. But the rise time accelerators are right there in every figure of your appnote. They need special environment (load capacitance, signal flight time, drive impedance, etc) to work, and for random purposes it works randomly. \$\endgroup\$
    – Justme
    Jul 10, 2023 at 12:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.