第十三章 PWM原理和应用_第1页
第十三章 PWM原理和应用_第2页
第十三章 PWM原理和应用_第3页
第十三章 PWM原理和应用_第4页
第十三章 PWM原理和应用_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十三章PWM原理和应用何宾2023.09主要内容PWM波形的原理高级PWM定时器原理设计实例一:呼吸灯的设计与实现设计实例二:直流风扇驱动和测速的实现PWM波形的原理使用MCU来控制直流电机的速度,通常使用脉冲宽度调制(PulseWidthModulation,PWM)PWM的特点是脉冲的周期保持恒定,而脉冲的高电平时间(称为占空)可变占空比表示为占空周期

PWM波形的原理当增加占空时(即增加脉冲的高电平时间,减少脉冲的低电平时间,总的周期保持不变),占空比的值将增加,在给定周期内隐含的直流信号分量的值(平均值)增加当减少占空时(即减少脉冲的高电平时间,增加脉冲的低电平时间,总的周期保持不变),占空比的值将减少,在给定周期内隐含的直流信号分量的值(平均值)减少高级PWM定时器原理STC32G系列单片机内部集成了8通道16位高级PWM定时器,分成两组周期可不同的PWM,分别命名为PWMA和PWMB,可分别单独设置第一组PWM/PWMA可配置成4组互补/对称/死区控制的PWM或捕捉外部信号,第二组PWM/PWMB可配置成4路PWM输出或捕捉外部信号高级PWM定时器原理第一组PWM/PWMA的时钟频率可以是系统时钟经过寄存器PWMA_PSCRH和PWMA_PSCRL进行分频后的时钟分频值可以是1~65535之间的任意值第二组PWM/PWMB的时钟频率可以是系统时钟经过寄存器PWMB_PSCRH和PWMB_PSCRL进行分频后的时钟分频值可以是1~65535之间的任意值两组PWM的时钟频率可分别单独设置高级PWM定时器原理第一组PWM定时器/PWMA有4个通道(PWM1P/PWM1N、PWM2P/PWM2N、PWM3P/PWM3N、PWM4P/PWM4N)每个通道都可以独立实现PWM输出(可设置带死区的互补对称PWM输出)、捕获和比较功能第二组PWM定时器/PWMB有4个通道(PWM5、PWM6、PWM7、PWM8)每个通道也可独立实现PWM输出、捕获和比较功能注:两组PWM定时器唯一的区别就是第一组可输出带死区的互补对称PWM,而第二组只能输出单端的PWM,其他功能完全相同。本章只介绍第一组高级PWM定时器(也称为PWMA)高级PWM定时器原理当使用第一组PWM定时器输出PWM波形时,可单独使能PWM1P/PWM2P/PWM3P/PWM4P输出,也可单独使能PWM1N/PWM2N/PWM3N/PWM4N输出例如:若单独使能了PWM1P输出,则PWM1N就不能再独立输出,除非PWM1P和PWM1N组成一组互补对称输出PWMA的4路输出是可以分别独立设置的可单独使能PWM1P和PWM2N输出,也可单独使能PWM2N和PWM3N输出若需要使用第一组PWM定时器进行捕获功能或测量脉宽时,输入信号只能从每路的正端输入即只有PWM1P/PWM2P/PWM3P/PWM4P才有捕获功能和测量脉冲功能高级PWM定时器原理两组高级PWM定时器对外部信号进行捕获时,可选择上升沿捕获或下降沿捕获如果需要同时捕获上升沿和下降沿,则可将输入信号同时接入到两路PWM,使能其中一路捕获上升沿,另一路捕获下降沿当外部输入信号同时接入到两路PWM时,可同时捕获信号的周期值和占空比值高级PWM定时器原理

--高级PWM模块的功能第一组PWM定时器/PWMA模块的主要功能包括:16位向上、向下、向上/下自动加载计数器允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器16位可编程预分频器,允许将计数器时钟频率除以1到65535之间的任何因子(也可“动态”)同步电路,使用外部信号控制定时器,并将多个定时器互联在一起高级PWM定时器原理

--高级PWM模块的功能4个独立通道可以配置成输入捕获输出比较PWM生成(边缘和中心对齐模式)单脉冲模式输出支持带有可编程“死区”时间的互补输出刹车/终止输入,将定时器的输出信号置于安全的用户可选配置中高级PWM定时器原理

--高级PWM模块的功能产生中断的事件包括:更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)触发事件(计数器启动、停止、初始化或由内部/外部触发计数)输入捕获输出比较刹车信号(break)高级PWM定时器原理

--高级PWM模块内部结构高级PWM定时器原理

--高级PWM模块内部结构TIx:外部时钟输入信号x对于通道1来说,TI1为PWM1P、PWM2P和PWM3P进行逻辑“异或”后的信号;对于通道2、通道3和通道4来说,TIx为PWMxP引脚信号TIxF:TIx信号经过ICxF数字滤波后的信号TIxFP:TIxF信号经过CC1P/CC2P边沿检测器后的信号TIxF_ED:TIxF的边沿信号(TIxF上升沿逻辑“或”TIxF下降沿后生成的信号)TIxFP1:TIxF信号经过CC1P边沿检测器后的信号TIxFP2:TIxF信号经过CC2P边沿检测器后的信号高级PWM定时器原理

