You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
261 lines
5.7 KiB
261 lines
5.7 KiB
.TH "GPIO" "21st October 2012" "Command-Line access to Raspberry Pi and PiFace GPIO"
|
|
|
|
.SH NAME
|
|
gpio \- Command-line access to Raspberry Pi and PiFace GPIO
|
|
|
|
.SH SYNOPSIS
|
|
.B gpio
|
|
.B \-v
|
|
.PP
|
|
.B gpio
|
|
.B [ \-g ]
|
|
.B read/write/pwm/mode ...
|
|
.PP
|
|
.B gpio
|
|
.B [ \-p ]
|
|
.B read/write/mode
|
|
.B ...
|
|
.PP
|
|
.B gpio
|
|
.B readall
|
|
.PP
|
|
.B gpio
|
|
.B unexportall/exports
|
|
.PP
|
|
.B gpio
|
|
.B export/edge/unexport
|
|
.B ...
|
|
.PP
|
|
.B gpio
|
|
.B drive
|
|
group value
|
|
.PP
|
|
.B gpio
|
|
.B pwm-bal/pwm-ms
|
|
.PP
|
|
.B gpio
|
|
.B pwmr
|
|
range
|
|
.PP
|
|
.B gpio
|
|
.B load \ i2c/spi
|
|
.PP
|
|
.B gpio
|
|
.B gbr
|
|
channel
|
|
.PP
|
|
.B gpio
|
|
.B gbw
|
|
channel value
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.B GPIO
|
|
is a swiss army knife of a command line tool to allow the user easy
|
|
access to the GPIO pins on the Raspberry Pi and the SPI A/D and D/A
|
|
converters on the Gertboard. It's designed for simple testing and
|
|
diagnostic purposes, but can be used in shell scripts for general if
|
|
somewhat slow control of the GPIO pins.
|
|
|
|
Additionally, it can be used to set the exports in the \fI/sys/class/gpio\fR
|
|
system directory to allow subsequent programs to use the \fR/sys/class/gpio\fR
|
|
interface without needing to be run as root.
|
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
|
.B \-v
|
|
Output the current version including the board revision of the Raspberry Pi.
|
|
|
|
.TP
|
|
.B \-g
|
|
Use the BCM_GPIO pins numbers rather than wiringPi pin numbers.
|
|
|
|
.TP
|
|
.B \-p
|
|
Use the PiFace interface board and its corresponding pin numbers.
|
|
|
|
.TP
|
|
.B read <pin>
|
|
Read the digital value of the given pin and print 0 or 1 to represent the
|
|
respective logic levels.
|
|
|
|
.TP
|
|
.B write <pin> <value>
|
|
Write the given value (0 or 1) to the pin.
|
|
|
|
.TP
|
|
.B readall
|
|
Output a table of all GPIO pins values. The values represent the actual values read
|
|
if the pin is in input mode, or the last value written if the pin is in output
|
|
mode.
|
|
|
|
.TP
|
|
.B pwm <pin> <value>
|
|
Write a PWM value (0-1023) to the given pin.
|
|
|
|
.TP
|
|
.B mode <pin> <mode>
|
|
Set a pin into \fIinput\fR, \fIoutput\fR or \fIpwm\fR mode. Can also
|
|
use the literals \fIup\fR, \fIdown\fR or \fItri\fR to set the internal
|
|
pull-up, pull-down or tristate (off) controls.
|
|
|
|
.TP
|
|
.B unexportall
|
|
Un-Export all the GPIO pins in the /sys/class/gpio directory.
|
|
|
|
.TP
|
|
.B exports
|
|
Print a list (if any) of all the exported GPIO pins and their current values.
|
|
|
|
.TP
|
|
.B export
|
|
Export a GPIO pin in the \fI/sys/class/gpio\fR directory. Use like the
|
|
mode command above however only \fIin\fR and \fIout\fR are supported at
|
|
this time. Note that the pin number is the \fBBCM_GPIO\fR number and
|
|
not the wiringPi number.
|
|
|
|
Once a GPIO pin has been exported, the \fBgpio\fR program changes the
|
|
ownership of the \fI/sys/class/gpio/gpioX/value\fR and if present in
|
|
later kernels, the \fI/sys/class/gpio/gpioX/edge\fR pseudo files to
|
|
that of the user running the \fBgpio\fR program. This means that you
|
|
can have a small script of gpio exports to setup the gpio pins as your
|
|
program requires without the need to run anything as root, or with the
|
|
sudo command.
|
|
|
|
.TP
|
|
.B edge
|
|
This exports a GPIO pin in the \fI/sys/class/gpio\fR directory, set
|
|
the direction to input and set the edge interrupt method to \fInone\fR,
|
|
\fIrising\fR, \fIfalling\fR or \fIboth\fR. Use like the export command
|
|
above and note that \fBBCM_GPIO\fR pin number is used not not wiringPi pin
|
|
numbering.
|
|
|
|
Like the export commands above, ownership is set to that of the
|
|
calling user, allowing subsequent access from user programs without
|
|
requiring root/sudo.
|
|
|
|
.TP
|
|
.B unexport
|
|
Un-Export a GPIO pin in the /sys/class/gpio directory.
|
|
|
|
.TP
|
|
.B drive
|
|
group value
|
|
|
|
Change the pad driver value for the given pad group to the supplied drive
|
|
value. Group is 0, 1 or 2 and value is 0-7. Do not use unless you are
|
|
absolutely sure you know what you're doing.
|
|
|
|
.TP
|
|
.B pwm-bal/pwm-ms
|
|
Change the PWM mode to balanced (the default) or mark:space ratio (traditional)
|
|
|
|
.TP
|
|
.B pwmr
|
|
Change the PWM range register. The default is 1024.
|
|
|
|
.TP
|
|
.B load i2c/spi
|
|
This loads the i2c or the spi drivers into the system and changes the permissions on
|
|
the associated /dev/ entries so that the current user has access to them.
|
|
|
|
.TP
|
|
.B gbr
|
|
channel
|
|
|
|
This reads the analog to digital converter on the Gertboard on the given
|
|
channel. The board jumpers need to be in-place to do this operation.
|
|
|
|
.TP
|
|
.B gbw
|
|
channel value
|
|
|
|
This writes the supplied value to the output channel on the Gertboards
|
|
SPI digital to analogue converter.
|
|
The board jumpers need to be in-place to do this operation.
|
|
|
|
|
|
.SH "WiringPi vs. GPIO Pin numbering"
|
|
|
|
.PP
|
|
.TS
|
|
r r r l.
|
|
WiringPi GPIO-r1 GPIO-r2 Function
|
|
_
|
|
0 17 17
|
|
1 18 18 (PWM)
|
|
2 21 27
|
|
3 22 22
|
|
4 23 23
|
|
5 24 24
|
|
6 25 25
|
|
7 4 4
|
|
8 0 2 I2C: SDA0
|
|
9 1 3 I2C: SCL0
|
|
10 8 8 SPI: CE0
|
|
11 7 7 SPI: CE1
|
|
12 10 10 SPI: MOSI
|
|
13 9 9 SPI: MISO
|
|
14 11 11 SPI: SCLK
|
|
15 14 14 TxD
|
|
16 15 16 RxD
|
|
17 - 28
|
|
18 - 29
|
|
19 - 30
|
|
20 - 31
|
|
.TE
|
|
|
|
.SH FILES
|
|
|
|
.TP 2.2i
|
|
.I gpio
|
|
executable
|
|
|
|
.SH EXAMPLES
|
|
.TP 2.2i
|
|
gpio mode 4 output # Set pin 4 to output
|
|
.PP
|
|
gpio -g mode 23 output # Set GPIO pin 23 to output (same as WiringPi pin 4)
|
|
.PP
|
|
gpio mode 1 pwm # Set pin 1 to PWM mode
|
|
.PP
|
|
gpio pwm 1 512 # Set pin 1 to PWM value 512 - half brightness
|
|
.PP
|
|
gpio export 17 out # Set GPIO Pin 17 to output
|
|
.PP
|
|
gpio export 0 in # Set GPIO Pin 0 (SDA0) to input.
|
|
.PP
|
|
gpio -g read 0 # Read GPIO Pin 0 (SDA0)
|
|
|
|
.SH "NOTES"
|
|
|
|
When using the \fIexport\fR, \fIedge\fR or \fIunexport\fR commands, the
|
|
pin numbers are \fBalways\fR native BCM_GPIO numbers and never wiringPi
|
|
pin numbers.
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.LP
|
|
WiringPi's home page
|
|
.IP
|
|
https://projects.drogon.net/raspberry-pi/wiringpi/
|
|
|
|
.SH AUTHOR
|
|
|
|
Gordon Henderson
|
|
|
|
.SH "REPORTING BUGS"
|
|
|
|
Please report bugs to <projects@drogon.net>
|
|
|
|
.SH COPYRIGHT
|
|
|
|
Copyright (c) 2012 Gordon Henderson
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
.SH TRADEMARKS AND ACKNOWLEDGEMENTS
|
|
|
|
Raspberry Pi is a trademark of the Raspberry Pi Foundation.
|