基于 NXP QN9080 PWM 的使用

关键字 :QN9080PWM

一、概述

      PWM 是指脉冲宽度调制,在平时的应用中使用最多的是通过调节 PWM 的占空比大小从而改变电机转速或者改变灯光亮度的作用。那么对于 QN9080 来说,我们需要怎么对 PWM 进行操作呢,下面会给大家详细说明。


二、环境搭建

2.1 SDK 下载

      本文基于 NXP QN9080 IC,SDK 可在NXP 官网 https://mcuxpresso.nxp.com 下载。

2.2 硬件

      本文基于 QN9080 DK 板进行开发,DK 板如图 2.2 所示。

                                                                                                                                                                                     图 2.2

2.3 开发软件

      SDK 支持 IAR、Keil、MCUXpreeso IDE 三种开发软件、本文以 IAR 为开发环境作为介绍。



三、工程介绍

      在 SDK_2.2.0_QN908XCDK\boards\qn908xcdk\driver_examples\ctimer\simple_pwm_interrupt 目录下的工程是操作 PWM 的例程,下面带大家一起看看。

3.1  CTimer 定时器配置

      该例程中 PWM 需要使用到 CTimer 进行定时进入 Callback 进行占空比调节,因此需要先对定时器进行配置,具体可参考图 3.1 -1。

 
                                                                                                                                    

                                                                                                                                                                                     图 3.1 – 1

 

3.2  PWM 配置

由于此例程使用的是中断修改占空比,因此我们需要对 PWM 的 Callback 进行相关的设置并且开启 PWM 功能。具体的大家可以参考一下图 3.2 – 1。

                                                                    

                                                                                                                                                                                     图 3.2 - 1

 

      图 3.2 – 1 中的 ① 的参数说明:

             参数 1:使用的定时器

             参数 2:PWM 通道对应的 Callback

             参数 3:选择是单个回调还是多个回调

      图 3.2 – 1 中的 ② 的参数说明:

             参数 1:使用的定时器

             参数 2:使用的定时器匹配寄存器

             参数 3:默认占空比的值

             参数 4:调用 Callback 的频率

             参数 5:使用的时钟频率

             参数 6:使能 PWM 的标志

      目前 Demo 使用的是单回调,使用的引脚是 PA31,使用的定时器是 CTIMER3,因此在配置引脚的时候需要将 PA31 配置成 FUN3(CTIMER3_MAT2),匹配的定时器寄存器为 kCTIMER_Match_2。具体我们可以参考图 3.2 – 2。

 
                                                                       

                                                                                                                                                                                     图 3.2 – 2

3.3  占空比修改

      配置完 PWM 后就可以直接启动定时器了。我们可以通过 CTIMER_StartTimer(CTIMER);进行开启。随后就可以在 Callback 中进行 PWM 占空比的修改。具体我们可以参考图 3.3 – 1。

 
                                                                                 

                                                                                                                                                                                     图 3.3 – 1

 

      图 3.3 – 1 中的 ① 是用来更新占空比,其中的 ② 是用来计算占空比,在每一次进入 Callback 都将进行占空比的更新。

3.4  结果显示

      按照例程直接烧录后看到的效果并不明显,只能看到开发板上 RGB 灯亮白色灯,因此我们需要将代码进行修改。

      修改内容:

      ① 关闭 RGB 灯中的蓝灯(PA13)以及绿灯(PA25),只留下红灯(PA31)。

      ② 增大占空比的范围,例程中占空比的值范围是 69 ~ 99。

      具体可参考图3.4 – 1。

 
                                                         

                                                                                                                                                                                     图 3.4- 1

 

      测试修改完之后的例程,会发现开发板上的 RGB 灯会出现红色灯呼吸的效果。

 

      通过前面的讲述,大家对于怎么去使用 PWM 是否有了一个大致的了解,后面还会有其他精彩的内容,希望大家继续观看。

 

四、参考资料

      [1] QN908x.pdf
     [2] QN908x user manual.pdf

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论