0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树莓派的PWM模式介绍

CHANBAEK 来源:头条号科G栈 作者:头条号科G栈 2023-03-24 11:30 次阅读

树莓派可以同时产生两路独立的pwm。

poYBAGQdGV6Ad9qMAADfpzCvOxQ805.jpg

每一路可以配置到规定的几个gpio上,而实际能用的只有12、13、18、19,其他都没有引出来。这里的gpio指的是bcm的。

pYYBAGQdGV-AQnN5AAC4AeeB3Yo799.jpg

poYBAGQdGV-ANwYWAAKS5qQjWsM321.jpg

在BCM2835 ARM外设手册中对PWM做了详细的介绍。

pYYBAGQdGWCAdKvXAAHp3_VdzrE497.jpg

树莓派的PWM有两种操作模式:PWM模式和Serialiser模式。PWM模式又有两种模式:N/M模式和M/S模式。我们平时常用的那种固定频率改变占空比的操作是PWM模式的M/S模式。

pYYBAGQdGWGAWcfkAABAGzmifqs710.jpg

PWM由8个寄存器控制,手册上给出的总线起始地址为0x7e20c000,对应的物理地址是0x3f20c000。

poYBAGQdGWOAUbt5AAF9fadqnGg417.jpg

如果不使用FIFO和DMA,配置很简单,主要是设置CTL,使能对应的PWM控制器并设置模式,设置RNG给定PWM的范围,就是上面图片的S,设置DAT给定要输出的值,就是图片中的M。也就是说RNG设置PWM的控制粒度,DAT控制输出高低电平的时间,二者的比值就是占空比。

在设置PWM之前,还有一个重要的地方需要设置,就是PWM的时钟,外设手册只说了一下配置时钟的寄存器是CPRMAN,没有其他信息。但是可以参考bcm2835库的设置方式。

pYYBAGQdGWSAFXJdAADBcnALJDE046.jpg

pYYBAGQdGWWAfwkfAAOYz0ud3YI228.jpg

poYBAGQdGWeAUCbwAAJ99TKm-hM737.jpg

总结一下,树莓派的pwm配置分这么几步:

1、设置对应的gpio为pwm复用功能;

2、设置pwm的时钟;

3、设置pwm的模式并使能;

4、设置pwm的range;

5、设置pwm的dat;

以后控制pwm就只需改变dat的值就可以改变pwm的占空比了。

Linux系统下,使用内存映射mmap可以很方便的操控这些寄存器。PWM需要映射gpio寄存器、时钟寄存器和pwm寄存器,bcm2835的库就是使用的这种方式。

pYYBAGQdGWiAVnrRAAEskbaKrpk866.jpg

poYBAGQdGWmAW59iAAPobPZcNkc170.jpg

我用树莓派18、19获取的pwm波形。

pYYBAGQdGWqASNoWAAE6KLK6hKg259.jpg

网上有树莓派只提供了一个硬件pwm输出的说法,在我的3b上证明是错误的,我猜测这种说法应该是针对之前旧版本硬件的。

有这两路PWM做两轮平衡车刚刚好。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9027

    浏览量

    366432
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5115

    浏览量

    213124
  • Linux
    +关注

    关注

    87

    文章

    11199

    浏览量

    208691
  • GPIO
    +关注

    关注

    16

    文章

    1188

    浏览量

    51825
  • 树莓派
    +关注

    关注

    116

    文章

    1687

    浏览量

    105448
收藏 人收藏

    评论

    相关推荐

    简单介绍树莓

    本帖最后由 348081236 于 2016-1-8 17:44 编辑 看到个很有意思的动画片介绍什么是树莓
    发表于 01-08 17:44

    请问树莓硬件PWM是什么输出?

    网上有很多树莓输出PWM的,但是都是通过GPIO模拟的,不是硬件PWM模块产生的。 因为软件模拟的频率上不去,周期好像是10ms,也就是频率才100Hz。
    发表于 11-04 02:33

    树莓学习笔记之PWM控制直流电机转速介绍 相关资料分享

    树莓控制PWM控制电机转速一、硬件二、连线三、树莓python库配置一、硬件树莓
    发表于 06-29 08:47

    树莓pwm是如何去控制无刷电机的?

    树莓pwm是如何去控制无刷电机的?其实现代码是怎样去编写的?
    发表于 07-21 06:46

    树莓装机教程

    树莓装机教程树莓装机教程树莓装机教程树莓
    发表于 11-25 10:14 52次下载

    树莓3wifi配置_树莓3开启wifi热点_树莓3的wifi使用教程

    树莓3在2016年2月29号正式发布了,树莓3几乎和树莓2代板型一致,大外观没什么变化小电
    发表于 12-08 11:47 3.1w次阅读

    树莓有什么用_树莓能用来做啥_树莓新手入门教程

    本文首先介绍树莓的功能,其次介绍树莓的用途,最后详细
    的头像 发表于 05-08 14:15 3.3w次阅读

    树莓驱动舵机介绍_树莓驱动舵机代码

    本文主要详细介绍树莓驱动舵机以及它的驱动代码,具体的跟随小编一起来了解一下。
    的头像 发表于 05-30 14:47 1.4w次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>驱动舵机<b class='flag-5'>介绍</b>_<b class='flag-5'>树莓</b><b class='flag-5'>派</b>驱动舵机代码

    树莓是什么树莓的简单介绍

    要想玩转树莓,首先得知道树莓是什么。在本节中,作者将带领大家揭开树莓的神秘面纱,了解
    发表于 05-15 18:09 30次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的简单<b class='flag-5'>介绍</b>

    树莓3和树莓4的原理图免费下载

    本文档的主要内容详细介绍的是树莓3和树莓4的原理图免费下载。
    发表于 01-07 10:23 91次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>3和<b class='flag-5'>树莓</b><b class='flag-5'>派</b>4的原理图免费下载

    树莓3和树莓4的原理图免费下载

    本文档的主要内容详细介绍的是树莓3和树莓4的原理图免费下载。
    发表于 01-07 10:23 223次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>3和<b class='flag-5'>树莓</b><b class='flag-5'>派</b>4的原理图免费下载

    树莓IO扩展板的技术规格 树莓扩展板该怎么用

    树莓IO扩展板是著名开源硬件商DFRobot专为树莓开发的IO扩展板,IO扩展板支持PWM、ADC、读取模拟量、数字量,支持
    的头像 发表于 05-17 15:18 3357次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>IO扩展板的技术规格 <b class='flag-5'>树莓</b><b class='flag-5'>派</b>扩展板该怎么用

    树莓4B的扩展功能板介绍

    树莓 功能扩展板介绍
    的头像 发表于 09-25 17:31 1884次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>4B的扩展功能板<b class='flag-5'>介绍</b>

    树莓通过pwm控制电机速度

    树莓通过脉冲宽度调制可以控制电机的速度。实际上在精度要求不是非常高的情况下,普通引脚也可以通过软件模拟来控制 电机,实现pwm一样的功能。pwm功能可以控制直流电机的速度,同时,也
    发表于 03-21 10:19 0次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>通过<b class='flag-5'>pwm</b>控制电机速度

    树莓控制PWM控制电机转速

    树莓控制PWM控制电机转速 一、硬件 树莓 12V直流电机 L298N电机驱动器 220V转12V变压器 二、连线
    发表于 03-31 10:59 3次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>控制<b class='flag-5'>PWM</b>控制电机转速