我在 Beaglebone Black 上运行 Ubuntu 16.04,如下来自 eLinux 站点的说明。我已经从 eMMC 安装并运行它。
但是,我很难让 ADC 输入引脚工作。我见过的例子(例如这个)建议运行echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
应该可以解决问题 - 但这对我来说不起作用,因为该文件不存在。
这在 14.04 上曾经有效,但现在在 16.04 上无效。我怎样才能使 ADC 输入正常工作?
答案1
设备树覆盖系统在 4.x 内核中发生了一些变化。根据这一页,现在的位置是/sys/devices/platform/bone_capemgr/slots
。我还发现此错误报告设备树覆盖的名称以前不是cape-bone-iio
,现在是BB-ADC
。
因此在 4.x 内核 Ubuntu 系统上运行的命令是:
sudo sh -c "echo 'BB-ADC' > /sys/devices/platform/bone_capemgr/slots"
然后您应该能够使用如下命令读取模拟值:
cat "/sys/bus/iio/devices/iio:device0/in_voltage0_raw"
为了使此设置重启后永久生效,您可以修改文件中的 uBoot 命令行选项/boot/uEnv.txt
。插入如下一行:
cape_enable=bone_capemgr.enable_partno=BB-ADC
请注意(我认为)文件中只能有一个“启用”行,如果您要在此处启用其他模块,请将它们放在一行上并用逗号分隔。
现在重新启动时 Beaglebone 将启用 ADC 输入。