![]() |
How to determine GPIO numbers? - Printable Version +- PINE64 (https://forum.pine64.org) +-- Forum: PINE A64(+) (https://forum.pine64.org/forumdisplay.php?fid=4) +--- Forum: Pine A64 Hardware, Accessories and POT (https://forum.pine64.org/forumdisplay.php?fid=32) +---- Forum: Pi2, Euler and Exp GPIO Ports (https://forum.pine64.org/forumdisplay.php?fid=34) +---- Thread: How to determine GPIO numbers? (/showthread.php?tid=474) |
How to determine GPIO numbers? - joey - 03-22-2016 I've been experimenting with some of the GPIOs on my Pine, and I think I figured out how to talk to them using /sys/class/gpio. Unlike the Pi, which I am coming from, the GPIO numbers are different. I found another resource on the web that said in order to get the GPIO number for a different chip, you need to take the letter from the Pin number, convert it to a number, subtract 1, multiply by 32, then add the listed GPIO number. I thought that was strange, but figured I'd give it a try. For example, I wanted to write to the Pi 2 pin #16, which is GPIO 23. I did the folllowing: Using the document attached to this post, I determined the pin I want is PC13. P="Pin", we don't care about this. C=3rd letter in alphabet, but we're nerds, we count from zero, so C=2 (subtract 1) 13=GPIO 23 We just use the raw number, I can't math. So we take 2 and multiply it by 32, which seems to be a magic number. I'm sure it has significance to someone, but not a n00b like me. 2*32 = 64. Now we add 64+13 from the pin out document to get a final result of 77. Then, as root, I changed into /sys/class/gpio and enabled the GPIO: Code: cd /sys/class/gpio I just wanted to share this with everyone because it took me an hour or so of google searches until I figured this out. It may be documented somewhere else on this site, but so far I couldn't find anything. For reference, I'm doing all my experimentation in longsleep's 3/20 build of Ubuntu 16.04 "Xenial." RE: How to determine GPIO numbers? - patrickhwood - 03-23-2016 (03-22-2016, 09:38 PM)joey Wrote: I've been experimenting with some of the GPIOs on my Pine, and I think I figured out how to talk to them using /sys/class/gpio. Unlike the Pi, which I am coming from, the GPIO numbers are different. I found another resource on the web that said in order to get the GPIO number for a different chip, you need to take the letter from the Pin number, convert it to a number, subtract 1, multiply by 32, then add the listed GPIO number. I thought that was strange, but figured I'd give it a try. For example, I wanted to write to the Pi 2 pin #16, which is GPIO 23. I did the folllowing: Just an fyi, the 32 comes from the fact that gpio pins are grouped into banks of 32 pins. So pins in bank 0 are numbered 0 to 31, pins in bank 1 32 to 63, and so on. RE: How to determine GPIO numbers? - joey - 03-23-2016 (03-23-2016, 03:44 PM)patrickhwood Wrote: Just an fyi, the 32 comes from the fact that gpio pins are grouped into banks of 32 pins. So pins in bank 0 are numbered 0 to 31, pins in bank 1 32 to 63, and so on. Thanks Patrick. That makes perfect sense. RE: How to determine GPIO numbers? - Thargoid - 07-24-2016 (03-23-2016, 04:39 PM)joey Wrote:(03-23-2016, 03:44 PM)patrickhwood Wrote: Just an fyi, the 32 comes from the fact that gpio pins are grouped into banks of 32 pins. So pins in bank 0 are numbered 0 to 31, pins in bank 1 32 to 63, and so on. Hi So what am I doing wrong? I don't have /sys/class/gpio - i have class but no gpio however the pi2 pins seems to be live anyway, i can get an led to light running off the 5V and GND pins whenever the pine is running. Is this a quirk for the android setup? Am I going to have to install linux for the first time in my life? |