【问题标题】:PWM on BeagleBone Black (v4.14)BeagleBone Black 上的 PWM (v4.14)
【发布时间】:2018-05-06 18:17:22
【问题描述】:

关于如何在较新版本的内核上为 PWM 配置 Beaglebone 的信息很少。 Past instructions 通过槽文件与 PWM 接口已过时,因为槽文件和 bone_capemgr 是内核的disabled in v4.14

如何使用新内核为 BeagleBone Black 配置 PWM?我正在使用运行内核版本 4.14.37-ti-r46 的 TI AM335x BeagleBone Black Wireless。

【问题讨论】:

    标签: beagleboneblack pwm


    【解决方案1】:

    如问题中所述,slots 文件和 bone_capemgr 是内核的disabled in v4.14,支持U-Boot overlays

    response by the BeagleBone kernel developer 中所述,U-Boot 现在处理覆盖并自动启用 cape_enable=bone_capemgr.enable_partno=univ-all,BB-ADC,BB-PWM0,BB-PWM1,BB-PWM2 的等效项:

    所有 5 个都已启用,图片现已发货 下:

    https://beagleboard.org/latest-images

    对于 pwm,请务必参考 https://github.com/beagleboard/bb.org-overlays/blob/master/examples/cape-unversal-pwm.txt 和 config-pin pwm ..

    因此,PWM接口已经配置好了!现在只需导出并使用 PWM。例如访问pwm0:

    root@beaglebone:~# cd /sys/class/pwm/pwmchip0
    root@beaglebone:/sys/class/pwm/pwmchip0# ls
    device  export  npwm  power  subsystem  uevent  unexport
    
    root@beaglebone:/sys/class/pwm/pwmchip0# echo 0 > export
    root@beaglebone:/sys/class/pwm/pwmchip0# ls
    device  export  npwm  power  pwm-0:0  subsystem  uevent  unexport
    
    root@beaglebone:/sys/class/pwm/pwmchip0# ls pwm-0:0
    capture  device  duty_cycle  enable  period  polarity  power  subsystem  uevent
    

    注意:如果引脚已在使用中,您可能需要使用 /boot/uEnv.txt 中的 disable_uboot_overlay_video=1 禁用 HDMI。

    要确定 PWM 接口的引脚映射,请参阅我的后续帖子 PWM chip to pin mapping on BeagleBone Black (v4.14)

    【讨论】:

      【解决方案2】:

      用于 BeagleBone 的 debian 的 last image(Debian 10.3 buster)为我们提供了 pwm 输出的下一个引脚映射:

      P8.13 corresponds to folder: /sys/class/pwm/pwm-6:1
      P8.19 corresponds to folder: /sys/class/pwm/pwm-6:0
      P9.14 corresponds to folder: /sys/class/pwm/pwm-3:0
      P9.16 corresponds to folder: /sys/class/pwm/pwm-3:1
      P9.21 corresponds to folder: /sys/class/pwm/pwm-1:1
      P9.22 corresponds to folder: /sys/class/pwm/pwm-1:0
      

      P8.13、P8:19、P9.14 和 P9.16 的默认周期为 500000。另一方面,P9.21 和 P9.22 的默认周期为 20000。

      使用 PWM 的关键是下一条指令,在上一篇关于 PWM 接口的引脚映射的链接中提到:

      config-pin P8.13 pwm
      config-pin P8.19 pwm
      config-pin P9.14 pwm
      config-pin P9.16 pwm
      config-pin P9.21 pwm
      config-pin P9.22 pwm
      

      完成此操作后,为所有所需的 PWM 输出进行此操作:

      debian@beaglebone:~$ cd /sys/class/pwm/pwm-6:1
      debian@beaglebone:~$ echo 250000 > duty_cycle
      debian@beaglebone:~$ echo 1 > enable
      

      【讨论】:

      • 对我来说有不同的编号。我的筹码数是 1、4 和 7。可能是因为我使用的是 1 Gb 最新图像。
      最近更新 更多