1
\$\begingroup\$

Actually a lot simpler question than the title would suggest. I'm planning on using a SN74AHCT125 quad buffer as a logic-level converter from 3.3V to 5V. I only need two of the four inputs.

As per the function table, when \$\overline{OE}\$? input is high, the output is disabled. Presumably that just means tie both the \$\overline{OE}\$? pins for the unused inputs to VCC. However, another thing caught my eye in the data sheet:

To ensure the high-impedance state during power up or power down, \$\overline{OE}\$? should be tied to VCC through a pullup resistor; the minimum value of the resistor is determined by the current-sinking capability of the driver.

Does that only refer to if I was using another device to control the \$\overline{OE}\$? For instance, using a microcontroller which can only provide 10mA (for example) per pin? If that was the case, with a supply voltage of 3.3V, what value resistor would I want to use? Am I right in thinking it's just using Ohm's law, which would give a resistor value of 330\$\Omega\$ ?

\$\endgroup\$
1
\$\begingroup\$

Yes, that is only applicable if your have an external signal driving the OE. Simplest is to just tie the pin to VCC.
Good practice is also not to let any unused inputs float. Tie all inputs off high or low. I would use what ever is simplest in the PCB layout.

Am I right in thinking it's just using Ohm's law, which would give a resistor value of 330Ω

You don't need a resistor but if you do, you want the pull-up as light as possible to avoid unnecessary power consumption and high speed. The lower the pull-up resistor the higher the current and the slower the port will switch. Go for something like 10K.

Is there a reason why you are not using dedicated level converter? Also in many cases just a resistor divider will suffice.

\$\endgroup\$
  • \$\begingroup\$ A resistor divider will not raise the voltage from 3.3V to 5V \$\endgroup\$ – user28910 Dec 20 '17 at 22:21
  • \$\begingroup\$ I know, but I am taking into account that questions are not always precise so I have taken " from 3.3V to 5V" as wide as possible. Therefore I interpret it as "between 3.3V and 5V". \$\endgroup\$ – Oldfart Dec 20 '17 at 22:24
0
\$\begingroup\$

Practical values for pullup resistors could be anywhere in the 4.7k to 20k, even 50k. The value is not always very critical. Try one of those, that may do the job.

You are correct, the datasheet is talking about whatever will be driving that OE pin. Now, the driving pin has some maximum current sourcing/sinking capability—its datasheet should specify this value.

Say your driving pin can sink 10mA as a maximum, just like you said. Yes, your calculation is correct in terms of protecting that pin from burning out. If you go any lower than 330 ohms, you're exceeding the sinking current rating.

But in practice, you don't want to be sinking that much current through that pin, that is a maximum rating, not a recommended operating condition. Take for example the datasheet you have attached.

In page 4, it specifies a test current, called \$I_{OL}\$ of 50uA, this is the test current when the voltage is driven low by the internal logic. Ideally this voltage should be zero or very close, when driven low but in practice they tell you, it could sit at a maximum of 0.1V. They do the same test with \$I_{OL}\$ of 8mA, and notice that now maximum voltage that you could see, when driving the pin low, increases to 0.36V.

With that in mind, you may want to try a pullup resistor of \$R_p=\dfrac{3.3\text{V}-0\text{V}}{50\mu A}= 66\text{k}\Omega\$

The problem with decreasing the pullup resistor value, is that more current flows when the pin is driven low and the output voltage increases (as you see with the two test currents in the datasheet) and it could be high enough that it is not a logic 0 anymore. Even if you try the case when \$I_{OL}\$ is 8mA, for this case, the maximum specified output voltage is 0.36V, which is still a logic 0. The resistor value turns out to be 412 Ohms. So 10k, for example should work.

Those numbers given here do not apply to your case because I used the values provided in the buffer datasheet, not your driving Ic, which you said it is a microcontroller. But they do give you an idea of how to calculate the values of a pullup resistor for your specific situation.

There is an upper limit for the value of the pullup resistor, as well, and it has to do with the leakage current going into the pin when the internal transistor driving the pin is 'open'. But I think it isn't necessary to go there.

Of course, if your controller can drive the pin both high and low, you may not need a pullup resistor at all. Hope this helps.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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