You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeagleBone Black读取ADC in_voltageX_raw报Resource temporarily unavailable

解决方案

1. 确认并修正ADC引脚复用状态

你当前开启了Cape Universal功能,首先检查AIN5对应物理引脚P9_36的复用模式:

show-pins | grep P9_36

正常启用ADC功能时输出的复用模式应为Mode 7,如果模式不符,执行命令切换:

config-pin P9_36 ain

切换完成后再次尝试读取ADC数值:

cat /sys/bus/iio/devices/iio:device0/in_voltage5_raw

2. 排查PRU资源冲突

你使用的5.4.38-ti内核版本存在已知的PRU与ADC总线资源抢占问题,可临时禁用PRU overlay测试:

  1. 编辑/boot/uEnv.txt文件,找到uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo行,在开头添加#注释该行
  2. 保存文件后重启开发板,重启后再次尝试读取ADC数值

3. 升级设备树overlay包

你当前安装的bb-cape-overlays版本存在ADC兼容缺陷,执行命令升级:

sudo apt update
sudo apt install --only-upgrade bb-cape-overlays

升级完成后重启设备再测试读取。

4. 替代读取方案

如果上述操作均无效,可通过libiio工具绕过sysfs资源锁读取数值:
首先安装工具包:

sudo apt install libiio-utils

执行读取命令:

iio_readdev -n 127.0.0.1 iio:device0 in_voltage5_raw

内容的提问来源于stack exchange,提问作者jgnoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 05:45:00