立即注册 找回密码

微雪课堂

搜索
微雪课堂 STM8 STM8单片机内核剖析 查看内容

STM8 PWM模式

2015-7-13 11:30| 发布者: kaloha| 查看: 7528| 评论: 0

摘要: STM8 PWM模式STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由TIM1_CCRi寄存器确定占空比的信号。在TIM1_CCMRi寄存器中的OCiM位写入'110'(PWM模式1)或'111'(PWM模式2),能够独立地设置每个OCi ...

STM8 PWM模式

STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由TIM1_CCRi寄存器确定占空比的信号。
在TIM1_CCMRi寄存器中的OCiM位写入'110'(PWM模式1)或'111'(PWM模式2),能够独立地设置每个OCi输出通道产生一路PWM。必须设置TIM1_CCMRi寄存器的OCiPE位使能相应的预装载寄存器,也可以设置TIM1_CR1寄存器的ARPE位使能自动重装载的预装载寄存器(在向上计数模式或中央对称模式中)。
由于仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIM1_EGR寄存器的UG位来初始化所有的寄存器。
OCi的极性可以通过软件在TIM1_CCERi寄存器中的CCiP位设置,它可以设置为高电平有效或低电平有效。OCi的输出使能通过(TIM1_CCERi和TIM1_BKR寄存器中)CCiE、MOE、OISi和OSSR位和OSSI位的组合来控制。详见TIM1_CCERi寄存器的描述。
在PWM模式(模式1或模式2)下,TIM1_CNT和TIM1_CCRi始终在进行比较,(依据计数器的计数方向)以确定是否符合TIM1_CCRi≤TIM1_CNT或者TIM1_CNT≤TIM1_CCRi。
根据TIM1_CR1寄存器中CMS位域的状态,定时器能够产生边沿对齐的PWM信号或中央对齐的PWM信号。

PWM边沿对齐模式

  • 向上计数配置
    当TIM1_CR1寄存器中的DIR位为低的时候执行向上计数。
    下面是一个PWM模式1的例子。当TIM1_CNT<TIM1_CCRi时,PWM参考信号OCiREF为高,否
    则为低。如果TIM1_CCRi中的比较值大于自动重装载值(TIM1_ARR),则OCiREF保持为'1'。如
    果比较值为0,则OCiREF保持为'0'。下图为TIM1_ARR=8时边沿对齐的PWM波形实例。

    STM8 边沿对齐,PWM模式1的波形(ARR=8)
    (图67:STM8边沿对齐,PWM模式1的波形(ARR=8))

  • 向下计数的配置
    当TIM1_CR1寄存器的DIR位为高时执行向下计数。
    在PWM模式1时,当TIM1_CNT>TIM1_CCRi时参考信号OCiREF为低,否则为高。如果TIM1_CCRi中的比较值大于TIM1_ARR中的自动重装载值,则OCiREF保持为'1'。该模式下不能产生0%的PWM波形。

PWM中央对齐模式

当TIM1_CR1寄存器中的CMS位不为'00'时为中央对齐模式(所有其他的配置对OCiREF/OCi信号都有相同的作用)。
根据不同的CMS位的设置,比较标志可以在计数器向上计数,向下计数,或向上和向下计数时被置1。TIM1_CR1寄存器中的计数方向位(DIR)由硬件更新,不要用软件修改它。参看17.3.6的中央对齐模式。
图68给出了一些中央对齐的PWM波形的例子

  • TIMx_ARR=8
  • PWM模式1
  • 标志位在以下三种情况下被置位(以箭头形式在─中标出)
    ─只有在计数器向下计数时(CMS=01)
    ─只有在计数器向上计数时(CMS=10)
    ─在计数器向上和向下计数时(CMS=11)

STM8 中央对齐的PWM波形(APR=8)
(图68:STM8中央对齐的PWM波形(APR=8))

单脉冲模式

