基于i.MX6UL实现PWM脉冲计数
1.适用范围
本文档介绍了基于i.MX6UL实现PWM脉冲计数的基本实现原理。
公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出高安免费做网站回馈大家。
2.客户需求
2.1 基本需求
基本需求为在i.MX6UL上利用PWM输出固定频率的脉冲波形,并严格控制该频率下的脉冲输出个数。应用程序调用系统接口设置PWM输出的频率和脉冲输出个数,之后PWM启动脉冲输出,当输出指定的脉冲个数后,产生中断提示应用程序。此时应用程序再次设置最新的PWM输出频率和脉冲个数,循环往复工作。
2.2 参数需求
PWM频率范围 :最小0Hz,最大25KHz;
计数个数范围:最小0,最大60000。
3.原理简介
由于i.MX6UL的PWM脉冲输出本身不具备计数功能,所以采用了PWM+EPIT结合使用的方式。
EPIT(Enhanced Period Interrupt Timer)为i.MX6UL实现的高精度周期性中断定时器,其和PWM采用的是同一个时钟源。
基本思路为:当应用程序设置PWM计数值时启动PWM输出,将PWM计数值换算为EPIT的定时周期,并启动EPIT开始计时,当定时周期到时产生中断, 在EPIT中断中禁用PWM输出,此时PWM脉冲输出的个数也应该达到理论输出个数。
3.1 用户调用流程
用户调用流程如图 3-1所示。
图 3-1用户调用流程
3.2 ControlLib库实现
3.2.1 ControlOpen操作
打开PWM设备、EPIT设备,设置PWM设备和EPIT工作的默认频率。将PWM设备与EPIT设备关联,以使EPIT中断中可以禁用对应的PWM脉冲输出。
3.2.2 ControlClose操作
关闭PWM设备、EPIT设备。
3.2.3 ControlSet操作
按照如下公式,根据用户设置的PWM频率和计数数值,换算为EPIT定时的数值。
Freq为PWM实际设置的输出频率,当Freq减小时,Count最大可计数值随之减小。
4.测试结果
当设置50KHz频率,20次输出时,示波器抓到如图 4-1所示波形。
图 4-1 50KHz,输出20次
当设置25KHz频率,33次输出时,示波器抓到如图 4-2所示波形。
图 4-2 25KHz,输出33次
当设置10KHz频率,60次输出时,示波器抓到如图 4-3所示波形。
图 4-3 10KHz,输出60次
分享名称:基于i.MX6UL实现PWM脉冲计数
转载源于:http://azwzsj.com/article/pcospj.html