--高级PWM模块内部结构ICx:通过CCxS[1:0]所选择的通道x的捕获输入信号OCxREF:输出通道x输出的参考波形(中间波形)OCx:通道x的主输出信号(信号OCxREF经过CCxP处理后的信号)OCxN:通道x的互补输出信号(信号OCxREF经过CCxNP处理后的信号)ITR1:内部触发输入信号1ITR2:内部触发输入信号2TRC:固定为TI1_EDTRGI:经过TS多路选择器后的触发输入信号高级PWM定时器原理

--高级PWM模块内部结构TRGO:经过MMS多路选择器后的触发输出信号ETR:外部触发输入信号(PWMETI1引脚信号)ETRP:ETR信号经过ETP边沿检测器以及ETPS分频后的信号ETRF:ETRP信号经过ETF数字滤波器后的信号BRK:刹车输入信号(PWMFLT)CK_PSC:预分频时钟,PSC预分频器的输入时钟CK_CNT:PSC预分频器的输出时钟,作为PWMA定时器的时钟源,驱动计数器注:信号中的字符x表示对应的具体通道号(x=1、2、3或4)高级PWM定时器原理

--时基单元PWMA的时基单元16位向上/向下计数器(PWMA_CNTRH和PWMA_CNTRL)16位自动重载寄存器(PWMA_ARRH和PWMA_ARRL)重复计数器(PWMA_RCR)预分频器(PWMA_PSCRH和PWMA_PSCRL)注:图中的自动重加载寄存器已经预加载高级PWM定时器原理

--时基单元写入或读取自动重加载寄存器访问预加载寄存器根据寄存器PWMA_CR1中的预加载使能位ARPE,将预加载寄存器的内容永久传输到影子寄存器(ARPE=”0”)或者在每次更新事件(UpdateEvent,UEV)时将预加载寄存器的内容传输到影子寄存器(ARPE=”1”)注:当PWMA_CR1寄存器中的UDIS位/PWMA_CR1.1位为“1”时,禁止更新事件当发生更新事件时,PWMA_PSCR寄存器的值也将写到预分频器中仅当寄存器PWMA_CR1的CEN位/PWMA_CR1.0位为“1”时,时基单元中的16位计数器才能计数,否则禁止该16位计数器工作注:实际上,在CEN位使能的一个时钟周期后计数器才开始计数。高级PWM定时器原理

--时基单元在STC32G系列单片机的高级PWM模块中,产生更新事件的条件包括以下:计数器向上/向下溢出软件将寄存器PWMA_EGR寄存器的UG位/PWMA_EGR.0位设置为“1”时钟/触发控制器产生了触发事件时基单元

--读写16位计数器写计数器的操作没有缓存,在任何时候都可以写PWMA_CNTRH和PWMA_CNTRL寄存器因此为避免写入了错误的数值,一般建议不要在计数器运行时写入新的数值读计数器的操作带有8位的缓存用户必须先读定时器的高字节,在用户读了高字节后,低字节将被自动缓存,缓存的数据将会一直保持直到16位数据的读操作完成时基单元

--写PWMA_ARR寄存器预加载寄存器中的值将写入16位的{PWMA_ARRH,PWMA_ARRL}寄存器中,此操作由两条指令完成,每条指令写入一个字节在写预加载寄存器时,必须先写高字节,后写低字节当写预加载寄存器时,锁定影子寄存器,并保持到写操作结束为止时基单元

--预分频器

时基单元

--预分频器时基单元

--向上计数模式在向上计数模式中,计数器从0一直计数到用户定义的比较值{PWMA_ARRH,PWMA_ARRL},然后重新从0开始计数并产生一个计数器溢出事件此时如果PWMA_CR1寄存器的UDIS位为“0”,则产生一个更新事件(UEV)当通过软件或者通过触发控制器将PWMA_EGR寄存器的UG位设置为“1”也可以产生一个更新事件时基单元

--向上计数模式当软件将PWMA_CR1寄存器的UDIS位设置为“1”时,将禁止更新事件(UEV),这样可以避免在更新预加载寄存器时更新影子寄存器在清除UDIS位(UDIS=”0”)之前,将不会产生更新事件但是,在应该产生更新事件时,仍会将计数器清0,同时也会将预分频器清0(但预分频器的数值保持不变)此外,如果将PWMA_CR1寄存器中的URS位/PWMA_CR1.2设置为“1”(更新请求源),设置UG位将产生一个更新事件UEV,但硬件不设置UIF标志(即不产生中断请求)这是为了避免在捕获模式下清除计数器时,同时产生更新和捕获中断时基单元

--向上计数模式当发生一个更新事件时,将更新所有的寄存器,硬件依据URS位同时设置更新标志位(PWMA_SR寄存器的UIF位)自动装载影子寄存器被重新置入预装载寄存器的值{PWMA_ARRH,PWMA_ARRL}预装载寄存器的值{PWMA_PSCH,PWMA_PSCL}将加载到预分频器的缓存器中时基单元

--向上计数模式

时基单元

--向上计数模式时基单元

--向上计数模式

时基单元

--向上计数模式时基单元

--向下计数模式在向下模式中,计数器从自动加载的值{PWMA_ARRH,PWMA_ARRL}开始向下计数到0,然后再从自动装载的值重新开始计数,并产生一个计数器向下溢出事件如果将PWMA_CR1寄存器的UDIS位设置为“0”(清零),则会产生一个更新事件(UEV)时基单元

--向下计数模式

时基单元

--向下计数模式时基单元

--向下计数模式

时基单元

--向下计数模式时基单元

