Changes

User:Pau pajuelo

2,597 bytes removed, 18:55, 14 September 2012
m
How to use GPIOs (update it)
| Only for base0010<br>=B
|}
 
= How to use GPIOs (update it) =
 
== Overview ==
 
This How-To is meant to be a starting point for people to learn use GPIOs for IGEP devices as quickly and easily as possible. For this How-To I used [http://labs.isee.biz/index.php/IGEP_firmware_Yocto IGEP firmware Yocto]
 
There are more ways to use GPIOs, but this one is very simple.
 
== Feedback and Contributing ==
 
At any point, if you see a mistake you can contribute to this How-To.
 
== Requirements ==
 
For this How-to, I used:
* IGEPv2 Board
* [http://labs.isee.biz/images/6/69/Gpio_examplebeta1.tar.bz2 GPIO example]
 
== Configure IGEPv2==
By default, GPIO 156 (J990:20) and GPIO 157 (J990:22) are available, connect J990:20 and J990:22 with a cable.
 
== Example program ==
 
Example program contains some libraries to control GPIOs, libraries can do:
* Export and unexport GPIOs
* Set GPIO direction
* Set GPIO value
* Get GPIO value
* Configure hardware interrupts
 
Example program configures a GPIO to wait a hardware interrupt. Once the GPIO value change from 0 value to 1 value (rising), program gives you a message.
 
=== Compile example program ===
[http://labs.isee.biz/index.php/How_to_setup_a_cross_compiler#Download.2FInstall_IGEP_SDK Download an Install] IGEP SDK if you don't have it.
 
First of all you need to initialize a suitable environment in the bash shell console inside your machine. <br> You can do this sourcing once the environment-setup script.
<pre>jdoe@ubuntu ~ $ source /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi </pre>
 
* Download [http://labs.isee.biz/images/6/69/Gpio_examplebeta1.tar.bz2 source code]
* Extract source code
* Build source code:
 
Cross toolchain tools are available into the built-in virtual machine Poky SDK. You only need open bash terminal prompt and write command:
<pre>jdoe@ubuntu ~/Desktop $ arm-poky-linux-gnueabi-gcc -o gpio_example gpio_examplebeta1.c</pre>
 
* Copy binary file to IGEP Board
 
== Execute program ==
Open a remote terminal and locate your program binary, execute program and pass like a parameter 157 value (GPIO 157):
<pre>root@igep00x0:~# ./gpio_example 157 </pre>
Result will be:
<pre>root@igep00x0:~# ./gpio_example 157
gpio/direction: No such file or directory
 
poll() GPIO 157 interrupt occurred
............. </pre>
 
== Generate interrupts ==
Open a second remote terminal and type:
<pre>cd /sys/class/gpio/
echo 156 > export
cd gpio156/
echo out > direction
echo 0 > value
echo 1 > value</pre>
== Result ==
At first remote terminal you should read a message similar like this:
<pre>poll() GPIO 157 interrupt occurred </pre>
4,199
edits