I am having serious problems using multiple ADC channels in the latest
-bone26 kernel. When reading more than one ADC channel, you cannot read
more than 15 samples before getting an I/O error reading the AINx file
from sysfs (Resource temporarily unavailable). The read rate doesn't
matter, the problem appears to be related to switching between the
channels somehow.
Can anyone else verify this issue?
Who gets bug reports about the BeagleBone kernel patch set? This
doesn't quite seem appropriate for the OMAP kernel list, or is it?
DETAILS TO REPRODUCE:
I have a simplistic test script to reproduce this behavior, assuming you
have previously loaded the cape-bone-iio overlay:
#/bin/sh
while : ; do
for ADC in AIN4 AIN5 ; do
echo -n "$ADC: "
cat /sys/devices/ocp.*/helper.*/$ADC
sleep 1
done
done
When you run this, after every 15 reads of AIN4, the system throws an
I/O error and the 16th read of AIN4 fails. At this point, things seem
to reset and you can read another 15 values before the next error.
Example output:
...
AIN4: 589
AIN5: 817
AIN4: 586
AIN5: 811
AIN4: 588
AIN5: 816
AIN4: cat: /sys/devices/ocp.2/helper.12/AIN4: Resource temporarily
unavailable
AIN5: 997
AIN4: 597
AIN5: 1000
AIN4: 595
AIN5: 996
AIN4: 595
AIN5: 995
AIN4: 598
AIN5: 999
AIN4: 595
AIN5: 997
AIN4: 594
AIN5: 992
AIN4: 597
AIN5: 998
AIN4: 595
AIN5: 994
AIN4: 597
AIN5: 999
AIN4: 595
AIN5: 997
AIN4: 594
AIN5: 993
AIN4: 598
AIN5: 999
AIN4: 595
AIN5: 997
AIN4: 595
AIN5: 994
AIN4: 598
AIN5: 997
AIN4: cat: /sys/devices/ocp.2/helper.12/AIN4: Resource temporarily
unavailable
AIN5: 994
AIN4: 598
...
--
Charles Steinkuehler
cha...@steinkuehler.net