Skip to main content
Graduate
October 30, 2025
Solved

GPIO input external pullup question

  • October 30, 2025
  • 3 replies
  • 361 views

Testing a board with STM32U5A5.

 

VDD is 3.3V

I have configured one GPIO as input with an external pullup to 3.3V through a 470k ohm resistor.
The input reads high, but when I measure the input with a scope, I read 2.2V on the input, which is below 0.7VDD which is guaranteed as V_IH, but above 0.5VDD+0.2 which is specified by design as V_IH.

Is 470k ohm too high of a pullup resistance?

    This topic has been closed for replies.
    Best answer by Danish1

    It sounds like you are using a x1 oscilloscope probe.

    These have 1 Megohm input impedance, so 1 MΩ to ground.

    Combined with 470k to +3.3V, I would expect about 2.2V on the pin.

    Remove the probe and the voltage will go back up to 3.3V (but you won't see it!)

    Many 'scope probes are switchable x1 / x10. If you switch it to x10 you should see perhaps 3.0 V (but might have to tell the 'scope that you're using x10, or scale what you see on the screen).

    Imho 470k is a little high for comfort, particularly if the track to the pin is fairly long, as it might pick up electrical interference. Where I have had to use high value pull-up resistors for extremely low-power operation where e.g. a toggle-switch might pull the pin low (perhaps 10 MΩ) I might add a 1nF or 10nF capacitor to ground to kill any electrical interference. It killed the speed of response but was acceptable for that job.

    3 replies

    Technical Moderator
    October 30, 2025

    Hello,

    Yes 470k is too high. It is may be seen as almost Hi-Z from the input side.

    The range between 4.7k to 47k is acceptable. But consider the power consumption. The lowest pull-up value the more the current consumption you get.

    Super User
    October 30, 2025

    470 kOhm should allow it to be pulled up. You may have something else going on there.

    What happens when you use the internal ~40 kOhm pullup on the pin?

    Explorer
    October 30, 2025

    > 470 kOhm should allow it to be pulled up. You may have something else going on there.

    I would agree. Without any load, this 470k resistor should safely pull it up to Vdd level.

    The 0.7V is what one would expect from a divider between this external 470k and an internal pull-down of about 50k.
    Seems you have pull-down enabled on this pin.

     

    TLin.5Author
    Graduate
    October 30, 2025

    I suppose the oscilloscope probe itself turned out to be a pulldown in this case...
    D'oh.

    Danish1Answer
    Graduate
    October 30, 2025

    It sounds like you are using a x1 oscilloscope probe.

    These have 1 Megohm input impedance, so 1 MΩ to ground.

    Combined with 470k to +3.3V, I would expect about 2.2V on the pin.

    Remove the probe and the voltage will go back up to 3.3V (but you won't see it!)

    Many 'scope probes are switchable x1 / x10. If you switch it to x10 you should see perhaps 3.0 V (but might have to tell the 'scope that you're using x10, or scale what you see on the screen).

    Imho 470k is a little high for comfort, particularly if the track to the pin is fairly long, as it might pick up electrical interference. Where I have had to use high value pull-up resistors for extremely low-power operation where e.g. a toggle-switch might pull the pin low (perhaps 10 MΩ) I might add a 1nF or 10nF capacitor to ground to kill any electrical interference. It killed the speed of response but was acceptable for that job.