STM8单脉冲模式(OPM)是前述众多模式的一个特例。这种模式允许计数器响应一个激励,并在一个程序可控的延时之后产生一个脉宽可控的脉冲。
可以通过时钟/触发控制器启动计数器,在输出比较模式或者PWM模式下产生波形。设置TIM1_CR1寄存器的OPM位将选择单脉冲模式,此时计数器自动地在下一个更新事件UEV时停止。
仅当比较值与计数器的初始值不同时,才能产生一个脉冲。启动之前(当定时器正在等待触发),必须如下配置:

  • 向上计数方式:计数器CNT<CCRi≤ARR,
  • 向下计数方式:计数器CNT>CCRi。

STM8 单脉冲模式图例
(图48:STM8单脉冲模式图例)

例如,你需要在从TI2输入脚上检测到一个上升沿之后,延迟tDELAY,在OC1上产生一个tPULSE宽度的正脉冲:
假定IC2作为触发1通道的触发源:

  • 置TIM1_CCMR2寄存器的CC2S=01,把IC2映射到TI2。
  • 置TIM1_CCER1寄存器的CC2P=0,使IC2能够检测上升沿。
  • 置TIM1_SMCR寄存器的TS=110,使IC2作为时钟/触发控制器的触发源(TRGI)。
  • 置TIM1_SMCR寄存器的SMS=110(触发模式),IC2被用来启动计数器。
    OPM的波形由写入比较寄存器的数值决定(要考虑时钟频率和计数器预分频器)
  • tDELAY由TIM1_CCR1寄存器中的值定义。
  • tPULSE由自动装载值和比较值之间的差值定义(TIM1_ARR–TIM1_CCR1)。
  • 假定当发生比较匹配时要产生从0到1的波形,当计数器达到预装载值时要产生一个从1到0的波形;首先要置TIM1_CCMR1寄存器的OCiM=111,进入PWM模式2;根据需要有选择地设置TIM1_CCMR1寄存器的OC1PE=1,置位TIM1_CR1寄存器中的ARPE,使能预装载
    寄存器;然后在TIM1_CCR1寄存器中填写比较值,在TIM1_ARR寄存器中填写自动装载值,设置UG位来产生一个更新事件,然后等待在TI2上的一个外部触发事件。

在这个例子中,TIM1_CR1寄存器中的DIR和CMS位应该置低。
因为只需要一个脉冲,所以设置TIM1_CR1寄存器中的OPM=1,在下一个更新事件(当计数器从自动装载值翻转到0)时停止计数。

特殊情况:OCx快速使能

在单脉冲模式下,对TIi输入脚的边沿检测会设置CEN位以启动计数器。然后计数器和比较值间的比较操作产生了单脉冲的输出。但是这些操作需要一定的时钟周期,因此它限制了可得到的最小延时tDELAY。
如果要以最小延时输出波形,可以设置TIM1_CCMRi寄存器中的OCiFE位;此时强制OCiREF(和OCx)直接响应激励而不再依赖比较的结果,输出的波形与比较匹配时的波形一样。
OCiFE只在通道配置为PWM1和PWM2模式时起作用。

以上资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!


365

顶一下

刚表态过的朋友 (365 人)

最新评论

