【赛昉科技昉·星光RISC-V单板计算机试用体验】ubuntu 22.04 使用pwm驱动蜂鸣器

描述

本文来源电子发烧友社区,作者:jf_25674040, 帖子地址:https://bbs.elecfans.com/jishu_2292781_1_1.html

一、硬件连接
RISC-V

这次我们使用PWM0,即GPIO7。
RISC-V
本次我们使用的是3.3V无源蜂鸣器。

RISC-V
硬件实际连接如上图。
二、软件

  1. 设备树
    由于本人前一个版本更改了dtb导致进入到/sys/class/pwm/时没有看到pwmchip0,需要将从linux中编译的dtb文件通过
    dtc -I dtb -O dts -o xxx.dts xxx.dtb反汇编成dts文件,并增加
    resets = <0x0b 0x6d>;属性。
    我pwm设备树配置参数。

 
pwm@12490000 { compatible = "starfive,pwm0"; reg = <0x00 0x12490000 0x00 0x10000>; #reg-names = "control"; clocks = <0x07 0xb5>; #pwm-cells = <0x03>; resets = <0x0b 0x6d>; #sifive,approx-period = <0x5f5e100>; sifive,npwm = <0x08>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x28>; };
  1. 通过syfs控制蜂鸣器 其中period,duty_cycle的单位为ns。

 
root@ubuntu-star5:/sys/class/pwm/pwmchip0/pwm0# ls capture duty_cycle enable period polarity uevent root@ubuntu-star5:/sys/class/pwm/pwmchip0/pwm0# echo 0 >enable root@ubuntu-star5:/sys/class/pwm/pwmchip0/pwm0# echo 500000 > period root@ubuntu-star5:/sys/class/pwm/pwmchip0/pwm0# echo 250000 > duty_cycle root@ubuntu-star5:/sys/class/pwm/pwmchip0/pwm0# echo 1 > enable root@ubuntu-star5:/sys/class/pwm/pwmchip0/pwm0# echo 0 >enable
  1. 通过其他方式控制后续有时间再补上。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分