10
\$\begingroup\$

In digital logic, there's a state called "1" which is a defined high voltage, for example 2.7 V - 5.0 V. To achieve it we must connect it to VCC.

And "0" which is a low voltage, for example 0 V until 0.8 V. To achieve it we must connect it to GND.

And there's another state called "don't care", or "high impedance" or "invalid state" in which those wires are not connected neither to GND nor VCC. It's called floating wire.

The problem is, how do I check of the current state of the wire is floating?

It's easy to check the logic state of a wire using voltmeter. If it displays 2.7 - 5 volt, we can say 1. It depends on the logic level.

But what if the voltmeter displays 0 volt? There are two possibilities: that the wire's logic is 0, or it's a floating wire.

So what tool/method should I use to check if the wire is floating?

\$\endgroup\$
6
  • 23
    \$\begingroup\$ don't care, high impedance and invalid state are not all the same ... the only one that means disconnected is the high impedance \$\endgroup\$
    – jsotola
    Commented Jul 10, 2021 at 2:25
  • \$\begingroup\$ Is this for self test? If not why? \$\endgroup\$
    – D.A.S.
    Commented Jul 10, 2021 at 2:46
  • \$\begingroup\$ If you find any conductor on Earth, anywhere, then it is floating..... from the perspective of any point you choose on Mars. (It's all just a matter of perspective.) But if you are locked into some local, provincial perspective, then I suppose the best thing to try is find two voltage rails, put a 10 k resistor across your voltmeter leads (alligator clips are okay), then measure the voltage between the pin and one rail and the pin and the other rail. If it reads close to 0 V both times then it is floating. \$\endgroup\$
    – jonk
    Commented Jul 10, 2021 at 3:47
  • 7
    \$\begingroup\$ "It's easy to check the logic state of wire using volt meter. If it display 2.7 -5 volt we can say 1." - not true. A floating net can be any voltage. \$\endgroup\$
    – Matt
    Commented Jul 10, 2021 at 4:01
  • 1
    \$\begingroup\$ @Frog interesting, hadn't thought of that before but it makes sense. I work in asic design so meters are an abstract concept that never really becomes important. But I guess you could also connect the "gnd" side of your meter to power instead and then you'd measure 0 volts at logic 1 because of the pull up through the meter. \$\endgroup\$
    – Matt
    Commented Jul 10, 2021 at 12:14

3 Answers 3

23
\$\begingroup\$

So what tool/method should i use to check if wire is floatinf?

  1. Measure the voltage when the pin is pulled to Vcc by a high value resistor, like 100K.

  2. Make the same measurement when the pin is pulled to GND by a high value resistor.

If the pin has an asserted logic level it should read that level in both cases.

If the pin is floating the voltage at the pin should measure HIGH for measurement #1 and LOW for measurement #2.

If it's configured as an input pin with an internal pull-up or pull-down resistor you will get an intermediate voltage determined by the relative value of your resistor and the pull-up/down.

\$\endgroup\$
4
  • \$\begingroup\$ I'm sorry i don't understand what you mean with measurement #1, and #2. \$\endgroup\$ Commented Jul 10, 2021 at 11:32
  • \$\begingroup\$ Measurement #1 is the first measurement ErikR suggested. \$\endgroup\$ Commented Jul 10, 2021 at 15:07
  • \$\begingroup\$ @MuhammadIkhwanPerwira Measure twice, in different configurations. \$\endgroup\$
    – Mast
    Commented Jul 11, 2021 at 13:38
  • \$\begingroup\$ @MuhammadIkhwanPerwira: The numbers are from the numbered list, 1. and 2. \$\endgroup\$ Commented Jul 11, 2021 at 18:10
9
\$\begingroup\$

You can measure this with a voltmeter only, without adding any extra resistors. The voltmeter itself typically has an impedance of about 10 megaohm.

  1. Measure between GND and pin
  2. Measure between VCC and pin

If both readings are 0, the pin is floating. If the pin is low, the second reading would be equal to VCC.

\$\endgroup\$
3
  • 2
    \$\begingroup\$ This test must be done without touching the tested input with the hand (Otherwise the hand make a shortcut in respect to 10 megaohm) \$\endgroup\$
    – andre314
    Commented Jul 10, 2021 at 14:20
  • 1
    \$\begingroup\$ @andre314: That's could be desirable in this case, using your body as a pullup / pulldown with less impedance than your meter but still pretty high compared to a real pull-up resistor like 1k or 10k inside a chip. As long as you're touching across the meter, rather than touching ground and the pin. \$\endgroup\$ Commented Jul 11, 2021 at 18:14
  • \$\begingroup\$ If both readings are 0, the pin is floating. In my case if the load resistance is 100M in voltmeter, then it will be equal to VCC/2 for both readings. Therefore it's not always 0. However I can imply that if both readings are same then it's floating logic, else then asserted logic. Note: I proved it in Proteus Simulator. \$\endgroup\$ Commented Sep 25, 2023 at 15:55
8
\$\begingroup\$

The method described by @ErikR works fine but requires two steps. These can be combined into a single check by connecting the input to a 50%-50% voltage divider between Vcc and ground. Again, something like 100K and 100 K:

schematic

simulate this circuit – Schematic created using CircuitLab

If the input is driven high, the voltage will be near Vcc. If the input is driven low, the voltage will be zero. If floating, the voltage will be near Vcc/2.

The disadvantage of this method is that it requires an analog input where as the 2-step method can be done with a digital input. In fact, this kind of voltage divider must never be connected to a digital input; depending on the logic family, sustained input at an intermediate voltage can damage the chip.

\$\endgroup\$

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.