I am working on a project where I make a HAT for the Jetson Nano dev kit. (essentially a pi4 with GPU) I am powering the JN with my HAT, which provides 5V to pin 2&4 of the JN. I have a few buttons connected to the JN which are pulled up with a 10k resistor. (see picture) I have verified the workings of the switches without the JN attached, they are 3v3 when inactive, when switch is pressed they become 0v. I have also verified the working of the GPIO pins by connecting GND and 5V to it, and it read it correctly. I also tested if the pin is floating if not connected, and that seems to be the case as well.

Pulled up buttons on HAT-PCBConnected to JN with this connectorRouting of SW_Off

This is where the strange behavior starts: when I connect the HAT to the JN, and set pin 7/BCM4/GPIO126/SW_Off to INPUT, the inactive-voltage drops from 3v3 to 0.98V. This way the GPIO is useless, could anyone explain how this could happen? What other steps can I take to tackle this and find out how to resolve this? If it is useful at all, I included the board layout. I verified that R4 measured 3v3 on 'topside' (relative to both HAT and JN, their grounds differ 6mV), however I measured 0.98V on the other side. Any help greatly appreciated!

Edit: it might be good to mention that the top connector in the layout is the 40 pin connector, the middle stop is the resistor, and the bottom smd pad is the switch connector.

Edit: The resistance measured to ground (with power off) is 11.78K, and the resistance measured to +3.3V is 10K. This calculates to a voltage of 1.78 Volt, but measures as 1 V when the system is on. Any suggestions as where the resistance to ground could be coming from?

  • \$\begingroup\$ does pin7 work correctly on breadboard? \$\endgroup\$
    – Jasen
    Dec 10 '20 at 13:17
  • \$\begingroup\$ Yes, perfectly. It seems to be a flaw in my PCB design - When there is no power connected, I measure a resistance of exactly 10k from SW_Off to +3V3, and a resistance of 11.78k from SW_Off to GND. However, this does not explain the voltage, since 1v needs 4.2k resistance to GND for it to happen. Any other suggestions? \$\endgroup\$
    – Ananas_hoi
    Dec 10 '20 at 13:22
  • 1
    \$\begingroup\$ I have a somewhat similar problem connecting a button with a 10k pull-up resistor to jetson nano. It seems to boil down to the peculiarities of the in-out buffers on the board: it uses TXB0108RGYR buffers. My guess is that 10k is too much, since other working examples and a reference design on the Internet use 1k. Unfortunately, I didn't get a chance to try it yet. \$\endgroup\$
    – megasplash
    Dec 10 '20 at 13:41
  • \$\begingroup\$ That shines a lot of light on the situation, happy that I am not the only one to face this. I will try the 1.5k (as in the reference design) and see if that works. \$\endgroup\$
    – Ananas_hoi
    Dec 10 '20 at 13:58
  • 2
    \$\begingroup\$ @megasplash indeed, the 10k is too high of a pullup, the buffer seems to latch on to a value. With only an 10k resistor and plenty of time it would stay at 1v, on my breadboard. However, a 1k resistor would pull it up to 3v3 instantly. (no difference with 3v3 rail) Not sure where this behaviour is coming from. Guess this is off topic for this question, think I will post a new one as I am really curious why this occurs. \$\endgroup\$
    – Ananas_hoi
    Dec 10 '20 at 15:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.