We are using the ADIS16209/PCBZ in a Beaglebone Black system running Ubuntu 13.04, using the SPI interface.
We have done a preliminary test using the Adafruit Python libraries and the sensor was working. But for our application we need to use the IIO Linux driver available in the following page:
Every documentation that we have read so far refers that "Each and every IIO device, ... has a device folder under /sys/bus/iio/devices/iio:deviceX."
Our problem is that we don't have such device folder in our system. We suppose that some additional instruction is required to say that a IIO device is connected to SPI0, but couldn't figure out what. I guess our problem is with declaring the SPI slave devices. I realize that we should run __init board_init() according to the instructions on the above mentioned IIO driver web page, but I don't know where and how I should run that code.
If it is available please recommend some web page where I can find code snippets for reading from the sensor with IIO.
I give some more details below that may be of interest for understanding our issue.
ADDITIONAL INFO:
1) connection of the iSensor ADIS16209 (port SPI0 of Beaglebone Black, /dev/spidev1.0)
ADIS conector J1 |
BBB P9 |
2 (SCLK) |
22 (spi0_clk) |
3 (/CS) |
17 (spi0_cs0) |
4 (DOUT) |
21 (spi0_d0) |
6 (DIN) |
18 (spi0_d1) |
10, 11 or 12 (VDD) |
3 ou 4 (DC_3.3V) |
7 or 8 (GND) |
1 ou 2 (GND) |
2) to manually load the device tree overlay
# cat /lib/firmware/BB-SPIDEV0-00A0.dtbo > /sys/devices/bone_capemgr.9/slots
result: the devices /dev/spidev1.0 and /dev/spidev1.1 are automatically created.
To install in the boot, the following line was added to "/boot/uboot/uEnv.txt":
optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN capemgr.enable_partno=BB-SPIDEV0
The first part deactivates HDMI, and the second loads the device tree overlay.
3) The content of /etc/modules is as follows:
# /etc/modules: kernel modules to load at boot time.
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
iio_hwmon
ring_sw
adis_lib
adis16209