What are the values read by the GPIO when floating?

,

Hi

Can you help me with the internal pullup/down configuration for the 40-pin header on the carrier board? I am currently having the following issue in several jetson devices:

  1. 40-pin expansion header has nothing attached

  2. from python, using Jetson.GPIO, I setup all pins as inputs:

    import Jetson.GPIO as GPIO
    GPIO.setmode(GPIO.BOARD)
    inputs = [7,11,12,13,15,16,18,19,21,22,23,24,26,29,31,32,33,35,36,37,38,40,]
    GPIO.setup(inputs, GPIO.IN)
    for pin in inputs:
        GPIO.add_event_detect(
            channel=pin,
            edge=GPIO.BOTH,
            callback=lambda pin: print(f"pin {pin} moved to {GPIO.input(pin)}", flush=True)
        )
    
  3. cating the device tree in /sys/class/gpio/gpioXXX shows some values to 0 and others to 1:

    gpio248: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio249: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio250: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    gpio251: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    gpio256: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio257: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio344: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio351: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio352: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio353: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    gpio354: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio393: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio417: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio422: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio424: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio428: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio429: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio491: {"direction": "in", "value": "0", "edge": "both", "active_low": "0"}
    gpio492: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    gpio493: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    gpio494: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    gpio495: {"direction": "in", "value": "1", "edge": "both", "active_low": "0"}
    
  4. For example, both gpio353 (pin 38, I2S_SDIN) and gpio352 (pin 40, I2S_SDOUT) show as 1[MOhm] PD to GND in table Table 19. Jetson X avierExpansion Header Signal Details. However, one of them shows value=1 while the other shows value=0

Any help or guidance is appreciated

Extra info:

When defining all specified pins as output with value (1 or 0), some pins change their value when setting them as input afterwards. This is not consistent with PU/PD info in mentioned table. In particular:

  • Set all to GPIO.HIGH, then all as inputs → gpio428=pin 11 , gpio429=pin 36 , gpio257=pin 32 , gpio256=pin 16 , gpio249=pin 37 , and gpio248=pin 33 go back to 0. The rest remains in 1

  • Set all to GPIO.LOW, then all as inputs → gpio250=pin 31 , gpio251=pin 29 , gpio353=pin 38 go back to 1. The rest remains in 0

hello pwoolvett,

there’s default configurations, you might also access pinmux spreadsheets through download center for customization,
thanks

I’m not sure what/where to look for the defaults. I’m not trying to customize nor remap…

Related GPIO pull-down resistors - #9 by WasabiFan