关于如何在较新版本的内核上配置 Beaglebone 进行 PWM 的信息非常少。我按照以下指示进行操作BeagleBone Black (v4.14) 上的 PWM https://stackoverflow.com/questions/50203064/pwm-on-beaglebone-black-v4-14与 PWM 芯片连接,但现在我需要找出每个芯片连接的引脚。
基于 Cape 扩展标头图像BeagleBone Black 文档 http://beagleboard.org/support/bone101, 我知道:
-
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 示例 https://github.com/beagleboard/bb.org-overlays/blob/master/examples/cape-unversal-pwm.txt,我看到可用的芯片和地址不同。该示例确实提到 PWM 可以更改,因此我需要找出新的映射。
如何确定 PWM 芯片到引脚的映射?我使用的是运行内核版本 4.14.37-ti-r46 的 TI AM335x BeagleBone Black Wireless。
第 184 页TI AM335x 和 AMIC110 Sitara 处理器技术参考手册 http://www.ti.com/lit/ug/spruh73p/spruh73p.pdf给出 PWM 芯片的内存映射:
脉宽调制子系统 0:0x48300000
-
eCAP0
: 0x48300100
-
ePWM0
: 0x48300200
脉宽调制子系统 1:0x48302000
-
eCAP1
: 0x48302100
-
ePWM1
: 0x48302200
脉宽调制子系统2:0x48304000
-
eCAP2
: 0x48304100
-
ePWM2
: 0x48304180
每个 PWM 接口的地址(在问题中发布)包含硬件地址。匹配这些地址可以得出:
-
EHRPWM0
(ePWM0
) is pwmchip1
-
EHRPWM1
(ePWM1
) is pwmchip3
-
EHRPWM2
(ePWM2
) is pwmchip6
-
ECAP0
(eCAP0
) is pwmchip0
Each EHRPWM
芯片有两个PWM输出通道,因此A
and B
变种。它们是通过回显导出的0
or 1
to export
。这些通道必须使用相同的频率,但可以具有不同的占空比。
因此,给定此接口配置,EHRPWM0A
and 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 接口和地址的列表可能与问题中提供的列表不同,但此方法仍然可以确定最终的引脚映射。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)