NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。
本应用笔记简要介绍了如何使用TIM外设来生成三个PWM信号。
1 应用说明 本节描述了在NUCLEO-8S208RB或NUCLEO-8L152R8开发板上使用TIM外设生成三个PWM信号的硬件要求、应用程序的原理图和工作原理。
1.1 硬件要求 NUCLEO-8S208RB或NUCLEO-8L152R8开发板不需要额外的硬件。 需要一台示波器作为外部资源。
1.2 应用原理图 两块开发板的应用原理图如下图所示。 图1. STM8S系列应用原理图
图2. STM8L系列应用原理图
1.3 工作原理 该应用基于使用在PWM(脉冲宽度调制)模式的TIM外设来生成三个PWM信号。 • 使用STM8S系列器件的TIM2 • 使用STM8L系列器件的TIM1
生成过程如下图所示。 图3. PWM生成原理
TIM根据定时器计数器时钟从0计数到自动重载寄存器值(TIM_ARR)。 • 当计数器值等于比较/捕获寄存器(TIM_CCRx)值时,通道x信号设置为0。 • 当计数器值达到TIM_ARR值时,计数器复位,通道x信号设置为1。 通过配置TIMx_CCRx和TIMx_ARR寄存器,用户可以轻松修改生成PWM信号的占空比和频率(参见第2节软件说明)。默认情况下,应用程序提供如下表所示的三个PWM信号。 注意:可以配置AFR选项字节以在PD2上得到通道3的PWM。 表2. 默认PWM信号 信号 | 占空比 | 频率 | STM8S系列 | STM8L系列 | I / O引脚 | 连接器 | I / O引脚 | 连接器 | 通道1 PWM | 50% | 2 KHz | PD4 | CN5.6 | PD2 | CN5.24 | 通道2 PWM | 25% | PD3 | CN5.21 /CN6.1 | PD4 | CN5.6 | 通道3 PWM | 75% | PA3 | CN4.27 | PD5 | CN5.4 |
2 软件说明 此示例使用STM8S系列和STM8L系列标准固件库来控制通用函数。 要生成PWM信号,必须按如下方式配置TIMx外设: • 为每个通道启用输出状态 • 每个通道的输出比较低电平有效 • 为每个通道启用预加载寄存器 • PWM输出信号频率= 2 KHz: - 定时器源时钟频率为2 MHz(默认为fCPU),预分频器设置为1以获得一个2 MHz的TIMx计数器时钟。 - PWM输出信号频率可根据以下公式设定: PWM输出信号频率= TIMx计数器时钟/(TIMx_ARR + 1) (在我们的例子中,TIMx_ARR = 999,因此PWM输出信号频率为2 KHz) • 每个通道设置为PWM模式。要在每个通道上获得不同PWM占空比值,必须根据以下等式设置TIMx_CCRx寄存器: 通道x占空比= [TIMx_CCRx /(TIMx_ARR + 1)]×100 默认情况下,我们设置为: - 通道1:TIMx_CCR1x寄存器值为500,因此TIMx的通道1产生一个频率为2 KHz,占空比为50%的PWM信号。 - 通道2:TIMx_CCR2x寄存器值为750,因此TIMx的通道2产生一个频率为2 KHz,占空比为75%的PWM信号。 - 通道3:TIMx_CCR3x寄存器值为250,因此TIMx的通道3产生一个频率为2 KHz,占空比为25%的PWM信号。 注意:对于STM8S系列器件TIMx = TIM2,而对于STM8L系列器件TIMx表示TIM1。
2.1 应用软件流程图 2.1.1 主循环流程图 图4. 主循环流程图
3 修订记录 表3.文档修订历史记录 日期 | 版本 | 更改内容 | 2018年6月29日 | 1 | 首次发布。 |
|