--中心对齐模式在中心对齐(向上/向下)模式下,计数器从0开始计数到{PWMA_ARRH,PWMA_ARRL}的值,并产生一个计数器上溢事件;然后从{PWMA_ARRH,PWMA_ARRL}的值向下计数到0,并产生一个计数器下溢事件。再次从0开始重新计数,依次重复上面的过程在该模式下,不能写PWMA_CR1寄存器的DIR位(该位用于控制计数方向)由硬件更新并指示当前的计数方向时基单元

--中心对齐模式如果定时器带有重复计数器,在重复了由PWMA_RCR指定次数的向上和向下溢出之后会产生更新事件(UEV)否则,在每一次向上和向下溢出都会产生更新事件其他情况与向上计数模式和向下计数模式相同时基单元

--中心对齐模式

时基单元

--中心对齐模式在使用中心对齐模式时,需要注意以下几点:启动中心对齐模式时,计数器将按原有的向上/向下的配置计数PWMA_CR1寄存器中的DIR位将决定计数器是向上还是向下计数软件不能同时修改DIR位和CMS位的值不推荐在中心对齐模式下,计数器正在计数时写计数器的值,这将导致不能预料的后果。具体来说,表现在:向计数器写入了比自动装载值更大的数值时(PWMA_CNT>PWMA_ARR),但计数器的计数方向不发生改变。例如计数器已经向上溢出,但计数器仍然向上计数向计数器写入了0或者PWMA_ARR的值,但未发生更新事件时基单元

--中心对齐模式在中心对齐模式下,安全使用计数器的方法是在启动计数器之前用软件将PWMA_EGR寄存器的UG位设置为“1”以产生一个更新事件,并且不在计数器计数时修改计数器的值时基单元

--重复计数器前面介绍了计数器向上/向下溢出时产生更新事件(UEV)的方法。事实上,它只能在重复计数器的值达到0时才能产生。该特性对产生PWM信号非常有用这意味着在每N次计数向上/向下溢出时,数据从预装载寄存器传输到影子寄存器(PWMA_ARR自动重加载寄存器,PWMA_PSC预加载寄存器,还有在比较模式下的捕获/比较寄存器PWMA_CCRx)其中,N为PWMA_RCR重复计数寄存器中设置的值时基单元

--重复计数器

时基单元

--重复计数器重复计数器是自动加载的,重复速率由PWMA_RCR寄存器定义的值确定当由软件产生更新事件(通过将PWMA_EGR寄存器中的UG位设置为“1”)或者通过硬件的时钟/触发控制器产生,则立即发生更新事件,而与重复计数器PWMA_RCR的值无关,并且将PWMA_RCR寄存器中的内容重新加载到重复计数器中高级PWM定时器原理

--时钟/触发控制器时钟/触发控制器允许用户选择计数器的时钟源,输入触发信号和输出信号时钟/触发控制器

--预分频时钟

时钟/触发控制器

--内部时钟源如果同时禁止了时钟/触发模式控制器和外部触发输入即PWMA_SMCR寄存器的SMS字段设置为“000“,且PWMA_ETR寄存器的ECE为设置为”0“,则CEN、DIR和UG位是实际上的控制位,并且只能由软件修改(仍自动清除UG位)一旦将CEN位设置为“1”,则预分频器的时钟就由内部时钟提供时钟/触发控制器

--外部时钟源模式1当PWMA_SMCR寄存器的SMS字段设置为“111”时,设置为外部时钟源模式1在该模式下,使用外部时钟输入(TIx)。在该模式下,计数器可以在选定输入端的每个上升沿或下降沿计数当连接外部时钟TI2时的连接结构时钟/触发控制器

--外部时钟源模式1将向上模式计数的计数器配置为在TI2输入信号的上升沿计数,主要步骤包括:将PWMA_CCMR2寄存器的CC2S字段设置为“01”使用通道2检测TI2输入的上升沿配置PWMA_CCMR2寄存器的IC2F[3:0]字段选择输入滤波器带宽。如果不需要滤波器,将IC2F设置为“0000”注:捕获预分频器不用作触发,所以不需要对它进行配置,同样也不需要配置TI2S位,他们仅用来选择输入捕获源将PWMA_CCER1寄存器的CC2P位设置为“0”选择上升沿极性时钟/触发控制器

--外部时钟源模式1将PWMA_SMCR寄存器的SMS字段设置为“111”使用外部时钟模式1将PWMA_SMCR寄存器的TS字段设置为“110”将TI2作为输入源将PWMA_CR1寄存器的CEN位设置为“1”启动计数器时钟/触发控制器

--外部时钟源模式1在该模式下,当TI2出现上升沿时,计数器计数一次,且触发标识位(将PWMA_SR1寄存器的TIF位设置为“1”)如果在PWMA_IER寄存器中使能了中断,则会产生中断请求在TI2的上升沿和计数器实际时钟之间的延时取决于在TI2输入端的重新同步电路时钟/触发控制器

--外部时钟源模式2当PWMA_ETR寄存器的ECE位设置为“1”时,设置为外部时钟源模式2时钟/触发控制器

--外部时钟源模式2将向上计数模式的计数器配置为在ETR信号的每2个上升沿时计数一次,主要步骤包括:时钟/触发控制器

--外部时钟源模式2该例子中不使用滤波器将PWMA_ETR寄存器的ETF[3:0]字段设置为“0000”设置预分频器将PWMA_ETR寄存器的ETPS[1:0]字段设置为“01”选择ETR的上升沿检测将PWMA_ETR寄存器的ETP位设置为“0”选择外部时钟模式2将PWMA_ETR寄存器中的ECE位设置为“1”启动计数器将PWMA_CR1寄存器的CEN位设置为“1”时钟/触发控制器

