Panda
http://pandaboard.org/content/resources/getting-started
http://pandaboard.org/content/new-pandaboard-es-arms-open-source-mobile-developers-ti%E2%80%99s-omap4460-processor
http://pandaboard.org/content/resources/references
http://omappedia.org/wiki/PandaBoard_FAQ
http://en.wikipedia.org/wiki/BeagleBoard
http://www.liquidware.com/shop/show/BB-XM/BeagleBoard+XM
http://www.ozbotz.org/a-simplereal-time-application-on-pandaboard/
A Simple Realtime Application on the PandaBoard:
A 10 KHz Square Wave
This post contains code that creates a 10 KHz square wave on one of the GPIO pins of a PandaBoard running the real-time Linux extensions. It is a proof of concept showing that the PandaBoard is suitable for real time applications.
The code used in this example is based on the swave.c program from the kernel.org RT wiki, which is located here:https://rt.wiki.kernel.org/articles/s/q/u/Squarewave-example.html.
For instructions on how to run realtime Linux on your PandaBoard, refer to the tutorial that I posted on the Homebrew Robotics Club wiki titled “Installing Ubuntu With Real Time Patches On The PandaBoard.”
Code
The following code is all that you need to create the square wave. Save the code in a file called swave_panda.c.
Compile the program with the following command:
gcc -o swave_panda swave_panda.c -lrt
To run the program with a real time priority of 90, enter the following command:
sudo ./swave_panda 90
Hardware Setup
To view the output on a oscilloscope, connect the probe to pin 18 on J6. You can find ground on pins 27 and 28 of J3.
Results
After you run the program and connect your oscilloscope probe to pin 18, you should see a 10 KHz square wave, as shown in the following image.
The square wave is solid even when the system is under moderate load. Under heavy load, I can see a jitter of a few microseconds. I have yet to determine from where the jitter originates. I don’t know if there is some uncertainty in the kernel or if there is a uncertain amount of delay in the userspace GPIO drivers. None of my robots operate in conditions that are dangerous to humans or property, so I will probably be able to tolerate an uncertainty of a few microseconds. If you are designing a surgical robot, for example, a few microseconds of uncertainty might be too much. I will be investigating if this little bit of observed jitter can be reduced or eliminated.
More Informaion
I am interested in creating more realtime applications for the PandaBoard. If you have any experience creating such programs and you have any advice to offer or you would like to exchange ideas, please send me an email or add a comment to this post.
Andrés