BeagleBone Black板第十课:测试PWM功能

本文介绍了如何在BeagleBone Black(BBB)板上测试和理解PWM功能,包括PWM的基本概念、作用以及如何在BBB上设置和控制PWM。通过实验,作者展示了如何调整PWM的duty和period参数来改变电压输出,并提供了电压与PWM参数之间的关系,以及PWM调压的计算公式。
摘要由CSDN通过智能技术生成

BBB板第十课:测试PWM功能

上一节课我们初步学习了BBB板上ADC数据的读取方法,本节课将把学到的PWM的知识贡献给和我一样的初学者。以下这张彩图来自网上,详细标明了14个PWM和四个定时器的引脚位置。本实验中,我们只测试其中的P8_13引脚,名称为eHRPWM2B。

需要准备的实验工具:一个二极管发光管和数字万用表及其他小线材

 

一、PWM知识(部分知识直接摘自网上)

PWM全称Pulse WidthModulation,脉冲宽度调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。简单的说,使用PWM可以实现平时我们常用的电阻器调压,可以控制电灯亮度、电机转速、音量大小等所有想得到的调节功能。

简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。



       图1显示了三种不同的PWM信号。图1a是一个占空比为10%的PWM输出,即在信号周期中,10%的时间通,其余90%的时间断。图1b和图1c显示的分别是占空比为50%和90%的PWM输出。这三种PWM输出编码的分别是强度为满度值的10%、50%和90%的三种不同模拟信号值。例如,假设供电电源为9V,占空比为10%,则对应的是一个幅度为0.9V的模拟信号。


       图2是一个可以使用PWM进行驱动的简单电路。图中使用9V电池来给一个白炽灯泡供电。如果将连接电池和灯泡的开关闭合50ms,灯泡在这段时间中将得到9V供电。如果在下一个50ms中将开关断开,灯泡得到的供电将为0V。如果在1秒钟内将此过程重复10次,灯泡将会点亮并象连接到了一个4.5V电池(9V的50%)上一样。这种情况下,占空比为50%,调制频率为10Hz。

      大多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz。设想一下如果灯泡先接通5秒再断开5秒,然后再接通、再断开……。占空比仍然是50%,但灯泡在头5秒钟内将点亮,在下一个5秒钟内将熄灭。要让灯泡取得4.5V电压的供电效果,通断循环周期与负载对开关状态变化的响应时间相比必须足够短。要想取得调光灯(但保持点亮)的效果,必须提高调制频率。在其他PWM应用场合也有同样的要求。通常调制频率为1kHz到200kHz之间。

      BBB板包含有PWM控制器,实现14个PWM单独操作,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比;调制频率为周期的倒数。具体说一下,其实频率就是1秒内完成周期的个数,100Hz就是每秒一百个周期,一个周期的时间为1/100秒;100KHz就是每秒实现100000个周期,一个周期时间为10us;比如我们熟悉的交流正弦波的一个周期由正半周和负半周组成的;而占空比就是一个周期中脉冲存在时间的百分比。

BBB板中,操作PWM用到duty(duty_ns)、period(period_ns)、polarity、run共四个参数,其中period就是频率参数(周期时间),duty为占空比,polarity为使能标志(1为使能,0为禁用),run 是执行命令(1为运行,0为关闭),period和duty的参数单位为纳秒(ns),1s=1000ms=1000000us=1000000000ns,所以period最大的取值范围为0—1000000000,而duty则取值0—period值之间,后面我们实验测试时会用大,到时会通过一组实验数据来理解这两个参数之间关系。

程序中PWM操作进行以下工作:

          * 设置PWM输出的方向,打开使能标志

          * 设置提供调制方波的片上定时器/计数器的周期period值

          * 设置接通时间duty占空比

       * 启动定时器

 

二、加载PWM驱动

PWM设备驱动和ADC一样不是默认打开的,需要时才手动启动。

下图显示查询到的BBB板所以PWM设备树文件,文件名正好对应14个PWM引脚编号:

 

1、查看当前加载设备树情况

进入sys/devices/bone_capemgr.9(加载设备树的目录),cat slots命令可以查看当年加载的驱动情况:只有一个内存卡和HDMI高清的驱动加载了。

 

2、加载:P8.13引脚的PWM驱动

加载PWM需要的两个驱动 am33xx_pwm-00A0.dtbo(公用设备树)和bone_pwm_P8_13-00A0.dtbo

root@beaglebone:/sys/devices/bone_capemgr.9#echo bone_pwm_P8_13 > slots

root@beaglebone:/sys/devices/bone_capemgr.9#echo am33xx_pwm > slots

 

如果只加载bone

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值