0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PWM模块在计数过程中可以根据哪三种配置trigger信号

恒美股份 来源:华芯微特32位MCU 作者:华芯微特32位MCU 2021-08-09 17:53 次阅读

SWM201系列所有型号PWM操作均相同,不同型号PWM通道数可能不同。使用前需使能PWM模块时钟。PWM模块用于实现芯片输出特定的方波,控制外部元器件,如步进电机等。

计数器可以通过APB总线读写寄存器、和外部硬件同时控制,实现计数过程的控制。同时,CPU和外部硬件也可以共同实现对输出PWM信号的控制。

PWM模块提供了2组(PWM0、PMW1)、8路(PWM0A、PWM0B、PWM0AN、PWM0BN、PWM2A、PWM2B、PWM2AN、PWM2BN)独立通道,支持边沿模式、中心对称模式。

中心对称模式下,输出是互补输出。如PWM0A驱动PWM0A和PWM0AN两个输出信号,两个信号周期相等、电平值相反,且可设置死区。

程序中配置如下(SWM201内置PN预驱):

static void PWM_Init (void)

{

PWM_InitStructure PWM_initStruct;

PORT_Init(PORTA, PIN5, PORTA_PIN5_PWM1AN, 0);

PORT_Init(PORTA, PIN4, PORTA_PIN4_PWM1BN, 0);

PORT_Init(PORTA, PIN3, PORTA_PIN3_PWM0AN, 0);

PORT_Init(PORTA, PIN2, PORTA_PIN2_PWM1A, 0);

PORT_Init(PORTA, PIN1, PORTA_PIN1_PWM1B, 0);

PORT_Init(PORTA, PIN0, PORTA_PIN0_PWM0A, 0);

//PWM引脚初始化

PWM_initStruct.Mode = PWM_CENTER_ALIGNED;

//中心对齐模式

PWM_initStruct.Clkdiv = 1;

//分频F_PWM = 60M/1 = 60M

PWM_initStruct.Period =10000;

//周期:60M/6000 = 1KHz,中心对称模式下频率//降低到500Hz

PWM_initStruct.HdutyA = 2500; //占空比:2000/10000 = 25%

PWM_initStruct.DeadzoneA = 50; //死区时间:50/60M

PWM_initStruct.IdleLevelA = 0; //停止状态下PWMxA输出电平

PWM_initStruct.IdleLevelAN= 0; //停止状态下PWMxAN输出电平

PWM_initStruct.OutputInvA = 0; //PWMxA输出未取反

PWM_initStruct.OutputInvAN= 0; //PWMxAN输出未取反

PWM_initStruct.HdutyB = 1500;

PWM_initStruct.DeadzoneB = 50;

PWM_initStruct.IdleLevelB = 0;

PWM_initStruct.IdleLevelBN= 0;

PWM_initStruct.OutputInvB = 0;

PWM_initStruct.OutputInvBN= 0;

PWM_initStruct.UpOvfIE = 0;

PWM_initStruct.DownOvfIE = 0;

PWM_initStruct.UpCmpAIE = 1; //开启上升沿比较器PWM0A匹配中断使能

PWM_initStruct.DownCmpAIE = 0;

PWM_initStruct.UpCmpBIE = 0;

PWM_initStruct.DownCmpBIE = 0;

PWM_Init(PWM0, &PWM_initStruct);

PWM_initStruct.UpCmpAIE = 0; //屏蔽PWM1A中断

PWM_Init(PWM1, &PWM_initStruct);

PWM_Start(PWM0_MSK | PWM1_MSK);

//启动PWM,开始PWM输出

PWM_OutMask(PWM1, PWM_CH_B, PWM_EVT_1, 0, PWM_EVT_1, 1);

//挖坑功能设置:PWM1B和PWM1BN在event1为高时分别输出0和1

PWM_CmpTrigger(PWM0, 750, PWM_DIR_UP, 40, PWM_TRG_1, 1);

//设置ADC采样点(ADC采样设置请查看“SWM20x系列电机框架搭建:ADC篇”)

}

TRIGGER控制:

PWM模块在计数过程中,可以根据输出三种trigger信号:

01

PWM计数器比较匹配触发:PWM计数器在计数过程中,当计到TRIG_CNT中配置的参考值时,就会产生一个周期的trig信号。根据配置,可以将该trig信息映射到输出的trig[7:0]信号上,且输出宽度可以配置,以4个计数周期为单位进行设置,最小长度为0个(即不输出PWM_TRIG,只输出ADC_TRIG),最大长度为252个计数当重复计数功能有效时,trig信号会在最后一次重复计数时产生。

02

ADC触发:在PWM_TRIG输出宽度的正中间,会输出一个pclk的ADC_TRIG信号,用于触发ADC采样。

03

PWM计数器溢出触发:当计数器溢出TRIG使能,且计数器发生向上溢出或向下溢出时,会产生一个pclk周期的TRIG信号,与自定义TRIG一致,可以根据配置将该trig信息映射到输出的trig[7:0]信号上。TRIGGER控制波形如下图所示:

触发SARADC采样:

PWM在任意模式下可以触发ADC,每一路输出独立的ADC触发信号,且每个周期可以设置1个ADC触发点,每个PWM只输出一个触发信号,不区分A.B分别触发。将SARADC配置寄存器(CTRL)中TRIG方式设置为PWM触发。每路PWM对应1个ADTRG值,当PWM计数到指定值,可触发ADC进行采样。具体配置方式如下:

