KDocs 研发资料库
  • 视频技术应用资料与文档入口汇总
  • Window下使用Makefile编译代码教程
  • AC52系列PWM使用说明文档
  • AC57系列PWM使用说明文档
  • 52 系列_串口外设的使用说明
  • 57 系列_串口外设的使用说明
  • AC52系列SPI使用说明文档
  • AC57系列SPI使用说明文档
  • AC52系列外部中断使用说明文档
  • AC57系列外部中断使用说明文档
  • AC54&56外部中断使用说明文档
  • AC52 红外捕获中断demo使用说明文档
  • 视频系列SDK汇总及获取方法
  • AC52系列软件典型问题整理文档获取
  • AC791N开发-入门到进阶开发指导文档(完善ing)
  • AC792N开发-入门到进阶开发指导文档(完善ing)
  • 792 littlefs文件系统配置
  • 792N系列 U盘单备份升级说明
  • 792x串口uart升级说明参考

AC57系列PWM使用说明文档

📎 原始文档:https://www.kdocs.cn/l/cjr9wNGdx0lT

AC57系列PWM使用说明文档

 目录TOC \o "1-2" \h \u 
 HYPERLINK \l _Toc16206 AC57系列PWM使用说明文档  PAGEREF _Toc16206 1
 HYPERLINK \l _Toc30541 一、 定时器PWM配置方式  PAGEREF _Toc30541 1
 HYPERLINK \l _Toc28301 二、 硬件PWM配置方式  PAGEREF _Toc28301 4
 HYPERLINK \l _Toc262 1、 硬件PWM单路输出  PAGEREF _Toc262 5
 HYPERLINK \l _Toc7966 2、 硬件PWM多路输出  PAGEREF _Toc7966 8
 HYPERLINK \l _Toc18878 三、 PWM8输出方式  PAGEREF _Toc18878 10

AC57系列有三种输出PWM的方式,分别是定时器PWM方式、硬件PWM方式和PWM8输出方式。其中,这三种方式都支持映射到任意普通IO上输出PWM信号。

  1. 定时器PWM配置方式 定时器PWM方式是通过配置定时器计数产生PWM再映射到IO引脚进行输出。使用该方式需要注意的是:这个定时器在SDK其它地方是没有被占用到,公版SDK中,定时器3默认是没有被占用到,下面是以定时器3为例子的相关配置。(注:AC57系列的寄存器详细说明可以查看《AC570X用户手册》)。
    (1).通过对IOMC1寄存器中的IOMC1[27:23]进行配置可以将channel3(其它channel配置也类似)选择为TMR3_PWM_OUT输出,如下:
    image

image

image

(2)、设置PWM输出的引脚,下面是以映射到PH1引脚为例,如果需要其它引脚,只需要修改成对应的引脚即可。
image

(3)、频率与占空比设置,相关寄存器配置代码及寄存器说明如下:
image

其中PWM的频率是在定时器3控制寄存器T3_CON中的PSET[5:4]这两位进行分频系数的设置,MODE[1:0]工作模式选择,这里需要选择定时/计数模式
image

image

T3_PRD为定时器3的周期寄存器,具体如下:
image

T3_PWM寄存器决定PWM输出的占空比,说明如下:
image

T3_CNT为定时器3计数寄存器,初始化时需要置0。

  1. PWM占空比的设置,在跑了pwm_init函数之后就可调用pwm_duty_cycle函数去设置PWM的占空比,下面是初始化和占空设置函数 image

image

完整的PWM初始化和占空比设置函数在下面文件中
 EMBED Package 
image 
2. 硬件PWM配置方式 硬件PWM的输出可以在原有的硬件PWM引脚(具体引脚如下图)上输出,一共有两组,每组有8个通道,但也不限于只能从这些引脚输出,也可以通过配置映射的方式映射到其它任意的普通IO上输出PWM信号。
image

这两组PWM在SDK中的pwm.h文件下有对应的宏定义
image

  1. 硬件PWM单路输出 该方式可以通过硬件PWM模块去给对应具有PWM功能的引脚输出PWM,也可以通过映射的方式给任意的普通IO输出PWM。下面是以A组的通道0(PG8引脚)和映射到PH1输出两种方式为例去输出PWM。

  2. app_config.h中打开PWM使用的宏,如下 image

  3. 板级文件中需要确认输出的PWM引脚端口设置,PG8引脚对应的是PWM_PORTG,如下 image

image

image

  1. 使用时先调用pwm_ch0_init函数对PWM模块进行初始化后会输出默认设置的频率和占空比,再调用pwm_ch0_ctrl函数可动态设置PWM的占空比,pwm_ch0_freq_ctrl函数可以动态设置PWM的频率。其中初始化函数列举了映射和非映射这两种使用方法,非映射方式时是从A组的通道0(PG8引脚)输出PWM,使用映射方式时以映射到PH1输出为例,也可以修改为映射到其它的任意IO输出PWM。具体函数如下: image

image

image

硬件PWM单路输出的相关函数定义在下面文件中 EMBED Package 
image 

  1. 硬件PWM多路输出 使用硬件PWM模块同时输出多路PWM,这个与硬件PWM单路输出的配置类似,且每路PWM都可以单独控制频率和占空比。下面是以A组(PWM_PORTG)的CH0到CH3这4个通道同时输出PWM为例,只需要在上面的硬件PWM单路输出的基础上修改初始化函数即可,下面是具体的实现函数。
    image

image

image

image

image

使用时先调用pwm_mult_output_init函数对PWM模块进行初始化,需要修改占空比可以通过pwm_ctrl函数去动态设置PWM的占空比,pwm_freq_ctrl函数可以动态设置PWM的频率。硬件PWM多路输出的相关函数定义在下面文件中:
 EMBED Package 
image 

  1. 如需要输出一组相位一致的pwm 波形,或分开多组 需用 motor pwm硬件方式 ,可参考如下列子  EMBED Package 
    image 

  2. PWM8输出方式 PWM8是将内部的各种时钟通过GPIO推到外部的一个功能模块。下面是PWM8映射到PH1上输出PWM的例子:
    (1)、通过对IOMC1寄存器中的IOMC1[17:13]进行配置可以将channel1选择为PWM8_OUT输出,如下:
    image

image

image

(2)、设置输出的引脚,下面是映射到PH1引脚,如果需要其它引脚只需要修改成对应的引脚即可:
image

(3)、设置分频系数(频率)和占空比,这两个参数的设置是在PWM8_CON寄存器中配置,具体如下:
image

image

image

image

完整的初始化函数如下,使用时调用该函数即可完成PWM8的硬件初始化并输出PWM
image

pwm8_init函数的定义的下面文件中:
 EMBED Package 
image 

杰理科技
2023年03月01日

Prev
AC52系列PWM使用说明文档
Next
52 系列_串口外设的使用说明