--触发同步第一组PWM定时器/PWMA的计数器使用三种模式与外部的触发信号同步,包括标准触发模式复位触发模式门控触发模式触发同步

--标准触发模式计数器的使能(CEN)依赖于选中的输入端上的事件【例13-5】在该例子中,计数器在TI2输入的上升沿开始向上计数将PWMA_CCER1寄存器的CC2P位设置为“0”选择TI2上升沿做为触发条件将PWMA_SMCR寄存器的SMS字段设置为“110”选择计数器为触发模式将PWMA_SMCR寄存器的TS字段设置为“110”选择TI2作为输入源触发同步

--标准触发模式当TI2出现一个上升沿时,计数器开始在内部时钟驱动下计数,同时将TIF标志设置为“1”TI2上升沿和计数器启动计数之间的延时取决于TI2输入端的重同步电路触发同步

--复位触发模式在复位触发模式下,当发生一个触发输入事件时,能够重新初始化计数器和它的预分频器。同时,如果PWMA_CR1寄存器的URS位设置为“0”,则产生一个更新事件UEV。然后,更新所有的预加载寄存器(包括PWMA_ARR和PWMA_CCRx寄存器)触发同步

--复位触发模式【例13-6】在该例子中,TI1输入端的上升沿导致向上计数器被清零将PWMA_CCER1寄存器的CC1P位设置为“0“配置为只检测TI1的上升沿将PWMA_SMCR寄存器的SMS字段设置为“100“定时器配置为复位触发模式将PWMA_SMCR寄存器的TS字段设置为“101”选择TI1作为输入源将PWMA_CR1寄存器的CEN位设置为“1”启动计数器触发同步

--复位触发模式根据上面的配置,计数器在内部时钟的驱动下一直计数,直到TI1出现上升沿为止一旦TI1出现上升沿,则将计数器清零,然后重新从零开始计数同时,将PWMA_SR1寄存器的TIF位设置为“1”如果PWMA_IER寄存器的TIE位设置为“1”,则产生一个中断请求触发同步

--复位触发模式当自动重加载寄存器PWMA_ARR的内容为0x36时,在TI1上升沿和计数器的实际复位之间的延时取决于TI1输入端的重同步电路触发同步

--门控触发模式当选择门控触发模式下,由选中输入端信号的电平使能计数器工作【例13-7】在该例子中,只有在TI1为逻辑“0”(低电平)时才向上计数将PWMA_CCER1寄存器的CC1P位设置为“1”配置为只检测TI1上的低电平将PWMA_SMCR寄存器的SMS字段设置为“101”选择定时器为门控触发模式将PWMA_SMCR寄存器的TS字段设置为“101”选择TI1作为输入源将PWMA_CR1寄存器的CEN位设置为“1”使能计数器工作触发同步

--门控触发模式在该配置中,只要TI1为逻辑“0”(低电平),计数器在内部时钟的驱动下开始计数,直到TI1变成逻辑“1”(高电平)为止。当启动/停止计数器时,硬件都会将TIF标志设置为“1”TI1上升沿和计数器实际停止之间的延时取决于TI1输入端的重同步电路触发同步

--门控触发模式外部时钟模式2也可以与另一个输入信号的触发模式一起使用例如,将ETR信号用作外部时钟的输入,另一个输入信号用作触发输入(支持标准触发模式、复位触发模式和门控触发模式)注:不能通过PWMA_SMCR寄存器的TS位将ETR配置成TRGI触发同步

--门控触发模式【例13-8】在该例子中,一旦TI1上出现上升沿,计数器即在ETR的每一个上升沿向上计数一次将PWMA_ETR寄存器的ETPS字段设置为“00”禁止预分频将PWMA_ETP寄存器的ETP位设置为“0”外部触发信号ETR的上升沿有效将PWMA_ETP寄存器的ECE位设置为“1”使能外部时钟模式2将PWMA_CCER1寄存器的CC1P位设置为“0”选择TI1的上升沿触发触发同步

--门控触发模式将PWMA_SMCR寄存器的SMS字段设置为“110”选择定时器为触发模式将PWMA_SMCR寄存器的TS字段设置为“101”选择TI1作为输入源触发同步

--门控触发模式在该配置中,当TI1上出现一个上升沿时,将TIF标志设置为“1”,在ETR的上升沿计数器开始计数TI1信号的上升沿和计数器实际时钟之间的延时取决于TI1输入端的重同步电路ETR信号的上升沿和计数器实际时钟之间的延时取决于ETRP输入端的重同步电路时钟/触发控制器

--与PWMB同步在STC32G系列单片机中,定时器在内部互联,用于同步或链接定时器当某个定时器配置为主模式时,可以将输出触发信号(TRGO)送到那些配置为从模式的定时器,以完成复位操作、启动操作、停止操作或者作为那些定时器的驱动时钟详见STC32G系列单片机技术参考手册第23章23.4.6一节内容高级PWM定时器原理

--捕获/比较通道PWM1P、PWM2P、PWM3P、PWM4P可以用作输入捕获,PWM1P/PWM1N、PWM2P/PWM2N、PWM3P/PWM3N、PWM4P/PWM4N可以输出比较这个功能可以通过配置捕获/比较通道模式寄存器PWMA_CCMRi的CCiS通道(其中,i为具体的通道编号,i为1、2、3或4)选择位来实现每一个捕获/比较通道都是围绕着一个捕获/比较寄存器(包含影子寄存器)来构建的,包括:捕获的输入部分(数字滤波、多路复用和预分频器)和输出部分(比较器和输出控制)高级PWM定时器原理