配置PWMx路触发ADC控制寄存器,设置触发点是否有效以及PWM触发ADC时间点。

配置ADC的触发方式为PWM触发

使能PWM模块EN位,当计数值到达MATCH设置值时,触发ADC配置寄存器(CTRL)中选中的通道(CHx)进行采样,采样完成后,将产生EOC标志位,并产生ADC中断。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10855

    浏览量

    211605
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5186

    浏览量

    213819
  • ADC采样
    +关注

    关注

    0

    文章

    134

    浏览量

    12840

原文标题:SWM20x系列电机框架搭建:PWM(电机)篇

文章出处:【微信号:gh_737991c81b3d,微信公众号:恒美股份】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    微控制器PWM模块介绍

    : 一、PWM模块的工作原理 PWM模块的工作原理基于脉冲宽度调制威廉希尔官方网站 ,通过控制信号脉冲的持续时间和频率来产生一
    的头像 发表于 11-28 17:21 489次阅读

    什么是PID调节器的三种模式

    PID调节器是一广泛应用于工业控制系统的控制器,它根据给定的参考值(设定值)和实际测量值(过程变量)之间的偏差来调整控制信号,以达到控制
    的头像 发表于 11-06 10:38 374次阅读

    放大电路的失真分为三种

    放大电路的失真是指放大器输出信号与输入信号相比,出现了形状、幅度或相位上的偏差。失真可以分为多种类型,但最常见的三种是谐波失真、互调失真和截止失真。 1. 谐波失真(Harmonic
    的头像 发表于 10-15 11:09 1362次阅读

    基本放大电路有三种

    基本放大电路是电子电路至关重要的组成部分,它能够将输入信号放大到所需的电平,以便后续电路进行处理。电子工程,基本放大电路主要有三种形式
    的头像 发表于 10-15 11:07 1155次阅读

    电路电阻的连接形式有三种

    电路,电阻的连接形式主要有三种:串联、并联和混联。这三种连接方式电路设计和应用具有重要的
    的头像 发表于 08-20 10:43 2028次阅读

    常用的pwm跟踪控制方式是三种

    PWM(脉宽调制)跟踪控制是一广泛应用于电机控制、电源管理、通信等领域的威廉希尔官方网站 。它通过调整脉冲的宽度来控制输出信号的占空比,从而实现对系统的精确控制。常用的PWM跟踪控制方式主要有
    的头像 发表于 08-14 10:34 1138次阅读

    pwm逆变电路的控制方法有三种

    的大小。本文将介绍PWM逆变电路的三种控制方法:正弦波PWM控制、空间矢量PWM控制和预测控制。 正弦波PWM控制 正弦波
    的头像 发表于 08-08 15:04 1002次阅读

    放大电路的三种组态可以放大什么

    放大电路是电子学中非常重要的组成部分,它们可以将输入信号的幅度放大,以满足各种应用的需求。放大电路的三种基本组态包括共射放大电路、共集放大电路和共基放大电路。每种组态都有其特定的应用和特点。以下
    的头像 发表于 07-09 14:31 1043次阅读

    菱fx系列plc扩展模块配置软件的作用

    应用,为了满足不同的控制需求,通常需要对PLC进行扩展,以增加更多的输入/输出点、特殊功能模块等。菱FX系列PLC提供了丰富的扩展模块可以
    的头像 发表于 06-20 10:21 1183次阅读

    信号调制的三种基本方法

    引言 通信系统信号调制是一将低频信号转换为适合在信道传输的高频
    的头像 发表于 06-03 09:38 3801次阅读

    FPGA开发过程中配置全局时钟需要注意哪些问题

    FPGA开发过程中配置全局时钟是一个至关重要的步骤,它直接影响到整个系统的时序和性能。以下是配置全局时钟时需要注意的一些关键问题: 时钟抖动和延迟 :全局时钟资源的设计目标是实现最
    发表于 04-28 09:43

    IGBT模块封装过程中的威廉希尔官方网站 详解

    IGBT 模块封装采用了胶体隔离威廉希尔官方网站 ,防止运行过程中发生爆炸;第二是电极结构采用了弹簧结构,可以缓解安装过程中对基板上形成开裂,造成基板的裂纹;第
    发表于 04-02 11:12 1136次阅读
    IGBT<b class='flag-5'>模块</b>封装<b class='flag-5'>过程中</b>的威廉希尔官方网站
详解

    verilog端口类型有三种

    Verilog ,端口类型有三种:输入端口(input)、输出端口(output)和双向端口(inout)。 输入端口(input)用于接收来自其他模块
    的头像 发表于 02-23 10:28 2074次阅读

    边缘计算分为三种类型?边缘计算这项威廉希尔官方网站 可以应用在哪些领域?

    边缘计算分为三种类型?边缘计算这项威廉希尔官方网站 可以应用在哪些领域? 边缘计算是一分布式计算的模式,它将数据处理和存储的功能从传统的集中式云计算
    的头像 发表于 02-06 14:38 1388次阅读

    使用LTC3115-1的过程中,PWM/SYNC针总是燃烧,与系统地面连接,输出电压为零的原因?

    使用LTC3115-1过程中PWM/SYNC这个引脚老是烧掉,与地导通,同时输出电压为零。外围电路是根据datasheet上的电路进行设计的,请问是什么原因导致的呢?
    发表于 01-05 10:39