在具有 4.x 内核的 Beaglebone 上启用 ADC 输入

在具有 4.x 内核的 Beaglebone 上启用 ADC 输入

我在 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 输入。

相关内容