Why does pin 5 has 1,5 volts when unexported or exported as input?

I have this kind of amplifier circuits connected to pin 5 (Linux GPIO 3) and pin 7 (Linux GPIO 4) on my Up Board.

The circuit in pin 7 works as expected. It acts like a floating input during boot and I can set the output state at boot time using the jumper.

Pin 5 however stays at 1,5 volts during boot and it pulls the voltage at the transistor base to 0,7 volts regardless of the jumper setting. Voltage stays at 1,5 volts even after the pin is exported. When I configure it as output I can write it high or low and the voltages are 0 volts and 3,3 volts as expected. I have already tried to disable everything I2C related from BIOS. How can I make this pin act as a floating input?



  • Tapsa
    Tapsa New Member Posts: 3

    Up Board version is UP-CHT01-A20-0432-A10 and kernel is 4.14.216-yocto-standard.

  • Tapsa
    Tapsa New Member Posts: 3
    edited July 2021

    I did some measurements with multimeter.
    It seems that all I2C related pins (3, 5, 27, 28) can source 1,4 mA into short circuit even when they are configured as inputs from BIOS. Open circuit voltage is 3,3 V for each pin. It seems like these pins have internal 2,2 k pull-up resistors. Is this correct?

    I also found some more I2C related stuff under southbridge settings. I disabled them all and now my Up Board isn't booting anymore. :|

    I got it to boot again by removing the battery.

  • rogertsai(AAEON)
    rogertsai(AAEON) New Member Posts: 350 ✭✭✭

    Yes, UP using 2.2k pull-up resistor for I2C port (pin 3, 5, 27, 28).
    So, if you wanted to use I2C pin as a GPIO input, I will not recommend it. I would suggest that you use a dedicated GPIO pin instead of I2C port. e.g. HAT pin 16, 18, 22, 29, 31, 37…