--捕获/比较通道捕获/比较通道1的主要电路(其他通道与此类似)捕获/比较模块包含一个预加载寄存器和一个影子寄存器。读写过程仅操作预加载寄存器在捕获模式下,捕获发生在影子寄存器上,然后再复制到预加载寄存器中在比较模式下,预加载寄存器的内容复制到影子寄存器中,然后影子寄存器的内容和计数器进行比较高级PWM定时器原理

--捕获/比较通道当PWMA_CCMRi寄存器的CCiS位设置为“0”时,将对应的i通道配置成输出模式当通道配置为输入模式时,对16位寄存器{PWMA_CCRiH,PWMA_CCRiL}的读操作类似于对计数器的读操作(先读取寄存器PWMA_CCRiH,再读取寄存器PWMA_CCRiL)当发生捕获时,将计数器的内容捕获到{PWMA_CCRiH,PWMA_CCRiL}对应的影子寄存器,然后再复制到预加载寄存器中对16位寄存器{PWMA_CCRiH,PWMA_CCRiL}的写操作通过预加载寄存器实现先写寄存器PWMA_CCRiH,再写寄存器PWMA_CCRiL捕获/比较通道

--输入通道输入模块的结构捕获/比较通道

--输入通道输入模块对相应的输入信号TIx采样,并产生一个滤波后的信号TIxF。然后,包含极性选择的边沿检测器生成一个信号TIxFPx,它可以作为触发模式控制器的输入触发或者作为捕获控制。该信号通过预分频后进入捕获寄存器ICxPS捕获/比较通道

--输入捕获模式在输入捕获模式下,当检测到ICi信号上相应的边沿后,将计数器当前值锁存到捕获/比较寄存器PWMA_CCRx中当发生捕获事件时,将PWMA_SR寄存器中相应的CCiIF标志设置为“1”如果将PWMA_IER寄存器的CCiIE位设置为“1”,则产生中断请求如果发生捕获事件时CCiIF标志已经为高,则PWMA_SR2寄存器的CCiOF位(重复捕获标志位)设置为“1”给CCiIF位写“0”或读取保存在PWMA_CCRiL寄存器中的捕获数据都可清除CCiIF位给CCiOF位写“0”可清除CCiOF位捕获/比较通道

--输入捕获模式

捕获/比较通道

--输入捕获模式选择TI1通道的有效转换边沿将PWMA_CCER1寄存器的CC1P位设置为“0”(上升沿)配置输入预分频器在该例子中,希望在每一个有效的电平转换时刻发生捕获,因此禁止预分频器,将PWMA_CCMR1寄存器的IC1PS字段设置为“00”将PWMA_CCER1寄存器的CC1E位设置为“1”允许捕获模式(可选)将PWMA_IER寄存器中的CC1IE位设置为“1”允许相关的中断请求捕获/比较通道

--输入捕获模式当发生一个输入捕获时:当产生有效的电平转换时,计数器的值加载到PWMA_CCR1寄存器设置CC1IF位为“1”当发生至少2个连续的捕获且CC1IF仍为“1”时,也将CC1OF位设置为“1”如果将CC1IE位设置为“1”,则会产生一个中断捕获/比较通道

--输入捕获模式为了处理捕获溢出事件(CC1OF位),建议在读出重复捕获标志之前读取数据,这是为了避免丢失在读出捕获溢出标志之后和读取数据之前可能产生的重复捕获信息注:将PWMA_EGR寄存器中相应的CCiG位设置为“1”,使得通过软件产生输入捕获中断捕获/比较通道

--输入捕获模式【例13-10】在该例子中,测量PWM输入信号该模式是输入捕获模式的一个特例,除下面的不同外,其他与输入捕获模式相同,即:捕获/比较通道

--输入捕获模式将两个ICi信号映射到同一个TIi输入这两个ICi信号的有效边沿的极性相反其中一个TIiFP信号用作触发输入信号,而将触发模式控制器配置成复位触发模式捕获/比较通道

--输入捕获模式

捕获/比较通道

--输入捕获模式选择TI1FP2的有效极性(捕获数据到PWMA_CCR2)将PWMA_CCER1寄存器的CC2P位设置为“1”,配置为下降沿有效选择有效的触发输入信号将PWMA_SMCR寄存器中的TS字段设置为“101”,选择TI1FP1为触发源配置触发模式控制器为复位触发模式将PWMA_SMCR寄存器中的SMS字段设置为“100”使能捕获将PWMA_CCER1寄存器中CC1E位和CC2E位均设置为“1”捕获/比较通道

--输入捕获模式PWM信号的实测结果捕获/比较通道

--输出模块输出模块会产生一个用来做参考的中间波形,称为OCiREF(高有效)刹车/终止(Break)功能和极性的处理都在模块的最后处理捕获/比较通道

--输出模块通道1带互补输出的输出模块结构捕获/比较通道

--强制输出模式在强制输出模式下,输出比较信号能够直接由软件强制为逻辑“1”(高电平)或逻辑“0”(低电平),而不依赖于输出比较寄存器和计数器间的比较结果将PWMA_CCMRi寄存器的OCiM字段设置为“101”可强制OCiREF信号为逻辑“1”(高电平)将PWMA_CCMRi寄存器的OCiM字段设置为“100”可强制OCiREF信号为逻辑“0”(低电平)OCi/OCiN的输出是逻辑“1”(高电平)还是逻辑“0”(低电平),取决于PWMA_CCER1寄存器中CCiP位和CCiNP位设置该模式下,仍然在PWMA_CCRi影子寄存器和计数器之间进行比较,并修改相应的标志,且仍然会产生相应的中断捕获/比较通道

