0
\$\begingroup\$

I want to use a bunch of SN754410 chips to control some electromagnetic valves. MCU is ATmega64A running at 3.3V. I'll be using 5V for powering SN754410 (VCC1). According to the datasheets low-level output voltage for 3V operation of AVR chip is 0.6V at max and high-level output voltage is 2.2V at least. At the same time low-level input voltage for SN754410 is 0.8 at max and high-level input voltage is 2.0V at least so I should be on safe side using these voltages (datasheet of SN754410 also confirms OK for 3.3V CMOS logic). The only thing I can't understand is the following quote on page 8:

however open or high impedance input voltage can approach VCC1 voltage.

What does that mean? How input of SN754410 can produce voltage? Is it safe to use AVR@3.3 + SN@5 together? May be it's better to use some kind of level shifters instead...

UPD 1 By accident I've powered SN754410 with 3.3V input (the same rail used by AVR) and it seems like the chip works fine. But it feels that I shouldn't rely on that mode despite of my personal case and a bunch of another posted on the Web...

\$\endgroup\$
2
\$\begingroup\$

It means that if an input is not driven high or low by an MCU output, the pin has internal structure to pull the input weakly to VCC so it will be at high logic level.

This will happen when the MCU is in reset and before IO pin is configured to an output. Or a bug in the code sets the pin accidentally as input.

As the datasheet says, it is safe to connect this directly to an MCU output. The current out from the weak pulll up is so little that MCU can handle it. To be on the safe side, it might be a good idea to put a pull-down resistor at the pin, to keep it low while the MCU is booting or being programmed. It will also have enough impedance to prevent the MCU output to be pulled up beyond supply voltage so the voltage will not get clamped via MCU protection diodes.

\$\endgroup\$
3
  • \$\begingroup\$ Ok, got it. What will be a good value for pull-down R? I proceed from the following considerations: a) AVR output is low, max. 0.6V and with 10k resistor we'll have 60 uA draw per pin; b) AVR output is high, max is VCC (3.3V), and with 10k resistor we'll have about 300 uA current draw; c) AVR hasn't configured its pins, SN sources about 5V and we'll get ~500 uA of current. What is a guideline to the selection of pull-down resistor? Will 10k do the job? \$\endgroup\$ – Drobot Viktor May 21 at 21:48
  • \$\begingroup\$ Also what is the "leakage" current from/to AVR pin when it is floating (during reset/initialization)? Or the pin is simply in high impedance state? \$\endgroup\$ – Drobot Viktor May 21 at 21:55
  • 1
    \$\begingroup\$ There are many flaws in your calculations. AVR output low can go up to 0.6V when 10mA flows. With less current the voltage is lower. And an external pull down only helps the output go lower as it shares current with low side driver. Yes leakage is what happens in high impedance state, when the pin is floating. Basically you need to keep voltage below 0.8V TTL low level when max 10uA flows from the input, plus the max 1uA from AVR pin. A 10k pull-down should be more than enough. \$\endgroup\$ – Justme May 22 at 8:19
2
\$\begingroup\$

It’s my understanding that the inputs aren’t very high resistance, as FET inputs would be. With no load, they will pull up to 5 V with a very small current sourcing capability.

If the microcontroller pins are set to be outputs, it’s highly likely that they won’t be pulled above 3.3 V. At reset though, the microcontroller pins will be inputs and may pull above 3.3 V.

I’d suggest measuring by experiment whether this is acceptable (0.6 V above rail is typically allowed). If not, a high-value pull-down resistor to ground may be all that you need.

\$\endgroup\$
0

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.