龙芯1B开发板pwm引脚输出波形.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
龙芯1B开发板pwm引脚输出波形

1. 修改并运行开发板自带的驱动和测试程序的 3 1.1. Linu内核配置选中pwm驱动 3 1.2. 修改测试程序源码 3 1.3. 运行结果 4 1.3.1. 万用表测量结果 4 1.3.2. 串口打印 5 2. 源码分析 6 2.1. 硬件简介 6 2.1.1. 引脚复用 6 2.1.2. 引脚名字 6 2.1.3. 输出电压 7 2.2. 测试程序分析 7 2.2.1. 输出pwm波形的引脚 8 2.2.2. PWM波形的占空比 8 2.3. 驱动程序分析 9 2.3.1. 引脚复用 9 2.3.2. 启动停止pwm功能 9 2.3.3. 设置占空比 10 3. 测试方法 10 3.1. 示波器 10 3.2. 万用表 11 4. 修改后源码 11 4.1. 测试程序 11 4.2. 驱动程序 13 版本 更新日期 更新内容 V1.0 2014.4.1 创建 修改并运行开发板自带的驱动和测试程序的 Linu内核配置选中pwm驱动 Device Drivers --- Character devices --- [*] ls1b pwm driver 修改测试程序源码 修改龙芯1B开发板配套光盘中附带的pwm测试程序,将case1和2中的函数ioctl()的第三个参数都改为2,表示pwm2引脚输出波形。 运行结果 万用表测量结果 开发板中pwm接口如下图所示 从左往右以此为5v、pwm0、pwm1、pwm2、pwm3和地,本次测试为在pwm2引脚输出波形,并用万用表测试pwm2和GND之间的电压,测试结果如下 在计算测试程序中的占空比,再折合为电压值,基本上可以判断正确输出了pwm波形。 串口打印 在开发板命令行中运行pwm测试程序“test-pwm”,输入1则在pwm2引脚输出波形,输入2则停止输出波形,输入其它值没反应。 源码分析 硬件简介 引脚复用 龙芯1B处理器对PWM引脚进行了复用,PWM0和PWM1与网卡eth0复用,PWM2和PWM3与网卡eth1复用。从如下电路图中可以看出来 由于我这里是通过nfs挂载的根文件系统,网卡eth0被占用,即pwm0和pwm1被网卡eth0占用,所以这里测试都是基于pwm2和pwm3的。 引脚名字 从龙芯1B处理器手册中可以查到:PWM0为GPIO0,PWM1为GPIO1,PWM2为GPIO2,PWM3为GPIO3。如下图所示 输出电压 同样,由龙芯1B处理器手册可得:PWM引脚输出时,高电平为3.3v,低电平为0v。 测试程序分析 应用程序只关心在那个引脚输出pwm波形,而并不关心具体怎样才能在指定引脚输出pwm波形。这里涉及两个关键点:一、输出pwm波形的引脚;二、pwm波形的占空比。这两点都能在测试程序中找到。 输出pwm波形的引脚 前面的硬件分析了,PWM引脚分别为GPIO0、GPIO1,、GPIO2和GPIO3。测试程序中定义如下 测试程序中是通过函数ioctl()来指定具体在那个pwm引脚输出波形的,如下图所示 PWM波形的占空比 测试程序中占空比的定义如下 通过一个数组分别存放高电平脉冲和低电平脉冲所占的时钟数。占空比是通过write()传给驱动程序的。如下所示 另外,根据占空比计算对应的高低电平脉冲所占的时钟数,龙芯1B处理器手册中举了一个例子,如下 注意:请结合驱动程序中相关占空比的部分,仔细计算脉冲数。本测试程序中的高电平脉冲数不一定完全准确,最好通过示波器看一下。 驱动程序分析 引脚复用 驱动程序是在open的时候就把pwm引脚设置为PWM模式,如下所示 启动停止pwm功能 驱动程序是在ls1f_pwm_ioctl()中调用pwm_start_stop()来操作pwm相关寄存器的,实现在指定引脚输出pwm波形,如下所示 另外,在ls1f_pwm_close()函数中也停止了pwm功能,如下所示 设置占空比 占空比的设置与测试程序中对应是通过函数ls1f_pwm_write()实现的,如下所示 测试方法 示波器 最好肯定是通过示波器观看pwm引脚输出的波形。可以准确计算出占空比和高低电平时间。 万用表 当然也可以通过万用表来初步判断在pwm引脚是否输出波形。 方法一:通过占空比,算电压,用万用表测试pwm引脚,看看电压是否一致。 方法二:把pwm波形的周期调到足够长,以便通过万用表能检测到pwm引脚电压变化。测试程序中给了一个示例,大概两三秒pwm引脚变化一次。 修改后源码 测试程序 /* * 此测试程序用于控制pwm设备,对pwm的控制是通过配置占空比实现的,设置好所需要的高电平和低电平的所占的脉冲数目即可 */ #in

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档