--输出比较模式该模式用于控制一个输出波形或指示已经到达一段给定的时间。当计数器与捕获/比较寄存器的内容匹配时,有如下操作:根据不同的输出比较模式,相应的OCi输出信号:保持不变(OCiM字段设置为“000”)设置为有效电平(OCiM字段设置为“001”)设置为无效电平(OCiM字段设置为“010”)翻转(OCiM字段设置为“011”)设置中断状态寄存器中的标志位。将PWMA_SR1寄存器中的CCiIF位设置为“1”如果将PWMA_IER寄存器中的CCiIE位设置为“1”,则产生一个中断捕获/比较通道

--输出比较模式PWMA_CCMRi寄存器的OCiM位用于选择输出比较模式,而PWMA_CCMRi寄存器的CCiP位用于选择有效和无效的电平极性。PWMA_CCMRi寄存器的OCiPE位用于选择PWMA_CCRi寄存器是否需要使用预加载寄存器在输出比较模式下,更新事件UEV对OCiREF和OCi输出没有影响时间精度为计数器的一个计数周期输出比较模式也能用来输出一个单脉冲捕获/比较通道

--输出比较模式输出比较模式的配置步骤:选择计数器时钟(内部、外部或者预分频器)将相应的数据写入PWMA_ARR和PWMA_CCRi寄存器中如果要产生一个中断请求,设置CCiIE位选择输出模式步骤:将OCiM字段设置为“011”,在计数器与CCRi匹配时翻转OCiM管脚的输出将OCiPE位设置为“0”,禁用预加载寄存器将CCiP位设置为“0”,选择高电平为有效电平将CCiE位设置为“1”,使能输出将PWMA_CR1寄存器的CEN位设置为“1“,启动计数器捕获/比较通道

--输出比较模式通过PWMA_CCRi寄存器能够在任何时候通过软件进行更新以控制输出波形,条件是未使能预加载寄存器(即PWMA_CCMRi寄存器的OCiPE位设置为“0”);否则,只能在发生下一次更新事件时更新PWMA_CCRi的影子寄存器在输出比较模式下翻转OC1的波形捕获/比较通道

--PWM模式PWM模式可以产生一个由PWMA_ARR寄存器确定频率,由PWMA_CCRi寄存器确定占空比的信号将PWMA_CCMRi寄存器中的OCiM位设置为“110”(PWM模式1)或“111”(PWM模式2),能够独立地设置每个OCi输出通道产生一路PWM必须将PWMA_CCMRi寄存器的OCiPE位设置为“1”,以使能相应的预加载寄存器;也可将PWMA_CR1寄存器的ARPE位设置为“1”,以使能自动重加载的预加载寄存器(在向上计数模式或中心对齐模式)捕获/比较通道

--PWM模式由于仅当发生一个更新事件的时候,才能将预加载寄存器的内容发送到影子寄存器,因此在计数器开始计数之前,必须将PWMA_EGR寄存器的UG位设置为“1”以初始化所有的寄存器捕获/比较通道

--PWM模式通过软件设置PWMA_CCERi寄存器中的CCiP位以确定OCi的极性,它可以设置为逻辑“1”(高电平)有效或逻辑“0”(低电平)有效PWMA_CCERi和PWMA_BKR寄存器中的CCiE、MOE、OISi、OSSR和OSSI位的组合用于控制OCi的输出使能在PWM模式1或PWM模式2,根据计数器的计数方向,PWMA_CNT始终与PWMA_CCRi进行比较,以确定是否满足PWMA_CCRi≤PWMA_CNT或PWMA_CNT≤PWMA_CCRi根据PWMA_CR1寄存器中CMS字段的值,定时器能够产生边沿对齐的PWM信号或中心对齐的PWM信号PWM模式

--PWM边沿对齐模式向上计数模式当PWMA_CR1寄存器中的DIR位设置为“0”时,计数器工作在向上计数模式【例13-11】向上计数模式时,PWM模式1的例子当PWMA_CNT<PWMA_CCRi时,PWM参考信号OCiREF为逻辑“1”(高电平),否则为逻辑“0”(低电平)如果PWMA_CCRi的比较值大于PWMA_ARR中的重加载值,则OCiREF为逻辑“1”(高电平)如果PWMA_CCRi寄存器的值为0,则OCiREF保持为逻辑“0”(低电平)PWM模式

--PWM边沿对齐模式采用边沿对齐,且ARR=8时的PWM模式1波形PWM模式

--PWM边沿对齐模式向下计数模式当PWMA_CR1寄存器的DIR位设置为“1”时,计数器工作在向下计数模式【例13-12】向下计数模式时,PWM模式1的例子当PWMA_CNT>PWMA_CCRi时,PWM参考信号OCiREF为逻辑“0”(低电平),否则为逻辑”1“(高电平)如果PWMA_CCRi中的比较值大于PWMA_ARR中的自动重加载值,则OCiREF保持为逻辑”1“(高电平)该模式下不能产生0%的PWM波形PWM模式

