- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四章STM8S207PWM模块及其应用实例.doc
第十四章 STM8S207 PWM模块及其应用实例
上一节我们学习了定时器中的基本定时器编程,这一节学习定时器里面一个PWM模块。当终于到了PWM模块编程时,有些许怀念,怀念过去的一年之中的日以继夜相对的PWM。忘了介绍我们的团队---风驰,也就是第六届飞思卡尔比赛中的一个队伍。
1、PWM介绍
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。
PWM在实际应用很广,例如上面提到的飞思卡尔智能车就用到PWM控制舵机以及电机。关于舵机是如何用PWM控制的,这里不详细说明,有兴趣的建议查询相关知识。这些在模型制作中应用十分广泛。关于PWM如果控制电机的这里略为说明,因为和本节有些许关联
普通直接电机在通电时以全电压工作,在没有PWM控制电机之前是运用继电器通过不停开断实现对电机的速度控制。引入PWM就可以更为灵活控制电机。
PWM是脉冲宽度可调的方波,在10K左右的频率下,通过不同的占空比就可以得到近似稳定的电压。例如输入5V,占空比为50%时,电压近似2.5V。我们这节实验也是应用PWM这个特性。利用PWM中的占空比调节LED的亮度。
关于PWM的说明这里也简要说明,PWM第一个参数是PWM的周期,也就是一个PWM的时间。这个可以通过对应的寄存器进行设置,而我们的STM8S207通过PSCR设置定时器的时钟源CK_CNT,然后再通过ARR寄存器设置周期。例如我们这节的实验使用了16M内部时钟源,LED4是接着PD3的,也就是TIM2_CH2,PSCR只能是2的次幂,我们选择了4分频。CK_CNT = 4M,然后ARR设置为200,分频200后直接提供PWM的时钟,所以f_pwm = 4M/200 = 20KHz。20KHz也是我们小车的频率啊,怀念!
第二个参数是占空比,例如30%,就是一个占30%,空70%,也可以在STM8S里面的解析为30%为无效电平,70%为有限电平。所以这样在20KHz的周期中高电平占了70%,30%为低电平。当然这里只是举例说明,这些并非固定。因为有效电平是可以程序设置的。不同的单片机可以设置的参数也不尽相同。例如之前使用的S12单片机还有对齐方式等等功能设置。
2、PWM寄存器设置
STM8S207的PWM功能是高级定时器或者通用定时器的一个附加功能,这和MC9S12XS128的有些区别,但是唯一的不同是STM8S207的PWM会占用相应的定时器功能,两者是对立的,不能同时使用。
这里使用了除定时器章节中所使用的寄存器外,还添加了
捕获/比较模式寄存器TIMx_CCMRx
捕获/比较使能寄存器TIMx_CCERx
捕获/比较寄存器TIMx_CCRx
2.1捕获/比较模式寄存器TIMx_CCMR2
因为这里使用的是TIM2_CH2作为输出,所以介绍TIM2_CCMR2,其它的类似设置,详细内容请见STM8S微控制器参考手册。
通道可用于输入(捕捉模式)或输出(比较模式),通道的方向由对应的CC2S定义。该寄存器其它为的作用在输入和输出模式不同。OCxx描述了通道在输出模式下的功能,ICxx描述了通道在输入模式下的功能。因此必须注意,同一位在输出和输入模式下功能是不同的。
这里我们主要说明输出模式,也就是PWM模式。输出模式为:
OC2M:输出比较2通道模式
000:冻结
001:匹配时设置通道2为有效电平
010:匹配时设置通道2为无效电平
011:翻转。
100:强制为无效电平
101:强制为有效电平
110:PWM模式1。
向上计数时,一旦TIMx_CNT TIMx_CCR1时通道2为有效电平,否则无效
向下计数时,一旦TIMx_CNT =TIMx_CCR1时通道2有无效电平,否则有效
111:PWM模式2.
向上计数时,一旦TIMx_CNT TIMx_CCR1时通道2为无效电平,否则有效
向下计数时,一旦TIMx_CNT =TIMx_CCR1时通道2有有效电平,否则无效
OC2PE:输出比较2预装载使能,PWM模式下一定要使能
0:禁止预装载使能,可随时写入TIMx_CCR2寄存器,并且新写入的数据立即生效
1:开启预装载使能,读写操作仅对预装载寄存器操作。
CC2S:捕获/比较2选择。这里定义了通道的方向,及输入脚的选择
00:CC2通道配配置为输出
01:CC2通道被配置为输入,IC2映射在TI2FP2上
10:CC2通道被配置为输入,IC2映射在TI1FP2上
11:保留
配置为输人模式时
IC2F:输入捕获2滤波器。设置了采用频率以及数字滤波长度,详细请见数据手册
IC2PSC:输入捕
文档评论(0)