首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BananaPi M2 0上的脉宽调制

BananaPi M2 0上的脉宽调制
EN

Unix & Linux用户
提问于 2023-04-22 20:20:50
回答 1查看 59关注 0票数 0

香蕉皮零M2上的“文档”非常混乱,甚至很有趣。目标:使PWM工作。

因此,我安装了armbian,等待了一个星期我的usb电缆出现(因为您只会失败默认SSH ),配置ssh并遵循步骤在这里安装修改后的装配线pi - gpio实用程序。我可以确定设置针L/H作品。

下一步是验证PWM工作,所以这里的乐趣开始。喷出看起来和覆盆子上的一样,所以他们声称:

我用上一次RPI 0设计了我的板,我使用的是pin GPIO 12 (wiringPi 1),所以我这样做了:

代码语言:javascript
复制
# gpio mode 1 pwm
the pin you choose is not surport hardware PWM
you can select PA6 for PWM pin
or you can use it in softPwm mode

所以你可以看到它不是‘冲浪’,我应该试试PA6。

不知道什么是PA6,所以我搜索并找到了这个关于主题的帖子

所以我决定:

代码语言:javascript
复制
# gpio mode 7 pwm
you choose the hardware PWM:1

它告诉我,我选择了PWM:1无论这意味着什么。(1正在运行?)当然,我试着设定工作周期,等着看我的led来吧,但就像我在上面提到的那条线上的那位先生一样:

代码语言:javascript
复制
# gpio pwm 7 100
val pwmWrite 0 <= X <= 1024
Or you can set new range by yourself by pwmSetRange(range

与我输入的ducy循环值不改变的错误。

我发现的下一个最佳选择让我加入脉宽调制覆盖,激活脉宽调制,设定周期和占空比。命令通过时没有出错,但LED没有亮起。我的脉宽调制线现在连接到GPIO 15 (UART_TXD) --这是对的吗?

这是我的armbianEnv.txt

代码语言:javascript
复制
# cat /boot/armbianEnv.txt 
verbosity=1
bootlogo=false
console=both
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
rootdev=UUID=986b3dcb-01f8-4965-8a16-03b55c7341fd
rootfstype=ext4
overlays=i2c0 pwm w1-gpio
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

我刚刚注意到,i2c0w1-gpio可能是由armbian-config实用程序添加到overlays中的,所以这可能没问题。

但如果你问我:

代码语言:javascript
复制
root@bananapim2zero:~# ls /boot/dtb/ | grep pwm
root@bananapim2zero:~# ls /boot/dtb-6.1.11-sunxi/ | grep pwm

没有这样的覆盖所以我不知道。

最后,我想把所有的缩略语理解为:PA,所有这里列出的GPIO引脚名的意思,我的意思是里面似乎有一些逻辑,但我不知道为什么有两个单独的表在这些名字前加上CON2-,然后CON3-跟在P{0-24}后面,就好像会有两个不同的GPIOs?为什么和什么是UART跳投?

主要是:我如何获得PWM工作?接下来是i2c和w1。

我相信答案会为更多寻找RPI替代品的迷失者提供线索。

谢谢!

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2023-04-23 11:53:05

好了好了。

昨天深夜,我没有注意到GPIO 40引脚头之外的3个单独的引脚,供应商标记为UART:

请注意,您可以找到两种不同的UART:

gpio实用工具指向其中一个:

但这只是视觉上的,如果您注意到,您设置为PWM: 7的引脚没有被标记为PWM:7。至少它不是躺在输出中。而且它也不起作用,所以不抽雪茄;我只想知道为什么我能看到标题: dev bontago已经专门为这个板的用途修改了该实用程序.

为了消除

的混乱,Rx引脚从存储卡的侧面是你的PWM,在第一张图片上有标记。

在这里,您可以找到如何在操作系统级别启用和使用脉宽调制:

代码语言:javascript
复制
# activate the PWM. On H3 only 1 PWM is supported, so exporting PWM 0
echo 0 > /sys/class/pwm/pwmchip0/export
# set period to 10ms
echo 10000000 > /sys/class/pwm/pwmchip0/pwm0/period
# set normal polarity. needs to be reset explicitly. Bug?
echo "inversed" > /sys/class/pwm/pwmchip0/pwm0/polarity
echo "normal" > /sys/class/pwm/pwmchip0/pwm0/polarity
# enable the PWM
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
# set duty cycle to 1ms
echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
  • 是的,你的PWM从1开始,所以你需要导出它,先设置“正常”极性,然后你就可以像你习惯的那样操作。

# uname -a Linux bananapim2zero 6.1.11-sunxi #23.02.2 SMP Sat Feb 18 05:52:53 UTC 2023 armv7l GNU/Linux

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/743710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档