beagleboneblack - BeagleBone Black (v4.14) 上的 PWM 芯片到引脚映射
问题描述
关于如何在较新版本的内核上为 PWM 配置 Beaglebone 的信息很少。我按照BeagleBone Black (v4.14)上 PWM 的说明与 PWM 芯片连接,但现在我需要弄清楚每个芯片连接到的引脚。
根据BeagleBone Black 文档中的 Cape Expansion Headers 图像,我知道:
EHRPWM0A
=P9_22
EHRPWM0B
=P9_21
EHRPWM1A
=P9_14
EHRPWM1B
=P9_16
EHRPWM2A
=P8_19
EHRPWM2B
=P8_13
ECAP0
=P9_42
当我运行ls -lh /sys/class/pwm
查看可用的 PWM 接口时,我看到:
lrwxrwxrwx 1 root pwm 0 May 6 14:31 pwmchip0 -> ../../devices/platform/ocp/48300000.epwmss/48300100.ecap/pwm/pwmchip0
lrwxrwxrwx 1 root pwm 0 May 6 14:31 pwmchip1 -> ../../devices/platform/ocp/48300000.epwmss/48300200.pwm/pwm/pwmchip1
lrwxrwxrwx 1 root pwm 0 May 6 14:31 pwmchip3 -> ../../devices/platform/ocp/48302000.epwmss/48302200.pwm/pwm/pwmchip3
lrwxrwxrwx 1 root pwm 0 May 6 14:31 pwmchip5 -> ../../devices/platform/ocp/48304000.epwmss/48304100.ecap/pwm/pwmchip5
lrwxrwxrwx 1 root pwm 0 May 6 14:31 pwmchip6 -> ../../devices/platform/ocp/48304000.epwmss/48304200.pwm/pwm/pwmchip6
当我将此与BeagleBone PWM 示例进行比较时,我发现可用的芯片和地址是不同的。该示例确实提到 PWM 可以更改,因此我需要找出新的映射。
如何确定 PWM 芯片到引脚的映射?我正在使用运行内核版本 4.14.37-ti-r46 的 TI AM335x BeagleBone Black Wireless。
解决方案
TI AM335x 和 AMIC110 Sitara 处理器技术参考手册的第 184 页给出了 PWM 芯片的内存映射:
PWM 子系统 0:
0x48300000
eCAP0
:0x48300100
ePWM0
:0x48300200
PWM 子系统 1:
0x48302000
eCAP1
:0x48302100
ePWM1
:0x48302200
PWM 子系统 2:
0x48304000
eCAP2
:0x48304100
ePWM2
:0x48304180
每个 PWM 接口的地址(在问题中发布)包含硬件地址。匹配这些地址给我们:
EHRPWM0
(ePWM0
) 是pwmchip1
EHRPWM1
(ePWM1
) 是pwmchip3
EHRPWM2
(ePWM2
) 是pwmchip6
ECAP0
(eCAP0
) 是pwmchip0
每个EHRPWM
芯片都有两个 PWM 输出通道,因此有A
和B
变体。它们通过回显 a0
或1
to导出export
。这些通道必须使用相同的频率,但可以具有不同的占空比。
因此,给定这个接口配置,EHRPWM0A
并且EHRPWM0B
位于:
root@beaglebone:~# cd /sys/class/pwm/pwmchip1
root@beaglebone:/sys/class/pwm/pwmchip1# ls
device export npwm power subsystem uevent unexport
要导出EHRPWM0A
( P9_22
):
root@beaglebone:/sys/class/pwm/pwmchip0# echo 0 > export
root@beaglebone:/sys/class/pwm/pwmchip0# ls
device export npwm power pwm-1:0 subsystem uevent unexport
要导出EHRPWM0B
( P9_21
):
root@beaglebone:/sys/class/pwm/pwmchip0# echo 1 > export
root@beaglebone:/sys/class/pwm/pwmchip0# ls
device export npwm power pwm-1:1 subsystem uevent unexport
注意:可用 PWM 接口和地址列表可能与问题中提供的列表不同,但此方法仍可用于确定最终引脚映射。
推荐阅读
- c# - 调用模型字段的 SELECT 时,使用实体框架的原始 SQL 查询不起作用
- python - 在 Jinja2 中添加 SelectQueryField Id 属性
- java - java.sql.SQL 异常。参数索引超出范围
- max - 如何根据一列的最大值和另一列的类别创建新列?
- mongodb - 如何生成 az 容器实例
- rust - 使用 Rust 在同级目录中写入文件
- c# - 在 C# 中,当使用泛型并使用约束时 T : new() new() 运算符可以有参数吗?
- linked-list - 面试题:找到INFINITE长链表的中间元素?
- graphql - 如何将多个游标传递给具有多个节点 ID 的单个 GitHub GraphQL 查询?
- css - 个人资料图片和输入在移动视图中消失