I am trying to use both the A/D and the high-speed PRU direct I/O. I have the A/D working using Adafruit_BBIO.ADC and separately, I can write directly using the PRU based on the TI examples and using a Device Tree Overlay, but have not been successful using them concurrently yet. By using cat /sys/devices/bone_capemgr.9/slots, I found that the commands in python of
import Adafruit_BBBIO.ADC as ADC
setup()
loaded the cape-bone-iio-00A0.dtbo overlay
as
/lib/firmware> cat $SLOTS
0: 54:PF—
1: 55:PF—
2: 56:PF—
3: 57:PF—
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
9: ff:P-O-L Override Board Name,00A0,Override Manuf,cape-bone-iio
I then attempted to remove the overlay by
/lib/firmware> sudo sh -c “echo -9 > $SLOTS”
/lib/firmware> cat $SLOTS
but the terminal then freezes and never comes back. In another terminal window, using ps aux | grep cat
I can see the process, but a kill -9 will not get rid of it. In the other terminal window, I also attempted the
cat $SLOTS, and it froze up, as well. The only way of getting it back is rebooting the system. In addition
the Adafruit_BBBIO.ADC does not have cleanup function. This behaviour does not seem correct to me.
I also tried removing the overlay that set up the PRU output pins, and that did seem to work correctly.
Any ideas? Thanks.
Bit Pusher