所有教程
    01STM8 CPU
    简介STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可
    02STM8 CPU寄存器映射
    CPU寄存器在STM8的地址空间映射如表2所示。只有CPU的调试模块才可以使用这些寄存器的
    03STM8 全局配置寄存器(CFG_GCR)
    激活级别用户可通过对CFG_GCR寄存器中的AL位编程来配置MCU的激活级别。如何使用该位请
    04STM8 用于系统启动的只读存储器
    在某些STM8型号中有2K字节的内部BOOT ROM,其中包含有用于启动的代码。这段代码的主
    05STM8 存储器和寄存器映射
    要了解关于STM8存储器映射、I/O端口硬件寄存器映射以及CPU/SWIM/调试模块/中断控制寄
    06STM8 FLASH主要特性
    STM8内部的FLASH程序存储器和数据EEPROM由一组通用寄存器来控制。用户可以使用这些寄
    07STM8 存储器组织结构
    STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机
    08STM8 用户启动区域(UBC)
    用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序。UBC有一个两
    09STM8 存储器保护
    读保护当选项字节中的ROP字节被编程为'0xAA'时,读保护就生效了。这种情况下,无论写
    010STM8 读同时写(RWW)
    RWW特性允许用户在执行程序和读程序存储器时对DATA EEPROM区域进行写操作,因此执行的
    011STM8 ICP和IAP
    在线编程(ICP)用于更新STM8整个存储器的内容。ICP使用SWIM接口把用户的程序装载到微控
    012STM8 FLASH寄存器
    FLASH控制寄存器1(FLASH_CR1)地址偏移值:0x00复位值:0x00位7:4保留位,必须保持为0
    013STM8 单线接口模块(SWIM)和调试模块(DM)
    介绍STM8在线调试模式或在应用编程模式由一个单线硬件接口来管理,该接口拥有对存储器
    014STM8 供电电源
    STM8 MCU有四种相对独立的供电电源:VDD/VSS:主电源(3V到5.5V)VDDIO/VSSIO:I/O口供
    015STM8 复位
    STM8S共有9个复位源:NRST引脚产生的外部复位上电复位(POR)掉电复位(BOR)独立看门狗复
    016STM8 复位(RST)寄存器
    复位状态寄存器(RST_SR)地址偏移值:0x00复位值:未定义位7:5保留位,必须保持为0位4E
    017STM8 复位寄存器地址映射
    复位状态寄存器(RST_SR)请参考对应的数据手册了解基地址信息。(表7:STM8复位寄存器地
    018STM8 时钟控制
    时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消
    019STM8 主时钟源
    下面4种时钟源可用做主时钟:1-24MHz高速外部晶体振荡器(HSE)最大24MHz高速外部时钟信
    020STM8 主时钟切换
    时钟切换功能为STM8用户提供了一种易用、快速、安全的从一个时钟源切换到另一个时钟源
    021STM8 外设时钟门控
    关闭未使用外设的时钟可使STM8降低功耗。外设的时钟门控(PCG)模式使用户可在运行模式
    022STM8 时钟安全系统(CSS)
    时钟安全系统用于监控HSE时钟源是否失效。当fMASTER使用HSE做为时钟源时,如果HSE时钟
    023STM8 时钟输出功能(CCO)
    可配置的时钟输出功能使STM8用户可在外部管脚CCO上输出指定的时钟。STM8S的用户可选择
    024STM8 时钟中断
    当下列事件发生时,时钟控制器可产生中断:主时钟源切换事件CSS事件这两个中断均可被
    025STM8 内/外部时钟寄存器
    STM8内部时钟寄存器(CLK_ICKR)地址偏移值:0x00复位值:0x01位7:6保留位,始终为0位5R
    026STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)地址偏移值:0x03复位值:0xE1位7:0CKM:主时钟状态位
    027STM8 时钟分频寄存器
    STM8时钟分频寄存器(CLK_CKDIVR)地址偏移值:0x06复位值:0x18位7:5保留。始终为0。位
    028STM8 外设时钟门控寄存器
    STM8外设时钟门控寄存器(CLK_PCKENR1)地址偏移值:0x07复位值:0xFF位7:0PCKEN1:外设
    029STM8 时钟安全系统寄存器
    STM8时钟安全系统寄存器(CLK_CSSR)地址偏移值:0x08复位值:0x00位7:4保留。始终为0。
    030STM8 可配置时钟输出寄存器
    STM8可配置时钟输出寄存器地址偏移值:0x09复位值:0x00位7保留。始终为0。位6CCOBSY
    031STM8 CAN外部时钟控制寄存器
    STM8 CAN外部时钟控制寄存器(CLK_CANCCR)地址偏移值:0x0B复位值:0x00位7:3保留。始
    032STM8 HSI时钟修正寄存器
    STM8 HSI时钟修正寄存器(CLK_HSITRIMR)地址偏移值:0x0C复位值:未定义位7:4保留。始
    033STM8 SWIM时钟控制寄存器
    STM8 SWIM时钟控制寄存器(CLK_SWIMCCR)地址偏移值:0x0D复位值:未定义位7:1保留。始
    034STM8 电源管理
    STM8电源管理默认情况下在系统或电源复位后,MCU处于运行模式。在这种模式下,CPU由fC
    035STM8 低功耗的时钟管理
    STM8降低系统时钟在运行模式,为了即能满足系统性能又能降低功耗,选择合适的系统时钟
    036STM8 低功耗模式
    四种STM8低功耗模式的主要特性如表12。(表12:STM8S低功耗模式管理)1.如果外设时钟未
    037STM8 模拟功耗控制
    STM8停机模式下的快速内存唤醒默认情况下,微控制器进入停机模式后FLASH是处于掉电状
    038STM8 中断控制器(ITC)
    STM8中断控制器简介中断控制器提供如下功能:硬件中断的管理所有I/O引脚都具有外部中
    039STM8 中断屏蔽和处理流程
    STM8 中断屏蔽和处理流程中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表
    040STM8 中断源
    STM8 中断源STM8中断控制器处理2种类型的中断源:不可屏蔽的中断:RESET,TLI和TRAP可
    041STM8 中断和低功耗模式
    STM8 中断和低功耗模式所有的中断都可以使处理器从待机模式(Wait)退出。仅有外部中断
    042STM8 同时的和嵌套的中断管理
    STM8S提供2种中断管理模式:同时发生模式嵌套模式STM8同时发生中断管理模式在该模式下
    043STM8 中断指令
    STM8 中断指令表15列出了中断指令:(表15:STM8中断指令)
    044STM8 中断映射
    STM8中断映射下面表格列出了中断映射:(表16:STM8中断映射)
    045STM8 自动唤醒(AWU)
    简介AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间
    046STM8 AWU寄存器
    控制/状态寄存器(AWU_CSR)地址偏移值:0x00复位值:0x00位7:6保留位,必须保持为0位5W
    047STM8 蜂鸣器
    简介当LS时钟工作在128kHz时可产生频率为1kHz,2 kHz或者是4 kHz的蜂鸣信号。(图23:ST
    048STM8 独立看门狗(IWDG)
    STM8独立看门狗介绍独立看门狗模块可以用于解决处理器因为硬件或软件的故障所发生的错
    049STM8 通用输入输出口(GPIO)
    简介STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引
    050STM8 窗口看门狗(WWDG)
    STM8窗口看门狗介绍窗口看门狗用于监测由于外部干扰或不可预知的逻辑条件所产生的软件
    051STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)STM8S提供三种类型的TIM定时器:高级控制型(TIM1)、通
    052STM8 16位高级控制定时器(TIM1)
    16位高级控制定时器(TIM1)简介STM8S的TIM1由一个16位的自动装载计数器组成,它由一个
    053STM8 时基单元
    STM8时基单元时基单元包含:16位向上/向下计数器16位自动重载寄存器重复计数器预分频
    054STM8 时钟/触发控制器
    STM8时钟/触发控制器时钟/触发控制器允许用户选择计数器的时钟源,输入触发信号和输出
    055STM8 触发同步
    STM8触发同步计数器允许四种触发输入ETRTI1TI2来自TIM5/TIM6的TRGOTIM1的计数器使用三
    056STM8 PWM模式
    STM8 PWM模式STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由T
    057STM8 针对马达控制的六步PWM输出
    STM8针对马达控制的六步PWM输出当在一个通道上需要互补输出时,预装载位有OCiM、CCiE
    058STM8 刹车功能 马达控制
    STM8 刹车功能STM8刹车功能常用于马达控制中。当使用刹车功能时,依据相应的控制位(TI
    059STM8 中断
    STM8 TIM1中断TIM1有8个中断请求源,分别映射到2个中断矢量上:刹车中断触发中断COM事
    060STM8 16位通用定时器(TIM2,TIM3,TIM5)
    介绍本章介绍了STM8通用定时器TIM2,TIM3和TIM5,其中TIM2有3个通道,TIM3有2个通道,
    061STM8 8位基本定时器(TIM4,TIM6)
    介绍该定时器由的8可位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有
    062STM8 SPI简介 主要特征
    SPI简介串行外设接口(SPI)允许芯片与其他设备以半/全双工、同步、串行方式通信。此接
    063STM8 SPI从模式
    STM8 SPI从模式在从配置里,SCK引脚用于接收到从主设备来的串行时钟。SPI_CR1寄存器中
    064STM8 SPI主模式
    STM8 SPI主模式在主配置时,串行时钟在SCK脚产生。置配步骤1.通过SPI_CR1寄存器的BR位
    065STM8 单工通信
    STM8 单工通信SPI能够以两种配置工作于单工方式:1条时钟线和1条双向数据线1条时钟线
    066STM8 SPI状态标志
    STM8 SPI状态标志应用程序通过3个状态标志可以完全监控SPI总线的状态。总线忙(Busy)标
    067STM8 CRC计算
    STM8 CRC计算CRC校验仅用于保证通信的可靠性。数据发送和数据接收分别使用单独的CRC计
    068STM8 I2C接口主要特点
    STM8 I2C接口I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主功能,控制所
    069STM8 I2C从模式
    STM8 I2C从模式为了产生正确的时序,必须在I2C_FREQR寄存器中设定该模块的输入时钟。
    070STM8 I2C主模式
    STM8 I2C主模式在主模式时,I C接口启动数据传输并产生时钟信号。串行数据传输总是以
    071STM8 通用异步收发器(UART)
    STM8 UART介绍STM8S微控制器家族的通用同步异步收发器(UART1,UART2或UART3)提供了一
    072STM8 UART 发送器
    STM8 UART 发送器发送器根据M位的状态发送8位或9位的数据字。当M位置1,字长为9位,并
    073STM8 UART 接收器
    STM8 UART 接受器UART可以接收8位或9位的数据字。如果M位置1,字长为9位,其中MSB存放
    074STM8 多处理器通信
    STM8 多处理器通信通过UART可以实现多处理器通信(将几个UART连在一个网络里)。例如某
    075STM8 单线半双工通信
    STM8 单线半双工通信UART可以配置成遵循单线半双工协议。单线半双工模式通过设置UART_
    076STM8 智能卡
    STM8智能卡设置UART_CR5寄存器的SCEN位选择智能卡模式。在智能卡模式下,下列位必须保
    077STM8 IrDA红外功能
    STM8 IrDA红外功能通过设置UART_CR5寄存器的IREN位选择IrDA模式。UART_CR3寄存器的STO
    078STM8 LIN主模式
    STM8 LIN模式功能描述在LIN模式下,LIN标准要求的数据格式是8位数据位加1位停止位。完
    079STM8 控制器局域网(beCAN)
    STM8控制器局域网(beCAN)简介beCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持C
    080STM8 beCAN工作模式
    STM8 beCAN工作模式beCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在
    081STM8 模拟/数字转换器(ADC)
    STM8模拟/数字转换器(ADC)简介ADC1和ADC2是10位的逐次比较型模拟数字转换器。提供多达
    082STM8 模拟/数字转换器(ADC) 转换模式
    STM8模拟/数字转换器(ADC)转换模式ADC支持5种转换模式:单次模式,连续模式,带缓存的
    083STM8 模拟看门狗
    STM8模拟看门狗在单次转换模式和不带缓存的连续模式中模拟看门狗可以通过置位ADC_CSR
    084STM8 ADC时序图
    STM8 ADC时序图如图149所示,在ADC上电后,在开始精确转换之前ADC需要一个稳定时间tST
STM8

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-10-30 08:22 , Processed in 0.021150 second(s), 20 queries .

返回顶部