03-23-2016, 03:44 PM
(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:
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
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+23 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:
After doing that, hurrah, my LED lit up. The anode (positive) of the LED is connected to the pin mentioned above, the cathode (negative) is connected to one of the pins labeled GND.Code:cd /sys/class/gpio
echo 77 > export
cd gpio77
echo "out" > direction
echo 1 > value
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."
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.