--PWM边沿对齐模式中心对齐模式当PWMA_CR1寄存器中的CMS字段的值不等于“00“时,计数器工作在中心对齐模式,所有其他的配置对OCiREF/OCi信号都有相同的作用根据CMS字段的值,可以在计数器向上计数、向下计数或向上和向下计数时将比较标志设置为“1“PWMA_CR1寄存器中的DIR位由硬件自动更新,不需要软件修改它PWM模式

--PWM边沿对齐模式【例13-13】中心对齐模式下,PWM模式1的例子在该例子中,PWMA_ARR寄存器的值为8。在下面三种情况下,将标志为设置为“1”,包括:只有在计数器向下计数时(CMS字段设置为“01”)只有在计数器向上计数时(CMS字段设置为“10”)在计数器向上和向下计数时(CMS字段设置为“11”)中心队对齐模式,且ARR=8时的波形,如下PWM模式

--PWM边沿对齐模式捕获/比较通道

--单脉冲模式单脉冲模式(OnePulseMode,OPM)允许计数器响应一个激励,并在一个程序可控的延时之后产生一个脉宽可控的脉冲可以通过时钟/触发控制器启动计数器,在输出比较模式或者PWM模式下产生波形。将PWMA_CR1寄存器的OPM位设置为“1”时,将设置单脉冲模式在该模式下,计数器自动在下一个更新事件UEV时停止。仅当比较值与计数器的初始值不同时,才能产生一个脉冲。在启动定时器之前(即定时器正在等待触发),必须按如下配置:在向上计数模式时,CNT<CCRi≤ARR在向下计数模式时,CNT>CCRi捕获/比较通道

--单脉冲模式

捕获/比较通道

--单脉冲模式

捕获/比较通道

--单脉冲模式

捕获/比较通道

--互补输出和死区插入PWMA能够输出两路互补信号,并且能够管理输出的瞬时关断和接通,通常将这段时间通常称为死区根据所外接器件特性(包括电平转换器的固有延迟、电源开关引起的延迟等),用户可以调整死区时间配置PWMA_CCERi寄存器中的CCiP和CCiNP位,可以为每一个输出单独选择极性(主输出OCi或互补输出OCiN)通过位的组合(即PWMA_CCERi寄存器的CCiE和CCiNE位,PWMA_BKR寄存器中的MOE、OISi、OISiN、OSSI和OSSR位),以控制互补信号OCi和OCiN特别是在转换到空闲状态(即MOE位设置为“0”)时,激活死区控制捕获/比较通道

--互补输出和死区插入同时设置CCiE(OCi输入捕获/比较输出使能)和CCiNE(OCiN比较输出使能)位将插入死区如果存在刹车/终止(Break)电路,还需要设置MOE位每一个通道都有一个8位的死区时间发生器(DeadTimeGenerator,DTG)参考信号OCiREF可以产生两路输出OCi和OCiN捕获/比较通道

--互补输出和死区插入如果OCi和OCiN为高有效,则:OCi输出与参考信号相同,但它的上升沿相对于参考信号的上升沿有一个延迟OCiN输出与参考信号相反,但它的上升沿相对于参考信号的下降沿有一个延迟如果延迟大于当前有效的输出宽度(OCi或者OCiN),则不会产生相应的脉冲捕获/比较通道

--互补输出和死区插入死区发生器的输出信号和当前参考信号OCiREF之间的关系(假设CCiP=0、CCiNP=0、MOE=1、CCiE=1并且CCiNE=1)每一个通道的死区延迟都是相同的,是通过编程PWMA_DTR寄存器中的DTG字段来配置

带死区插入的互补输出捕获/比较通道

--互补输出和死区插入

死区波形延迟大于负脉冲捕获/比较通道

--互补输出和死区插入

死区波形延迟大于正脉冲捕获/比较通道

--互补输出和死区插入下面介绍重定向OCiREF到OCi或OCiN在输出模式下(包括强制输出、输出比较或PWM输出),通过配置PWMA_CCERi寄存器的CCiE和CCiNE位,可以将OCiREF重新定向到OCi或者OCiN捕获/比较通道

--互补输出和死区插入这个功能可以在互补输出处于无效电平时,在某个输出上送出一个特殊的波形(例如PWM或者静态有效电平)。另一个作用是,让两个输出同时处于无效电平,或同时处于有效电平(此时仍然是带死区的互补输出)注:当只使能OCiN(即CCiE位设置为“0”,CCiNE位设置为“1”)时,它不会反相,而当OCiREF变高时立即有效。例如,如果CCiNP位设置为“0”,则OCiN=OCiREF。另一方面,当都使能OCi和OCiN(即CCiE位和CCiNE位均设置为“1”)时,当OCiREF为高时OCi有效;而OCiN相反,当OCiREF低时OCiN变为有效捕获/比较通道

--六步PWM生成当在一个通道上需要互补输出时,预装载位有OCiM、CCiE和CCiNE。在发生COM换相事件时,将这些预加载位传输到影子寄存器位。这样,就可以预先设置好下一步骤配置,并在同一个时刻同时修更改所有通道的配置将PWMA_EGR寄存器的COMG位设置为“1”,可由软件产生COM事件,或在TRGI上升沿时由硬件产生捕获/比较通道

--六步PWM生成当发生COM事件时,三种不同配置下OCx和OCxN输出捕获/比较通道

