Pages

Thursday, May 02, 2013

gpio ulity learning notes


So far I have been blindly copying an example of the Wiring Pi gpio utiliy and know almost nothing of how to use it with other commands.  Now I am reading the manual page to learn more about it.


GPIO(21st October 2012)

NAME
       gpio - Command-line access to Raspberry Pi and PiFace GPIO

SYNOPSIS
       gpio -v

       gpio [ -g ] read/write/wb/pwm/clock/mode ...

       gpio [ -p ] read/write/wb ...

       gpio readall

       gpio unexportall/exports

       gpio export/edge/unexport ...

       gpio drive group value

       gpio pwm-bal/pwm-ms

       gpio pwmr range

       gpio load  i2c/spi ...

       gpio gbr channel

       gpio gbw channel value


DESCRIPTION
       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.

       It  can  also  control the IO's on the PiFace IO board and load the SPI
       and I2C kernel modules if required.

       Additionally, it can be used to set the exports in the  /sys/class/gpio
       system   directory   to   allow   subsequent   programs   to   use  the
       /sys/class/gpio interface without needing to be run as root.


OPTIONS
       -v     Output the current version including the board revision  of  the
              Raspberry Pi.


       -g     Use  the BCM_GPIO pins numbers rather than wiringPi pin numbers.
              NOTE: The BCM_GPIO pin numbers are always used with  the  export
              and edge commands.


       -p     Use  the  PiFace  interface board and its corresponding pin num??
              bers.


       read <pin>
              Read the digital value of the given pin and print 0 or 1 to rep??
              resent the respective logic levels.


       write <pin> <value>
              Write  the  given value (0 or 1) to the pin. You need to set the
              pin to output mode first.


       wb <value>
              Write the given byte to the 8 main GPIO pins. You can prefix  it
              with 0x to specify a hexadecimal number. You need to set pins to
              output mode first.


       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.


       pwm <pin> <value>
              Write a PWM value (0-1023) to the given pin. The pin needs to be
              put into PWM mode first.


       clock <pin> <frequency>
              Set  the  output frequency on the given pin. The pin needs to be
              put into clock mode first.


       mode <pin> <mode>
              Set a pin into input, output or pwm mode. Can also use the  lit??
              erals  up, down or tri to set the internal pull-up, pull-down or
              tristate (off) controls.


       unexportall
              Un-Export all the GPIO pins in the /sys/class/gpio directory.


       exports
              Print a list (if any) of all the exported GPIO  pins  and  their
              current values.


       export Export a GPIO pin in the /sys/class/gpio directory. Use like the
              mode command above however only in and out are supported at this
              time.  Note  that  the pin number is the BCM_GPIO number and not
              the wiringPi number.

              Once a GPIO pin has been exported, the gpio program changes  the
              ownership  of  the /sys/class/gpio/gpioX/value and if present in
              later kernels, the /sys/class/gpio/gpioX/edge  pseudo  files  to
              that  of  the user running the gpio 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.


       edge   This exports a GPIO pin in the  /sys/class/gpio  directory,  set
              the  direction  to  input  and  set the edge interrupt method to
              none, rising, falling or both.   Use  like  the  export  command
              above and note that BCM_GPIO 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.


       unexport
              Un-Export a GPIO pin in the /sys/class/gpio directory.


       drive  group value

              Change the pad driver value for the given pad group to the  sup??
              plied  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.


       pwm-bal/pwm-ms
              Change the PWM mode to  balanced  (the  default)  or  mark:space
              ratio (traditional)


       pwmr   Change the PWM range register. The default is 1024.


       load i2c [baudrate]
              This  loads  the  i2c or drivers into the kernel and changes the
              permissions on the associated /dev/ entries so that the  current
              user has access to them. Optionally it will set the I2C baudrate
              to that supplied (or as close as the Pi can manage) The  default
              speed is 100Kb/sec.


       load spi [buffer size in KB]
              This  loads the spi drivers into the kernel and changes the per??
              missions on the associated /dev/ entries  so  that  the  current
              user  has  access to them. Optionally it will set the SPI buffer
              size to that supplied. The default is 4KB.


       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.


       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.



WiringPi vs. BCM_GPIO Pin numbering
       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

       Note that "r1" and "r2" above refers to the  board  revision.  Normally
       wiringPi  detects the correct board revision with use for it's own num??
       bering scheme, but if you are using a Revision 2 board with some of the
       pins which change numbers between revisions you will need to alter your
       software.


FILES
       gpio                  executable


EXAMPLES
       gpio mode 4 output # Set pin 4 to output

       gpio -g mode 23 output # Set GPIO pin 23 to output  (same  as  WiringPi
       pin 4)

       gpio mode 1 pwm # Set pin 1 to PWM mode

       gpio pwm 1 512 # Set pin 1 to PWM value 512 - half brightness

       gpio export 17 out # Set GPIO Pin 17 to output

       gpio export 0 in # Set GPIO Pin 0 (SDA0) to input.

       gpio -g read 0 # Read GPIO Pin 0 (SDA0)


NOTES
       When  using  the export, edge or unexport commands, the pin numbers are
       always native BCM_GPIO numbers and never wiringPi pin numbers.


SEE ALSO
       WiringPi's home page

              https://projects.drogon.net/raspberry-pi/wiringpi/


AUTHOR
       Gordon Henderson


REPORTING BUGS
       Please report bugs to <projects@drogon.net>


COPYRIGHT
       Copyright (c) 2012 Gordon Henderson This  is  free  software;  see  the
       source  for copying conditions. There is NO warranty; not even for MER??
       CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


TRADEMARKS AND ACKNOWLEDGEMENTS
       Raspberry Pi is  a  trademark  of  the  Raspberry  Pi  Foundation.  See
       http://raspberrypi.org/ for full details.



              Command-Line access to Raspberry Pi and PGPIO(21stOOctober 2012)

.END

No comments:

Post a Comment