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

BeagleBone Black(v4.14)的PWM芯片与引脚映射配置问询

BeagleBone Black 新版Linux内核下PWM芯片与引脚映射确认

刚好我对BeagleBone Black的PWM在新版内核下的配置有不少实践经验,结合你已经掌握的信息,给你梳理下完整的芯片与引脚映射确认方法:

已确认的PWM信号-引脚对应

根据官方Cape扩展头文档,你提到的这些对应是准确的:

  • EHRPWM0A → P9_22
  • EHRPWM0B → P9_21
  • EHRPWM1A → P9_14
  • EHRPWM1B → P9_16
  • EHRPWM2A → P8_19
  • EHRPWM2B → P8_13
  • ECAP0 → P9_42

通过sysfs与设备树确认完整映射

在新版Linux内核中,旧资料可能过时,直接通过系统的sysfs接口和设备树信息是最可靠的方式:

1. 查看系统注册的PWM芯片

首先执行命令列出所有已注册的PWM控制器:

ls -lh /sys/class/pwm/

输出会是类似pwmchip0 pwmchip1 pwmchip2的条目,每个pwmchipX对应一个硬件PWM控制器(通常EHRPWM0对应pwmchip0,EHRPWM1对应pwmchip1,以此类推,具体编号可能随内核版本微调)。

2. 深入查看单芯片的通道与引脚映射

以pwmchip0(对应EHRPWM0)为例,进入目录查看细节:

cd /sys/class/pwm/pwmchip0
# 查看该芯片支持的通道数
cat npwm
# 导出通道0(对应EHRPWM0A)
echo 0 > export
cd pwm0
# 查看引脚关联信息(部分内核版本会在of_node下保留设备树引脚配置)
cat of_node/pinmux

如果你的内核支持直接查看引脚属性,也可以尝试cat pin(部分版本可能没有这个文件)。

3. 通过设备树解析确认全局映射

如果想一次性获取所有PWM的引脚绑定,可以用dtc工具解析当前运行的设备树:

# 先安装dtc(如果没装的话)
sudo apt install device-tree-compiler
# 导出当前设备树为dts文件
dtc -I fs /proc/device-tree > bb-black-pwm.dts

然后在生成的bb-black-pwm.dts文件中搜索ehrpwm或ecap关键词,找到对应的节点,就能看到pinmux属性里绑定的具体引脚。

4. 验证引脚功能状态

配置好PWM后,还可以用gpioinfo工具(需要安装libgpiod)验证引脚是否处于PWM模式:

sudo apt install gpiod
gpioinfo | grep -E "P9_22|P9_21"

如果引脚已正确配置为PWM功能,输出会显示该引脚的功能为pwm。

另外要注意:新版内核中部分PWM引脚默认是禁用的,需要加载对应的设备树重叠(overlay)才能启用,如果你已经完成了PWM芯片的交互配置,这一步应该已经处理好了,但如果遇到引脚无输出,记得检查overlay是否正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:43:11