OrangePi5(debian)启用PWM的备忘录

首先

为了使OrangePi5能够使用PWM,这是一个备忘录

参考文献可以提供参考信息和支持证据。

我参考了这里写的内容。

 

此外,PWM的处理也已在官方文件中进行了说明。
如果下载PDF并使用PWM进行搜索,应该能找到与执行sudo命令相对应的内容。

 

环境

    • OrangePi5

 

    debian (Orange Pi 1.1.4 Bullseye with Linux 5.10.110-rockchip-rk3588)

设定

这次要做的事情有两个要点。

    • orangepi-configでのPWM許可

 

    rules追記

在OrangePi配置中启用PWM功能

首先,需要作为事前知识记住,在橙子派5上为了执行PWM功能,存在共享不同引脚的地址的情况。例如,16引脚和26引脚,15引脚和23引脚使用相同的地址,因此需要允许其中一个引脚的使用。(参考OrangePi_5_RK3588S用户手册v0.7的第203页)

アドレス(pwmchip)物理ピンPWM名称fd8b000018pwm0-m1fd8b001016pwm1-m1fd8b001026pwm1-m2fd8b003015pwm3-m0fd8b003023pwm3-m2febf00103pwm13-m2febf00307pwm15-m2febf002011pwm14-m1

根据上述内容,打开orangepi-config。

sudo orangepi-config

选择“系统”然后选择“硬件”。

image.png
image.png

将光标对准要使用的PWM,按下空格键进行选择。
选择后,相应的项目将显示*。

image.png

只需提供一种选项,以下是在中文中的表达:

当选择保存时,返回到相同的屏幕,然后确认之前设置的项目已经被标记为*,然后选择“返回”以返回。

image.png

因为被要求重新启动,直接选择重新启动。

规则的补充说明

在这里进行设置,以便无需使用sudo来操作PWM。
在终端中执行以下命令。

$ sudo groupadd pwm
$ sudo usermod -aG pwm $USER

请打开文件”60-pwm.rules”并进行以下修改。
如果是新创建的文件且为空,请直接进行复制粘贴即可。

SUBSYSTEM=="pwm", PROGRAM="/bin/sh -c '\
  chown -R root:pwm /sys/class/pwm && chmod -R 770 /sys/class/pwm; \
  chown -R root:pwm /sys/devices/platform/*.pwm/pwm/pwmchip* && chmod -R 770 /sys/devices/platform/*.pwm/pwm/pwmc>
'"

保存文件后重新启动。
重新启动完成后执行以下命令。在这里显示的pwmchip数量可能会因为在orangepi-config中允许的PWM而发生变动。

$ ls -l /sys/class/pwm/
total 0
lrwxrwxrwx 1 root pwm 0 May  3 00:17 pwmchip0 -> ../../devices/platform/fd8b0000.pwm/pwm/pwmchip0
lrwxrwxrwx 1 root pwm 0 May  3 00:17 pwmchip1 -> ../../devices/platform/fd8b0020.pwm/pwm/pwmchip1
lrwxrwxrwx 1 root pwm 0 May  3 00:17 pwmchip2 -> ../../devices/platform/fd8b0030.pwm/pwm/pwmchip2
lrwxrwxrwx 1 root pwm 0 May  3 00:17 pwmchip3 -> ../../devices/platform/febd0020.pwm/pwm/pwmchip3
lrwxrwxrwx 1 root pwm 0 May  3 00:17 pwmchip4 -> ../../devices/platform/febf0010.pwm/pwm/pwmchip4
lrwxrwxrwx 1 root pwm 0 May  3 00:17 pwmchip5 -> ../../devices/platform/febf0030.pwm/pwm/pwmchip5

一旦这样,当PWM变得可用时,我们应该在打开gpio命令的同时观察pwmchip和地址的对应,这样就可以产生PWM。

确认

我是在官方文档的204-205页上找到的示例,并在不使用sudo的情况下进行了执行。要确定pwmchipN对应的是什么,请使用命令ls -l /sys/class/pwm/ 进行确认。

$ echo 0 > /sys/class/pwm/pwmchip2/export
$ echo 20000000 > /sys/class/pwm/pwmchip2/pwm0/period
$ echo 1000000 > /sys/class/pwm/pwmchip2/pwm0/duty_cycle
$ echo 1 > /sys/class/pwm/pwmchip2/pwm0/enable
广告
将在 10 秒后关闭
bannerAds