Hi Peter
If your use of gpio is the "switch a bit on, switch it off sometime
later" type,
then the linux kernel gpio support will probably do it for you:
eg from the shell control would be:
echo 1 > /sys/class/gpio/gpio100/value
We use that interface extensively with an ioc; we wrote a very thin
layer of device support that reads/writes single values from/to a
virtual file and fits it into an appropriate record. A small set of
abbreviations makes the db support palatable.
eg for BO record type, in the device support:
/** @file devBoAcqHost.cpp Device support entry for BO records
*
* Created on: May 3, 2012
* Author: pgm
* BO:
* INP = path to knob, write 0 or 1.
* specials:
* %g KNOB : /sys/class/gpio/KNOB/value
* eg %g gpio100
* %l KNOB : /sys/class/leds/KNOB/brightness {1|0}
* eg %l cpsc:1:green:idle
*/
in the db file:
record(bo, "${UUT}:PSU:RESET:${cid}") {
field(DTYP, "boAcqHost")
field(OUT, "@%g gpio${gpio_reset}")
field(DESC, "reset PSU ${cid}")
field(ZNAM, "OK")
field(ONAM, "ERR")
field(PINI, "YES")
}
record(bi, "${UUT}:SYS:exttrg2") {
field(DTYP, "biAcqHost")
field(INP, "@%g gpio22")
field(DESC, "front panel input WAVTRIG")
field(SCAN, "1 second")
}
I'd be very happy to send you a copy of the source if you're interested.
Cheers
Peter.
On 14/08/13 08:25, Florian Feldbauer wrote:
Hey Peter,
to access the GPIOs from EPICS you need to write a device support
module using the C-libraries.
Unfortunately there is no good documentation on this topic for
beginners that I know of...
I could provide you my device support for reading out DS18S20
Dallas-1-Wire Temperature sensors using the Pi as a starting point.
Best regards,
Florian
On 08/14/2013 02:09 AM, Peter Linardakis wrote:
Hello all...
We are exploring the idea of using Raspberry Pi for basic digital IO
tasks. Theidea is that we could avoid deploying other IOCs and
possibly wasting many other IOC ports. I have EPICS running on a
Raspberry Pi with a test record DB (soft records only) and it is
successfully communicating across the network. I know how to
directly access the GPIO pins while on the Pi (through C libraries
etc.),but I do not know the first thing about how to get to those
pins through EPICS.
Any advice or direction would be much appreciated.I am relatively
new to EPICS development but am experienced with with maintenance of
EPICS records and the like.
Regards
Peter
Dr PeterLinardakis
/Accelerator Research &Development Engineer/
*Nuclear Physics | Research School of Physics and Engineering*
*Australian National University*
e: [email protected]
p: (02) 6125 2862
--
----------------------------------------
| Dr. Florian Feldbauer |
| |
| Helmholtz-Institut Mainz / |
| Johannes Gutenberg-Universität Mainz |
| Johann-Joachim-Becher-Weg 45 |
| D-55128 Mainz |
| |
| Office: 01/102 |
| Phone: (+49)6131 / 39-27373 |
----------------------------------------