电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PDF文档下载
分享到微信 分享到微博 分享到QQ空间

STM32F103的11个定时器详解

  • 资源ID:88627614       资源大小:295.90KB        全文页数:5页
  • 资源格式: PDF        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

STM32F103的11个定时器详解

STM32F103 系列的单片机一共有 11 个定时器,其中: 2 个高级定时器 4 个普通定时器 2 个基本定时器 2 个看门狗定时器 1 个系统嘀嗒定时器 出去看门狗定时器和系统滴答定时器的八个定时器列表; 8 个定时器分成 3 个组; TIM1 和 TIM8 是高级定时器 TIM2-TIM5 是通用定时器 TIM6 和 TIM7 是基本的定时器 这 8 个定时器都是 16 位的,它们的计数器的类型除了基本定时器 TIM6 和 TIM7 都支持向 上,向下,向上/向下这 3 种计数模式 计数器三种计数模式 向上计数模式:从 0 开始,计到 arr 预设值,产生溢出事件,返回重新计时 向下计数模式:从 arr 预设值开始,计到 0,产生溢出事件,返回重新计时 中央对齐模式: 从 0 开始向上计数, 计到 arr 产生溢出事件, 然后向下计数, 计数到 1 以后, 又产生溢出,然后再从 0 开始向上计数。 (此种技术方法也可叫向上/向下计数) 基本定时器(TIM6,TIM7)的主要功能: 只有最基本的定时功能, 。基本定时器 TIM6 和 TIM7 各包含一个 16 位自动装载计数器,由 各自的可编程预分频器驱动 通用定时器(TIM2TIM5)的主要功能: 除了基本的定时器的功能外, 还具有测量输入信号的脉冲长度( 输入捕获) 或者产生输出波 形( 输出比较和 PWM) 高级定时器(TIM1,TIM8)的主要功能: 高级定时器不但具有基本, 通用定时器的所有的功能, 还具有控制交直流电动机所有的功能, 你比如它可以输出 6 路互补带死区的信号,刹车功能等等 通用定时器的时钟来源; a:内部时钟(CK_INT) b:外部时钟模式 1:外部输入脚(TIx) c:外部时钟模式 2:外部触发输入(ETR) d:内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器 通用定时期内部时钟的产生: 从截图可以看到通用定时器(TIM2-7)的时钟不是直接来自 APB1,而是通过 APB1 的预分 频器以后才到达定时器模块。 当 APB1 的预分频器系数为 1 时,这个倍频器就不起作用了,定时器的时钟频率等于 APB1 的频率; 当 APB1 的预分频系数为其它数值(即预分频系数为 2、4、8 或 16)时,这个倍频器起作用, 定时器的时钟频率等于 APB1 时钟频率的两倍。 自动装在寄存器 arr 值的计算: Tout= (arr+1)*(psc+1)/Tclk; Tclk:TIM3 的输入时钟频率(单位为 Mhz) 。 Tout:TIM3 溢出时间(单位为 us) 。 计时 1S,输入时钟频率为 72MHz,加入 PSC 预分频器的值为 35999,那么: (1+psc )/72M)*(1+arr )=(1+35999)/72M)*(1+arr)=1 秒 则可计算得出自动窗装载寄存器 arr=1999 通用定时器 PWM 工作原理 以 PWM 模式 2,定时器 3 向上计数,有效电平是高电平,定时器 3 的第 3 个 PWM 通道为 例: 定时器 3 的第 3 个 PWM 通道对应是 PB0 这引脚,三角顶点的值就是 TIM3_ARR 寄存器的 值,上图这条红线的值就 TIM3_CCR3 当定时器3的计数器 (TIM3_CNT) 刚开始计数的时候是小于捕获/比较寄存器 (TIM3_CCR3) 的值, 此时 PB0 输出低电平,随着计数器(TIM3_CNT)值慢慢的增加, 当计数器(TIM3_CNT)大于捕获/比较寄存器(TIM3_CCR3)的值时,这时 PB0 电平就会 翻转,输出高电平,计数器(TIM3_CNT)的值继续增加, 当 TIM3_CNT=TIM3_ARR 的值时,TIM3_CNT 重新回到 0 继续计数,PB0 电平翻转,输出 低电平,此时一个完整的 PWM 信号就诞生了。 PWM 输出模式; STM32 的 PWM 输出有两种模式: 模式 1 和模式 2,由 TIMx_CCMRx 寄存器中的 OCxM 位确定的(“110”为模式 1,“111”为模 式 2) 。区别如下: 110:PWM 模式 1,在向上计数时,一旦 TIMx_CNT 在向下计数时,一旦 TIMx_CNTTIMx_CCR1 时通道 1 为无效电平(OC1REF=0),否则为有 效电平(OC1REF=1)。 111:PWM 模式 2在向上计数时,一旦 TIMx_CNTTIMx_CCR1 时通道 1 为有效电平,否 则为无效电平。 由以上可知: 模式 1 和模式 2 正好互补,互为相反,所以在运用起来差别也并不太大。而从计数模式上来 看,PWM 也和 TIMx 在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模 式 PWM 的输出管脚: 不同的 TIMx 输出的引脚是不同(此处设计管脚重映射) TIM3 复用功能重映射: 注:重映射是为了 PCB 的设计方便。值得一提的是,其分为部分映射和全部映射 PWM 输出频率的计算: PWM 输出的是一个方波信号,信号的频率是由 TIMx 的时钟频率和 TIMx_ARR 这个寄存器 所决定的 输出信号的占空比则是由 TIMx_CRRx 寄存器确: 占空比=(TIMx_CRRx/TIMx_ARR)*100% PWM 频率的计算公式为: 其中 F 就是 PWM 输出的频率,单位是:HZ; ARR 就是自动重装载寄存器(TIMx_ARR); PSC 就是预分频器(TIMx_PSC); 72M 就是系统的频率; STM32 高级定时器 PWM 的输出 一路带死区时间的互补 PWM 的波形图 STM32F103VC 这款单片机一共有 2 个高级定时器 TIM1 和 TIM8 这 2 个高级定时器都可以同时产生 3 路互补带死区时间的 PWM 信号和一路单独的 PWM 信 号, 具有刹车输入功能,在紧急的情况下这个刹车功能可以切断 PWM 信号的输出 还具有支持针对定位的增量(正交)编码器和霍尔传感器电路 高级控制定时器(TIM1 和 TIM8) 由一个 16 位的自动装载计数器组成,它由一个可编程的 预分频器驱动 它适合多种用途,包含测量输入信号的脉冲宽度( 输入捕获) ,或者产生输出波形(输出比 较、PWM、嵌入死区时间的互补 PWM 等)。 使用定时器预分频器和 RCC 时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒 到几个毫秒的调节。 高级控制定时器(TIM1 和 TIM8) 和通用定时器(TIMx) 是完全独立的,它们不共享任何资 源 死区时间 H 桥电路为避免由于关断延迟效应造成上下桥臂直通,有必要设置死区时间 死区时间可有效地避免延迟效应所造成的一个桥臂未完全关断,而另一桥臂又处于导通状 态,避免直通炸开关管。 死区时间越大,电路的工作也就越可靠,但会带来输出波形的失真以及降低输出效率。 死区时间小,输出波形要好一些,但是会降低系统的可靠性,一般这个死区时间设置为 us 级 元器件死区时间是不可以改变的,它主要是取决于元器件的制作工艺和材料! 原则上死区时间当然越小越好。设置死区时间的目的,其实说白了就是为了电路的安全。最 佳的设置方法是:在保证安全的前提下,设置的死区时间越小越好。以不炸功率管、输出不 短路为目的。 STM32 死区时间探究 设置寄存器:就是刹车和死区控制寄存器(TIMx_BDTR) 这个寄存器的第 07 位,这 8 个位就是用来设置死区时间的,使用如下: 以 TIM1 为例说明其频率是如何产生的。 定时器 1 适中产生路线: 系统时钟- AHB 预分频 - APB2 预分频 TIM1 倍频器 产生 TIM1 的时钟系统 流程图看可以看出,要想知道 TIM1 的时钟,就的知道系统时钟,AHB 预分频器的值,还有 APB2 预分频器的值,只要知道了这几个值,即可算出 TIM1 的时钟频率? 这些值从何来,在“SystemInit()”这个时钟的初始化函数中已经给我们答案了,在这个函数 中设置的系统时钟是 72MZ, AHB 预分频器和 APB2 预分频器值都是设置为 1, 由此可算出: TIM1 时钟频率: 72MHZ 了,TDTS=1/72MHZ=13.89ns Tdtg 死区时间步进值,它的值是定时器的周期乘以相应的数字得到的 下面看看官方给的公式如何使用,如下: DTG7:5=0xx=DT=DTG6:0×Tdtg,Tdtg=TDTS 首先由 DTG7:5=0xx 可以知道的是:DTG 的第 7 位必须为 0,剩余的 06 这 7 位可配 置死区时间,假如 TIM1 的时钟为 72M 的话,那么由公式 Tdtg=TDTS 可计算出: TDTS=1/72MHZ=13.89ns。 有了这个值,然后通过公式 DT=DTG6:0×Tdtg 即可计算出 DT 的值。 如果 DTG 的第 06 位均为 0 的话,DT=0 如果 DTG 的第 06 位均为 1 的话,DT=127*13.89ns=1764ns 如果 TIM1 的时钟为 72M 的话, 公式 1 可设置的死区时间 01764ns,也就是说: 如果你的项目需要输出的PWM信号要求的死区时间是01764ns的时候你就可以用公式 1 同样可计算出 4 个公式的死去区间,如下: 公式 1:DT=01764ns 公式 2:DT=1777.9ns3528.88ns 公式 3:DT=3555.84ns7000.56ns 公式 4:DT=7111.68ns14001.12ns 如何设置死区时间: 假如我们设计了一个项目要求输出的 PWM 信号中加入一个 3us 的死区时间因为 3us这个值 在第二个公式决定的死区范围之内所以选择第二个公式。3000/(13.89*2)=108, 所以 DTG5:0=108-64=44 所以 DTG=127+44+32=203=0XCB,TIM1-BDTR|=0Xcb 这里为什么要在加上一个 32 那?在公式 2 中 DTG 的第 5 位是一个 X,也就是说这一位可以 设置为高电平,也可以设置为低电平,在这里我们将这一位设置为了高电平,所有要在加上 一个 32.如此而已!

注意事项

本文(STM32F103的11个定时器详解)为本站会员(206****923)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.