--使用刹车功能刹车功能常用于马达控制中。当使用刹车功能时,根据PWMA_BKR寄存器中的MOE、OSSI和OSSR位,修改输出使能信号和无效电平系统复位后,禁止刹车电路,MOE位为“0”。PWMA_BKR寄存器中的BKE位设置为“1”,则可以使能刹车功能。将PWMA_BKR寄存器的BKP位设置为“1”,则可以修改刹车输入信号的极性用户可以同时修改BKE位和BKP位捕获/比较通道

--使用刹车功能MOE下降沿允许和时钟模块异步,因此在实际信号(作用在输出端)和同步控制位(在PWMA_BKR寄存器中)之间设置了一个重同步电路这个重同步电路会在异步信号和同步信号之间产生延迟特别的,如果当它为低时将MOE位设置为“1“,则在读出它之前必须先插入一个延时(空指令)才能读到正确的值。这是因为写入的是异步信号而读的是同步信号捕获/比较通道

--使用刹车功能当发生刹车时(在刹车输入端出现选定的电平),有下面的行为:异步清除MOE位,将输出设置为无效状态、空闲状态或者复位状态(由PWMA_BKR寄存器的OSSI位选择)在关闭MCU的振荡器时该特性依然有效一旦MOE位为“0“,则每一个输出通道输出由PWMA_OISR寄存器的OISi位设置电平如果OSSI位为”0“,定时器不再控制输出使能信号;如果OSSI位为”1“,输出使能信号始终为高捕获/比较通道

--使用刹车功能当使用互补输出时:首先将输出设置为复位状态(即无效状态,取决于极性)。这是异步操作,即使定时器没有时钟时,该功能也有效如果定时器的时钟依然存在,死区生成器将会重新生效,在死区之后根据OISi和OISiN位指示的电平驱动输出端口。即使在这种情况下,也不会同时将OCi和OCiN驱动到有效的电平注:因为重新同步MOE,死区时间比通常情况下长一些(大约2个时钟周期)捕获/比较通道

--使用刹车功能如果PWMA_IER寄存器的BIE位设置为“1”,则在PWMA_SR1寄存器中的BIF位(刹车状态标志)为“1”时,产生一个中断如果PWMA_BKR寄存器中的AOE位设置为“1”,在下一个更新事件UEV时自动将MOE位设置为”1”。例如,它可以用于控制波形;否则,MOE始终保持为“0”直到再次设置为“1”。该特性可以用在安全方面,用户可以把刹车输入连接到电源驱动的报警输出、热敏传感器或其他安全器件注:刹车输入为电平有效。所以,当刹车输入有效时,不能同时(自动地或者通过软件)设置MOE。同时,也不能清除状态标志BIF捕获/比较通道

--使用刹车功能由BRK输入(BKIN)产生刹车,通过编程可以设置它的有效极性,且由PWMA_BKR寄存器的BKE位使能或禁止除了刹车输入和输出管理,刹车电路中还实现了写保护以保证应用程序的安全它允许用户冻结下面的配置参数包括OCi极性和被禁止时的状态、OCiM配置、刹车使能和极性通过PWMA_BKR寄存器的LOCK字段,用户可以从三种级别的保护中选择一种在复位MCU后,只能修改一次LOCK字段捕获/比较通道

--使用刹车功能刹车响应的输出(不带互补输出的通道)捕获/比较通道

--使用刹车功能带互补输出的刹车响应的输出(PWMA互补输出)捕获/比较通道

--在外部事件发生时清除OCiREF信号对于一个给定的通道,当把PWMA_CCMRi寄存器中对应的OCiCE位设置为“1”时,在ETRF输入端的高电平能够拉低OCiREF信号,OCiREF信号将保持为低直到发生下一次的更新事件UEV为止该功能只能用于输出比较模式和PWM模式,而不能用于强制模式捕获/比较通道

--在外部事件发生时清除OCiREF信号【例13-15】在该例子中,OCiREF信号可以连到一个比较器的输出,用于控制电流。定时器PWMA被置于PWM模式。按如下配置ETR:必须关闭外部触发预分频器,PWMA_ETR寄存器中的ETPS[1:0]字段设置为“00”必须禁止外部时钟模式2,PWMA_ETR寄存器中的ECE位设置为“0”根据需要配置外部触发极性(ETP)和外部触发滤波器(ETF)捕获/比较通道

--在外部事件发生时清除OCiREF信号下图给出当ETRF输入变为高时,对应不同OCiCE的值,OCiREF信号的行为捕获/比较通道

--编码器接口模式编码器接口模式一般用于电机控制。选择编码器接口模式的方法是:如果只在TI2边沿计数,则PWMA_SMCR寄存器的SMS字段设置为“001”如果只在TI1边沿计数,则PWMA_SMCR寄存器的SMS字段设置为“010”如果同时在TI1和TI2边沿计数,则PWMA_SMCR寄存器的SMS字段设置为“011”通过PWMA_CCER1寄存器中的CC1P和CC2P位,可以选择TI1和TI2极性。如果需要,还可以对输入滤波器编程捕获/比较通道

--编码器接口模式两个输入TI1和TI2用作增量编码器的接口假定PWMA_CR1寄存器的CEN位设置为“1”(即启动计数器),则每次在TI1FP1或TI2FP2上产生有效跳变时计数,其中:TI1FP1和TI2FP2是TI1和TI2通过输入滤波器和极性控制后的信号如果没有滤波和极性变换,则TI1直接映射到TI1FP1,TI2直接映射到TI2FP2根据两个输入信号的跳变顺序,产生了计数脉冲和方向信号根据两个输入信号的跳变顺序,计数器向上/向下计数,同时硬件相应设置PWMA_CR1寄存器的DIR位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论