S1mple的个人空间 https://blog.eetop.cn/1777628 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

学习笔记: stm32 基本定时器TIM6/TIM7 验证

热度 13已有 1204 次阅读| 2022-8-9 19:35 |个人分类:TIM|系统分类:芯片设计| 验证

TIM6/7

基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。它们可以作为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟。实际上,它们在芯片内部直接连接到DAC并通过触发输出直接驱动DAC。这2个定时器是互相独立,不共享任何资源。

image.png


主要特征

  • 16位可实时编程预分频器,分频系数:1–65536可调。

  • 16位自动重装载计数器(计数方向:递增)。

  • 产生中断/DMA请求的事件:更新事件。

时基单元

  • 计数器寄存器(TIMX_CNT)

  • 预分频寄存器(TIMx_PSC)

  • 自动重装载寄存器(TIMX_ARR)

       自动重装载寄存器是预加载的,每次读写自动重装载寄存器时,实际上是通过读写预加载寄存器实现。根据TIMx_CR1寄存器中的自动重装载预加载使能位(ARPE),写入预加载寄存器的内容能够立即或在每次更新事件时,传送到它的影子寄存器。当TIMxCR1寄存器的UDIS位为’0’,则每当计数器达到溢出值时,硬件发出更新事件;软件也可以产生更新事件;UG=1,UDIS=0。计数器由预分频输出CK_CNT驱动,设置TIMx_CR1寄存器中的计数器使能位(CEN)使能计数器计数。

寄存器描述

image.png

TIMx_CR1[7] APRE 自动重装载预装载使能(Auto-reload preload enable)                                         

0:关闭TIMx_ARR寄存器的影子寄存器
1:使能TIMx_ARR寄存器的影子寄存器

TIMx_CR1[2] URS 更新请求源(Update request source)软件配置该位,选择更新事件源。

0:以下事件可产生一个更新中断或DMA请求:1、计数器上溢/下溢;2、设置UG位;3、从模式控制器产生的更新; 1:只有计数器上溢/下溢才产生一个更新中断或 DMA 请求

TIMx_CR1[1] UDIS 禁止更新(Update disable)该位用来允许或禁止更新事件的产生

0:允许更新事件(UEV) 1:禁止更新事件。不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持值不变。如果设置了EGR_UG位为1,或者从模式控制器接收到硬件复位,计数器和预分频器被初始化。

TIMx_CR1[0] CEN 计数器使能(Counter enable)该位用来允许或禁止更新事件的产生                      

0:禁止计数器;   1:使能计数器

TIMx_CR1[4] OPM 单脉冲模式(One pulse mode)该位用来允许或禁止更新事件的产生               

0:禁止单脉冲模式,在发生更新事件时,计数器继续计数
1:使能单脉冲模式,在发生下一次更新事件或软件清除CEN位时,计数器停止计数


TIMX_SR[0]  UIF 更新中断标记(Update interrupt flag)                                                                  

当产生更新事件时该位由硬件置1。它由软件清0。0:无更新中断发生,1:发生更新中断。

TIMx_DIER[0] UIE 允许更新事件中断(Update interrupt enable)

0:禁止更新事件中断,1:允许更新事件中断。

TIMx_EGR[0] UG  产生更新事件(Update generation)

0:无动作 1:初始化计数器,并产生一个更新事件。由硬件自动清0,如果选择了中央对齐或递增计数模式,计数器被清0;如果选择递减计数模式,计数器将载入自动重载值。预分频计数器将同时被清除。


TIMX_RCR[15:8]  REP_CNT=RCR[15:8] 重复计数器实时写入的值(Repetition counter value of real-time writing)

在重复计数模式下,写入该位可以实时地将更新中断标志位(UIF)的检测点移位。注:在更新事件后写入该位,在更新事件前写入 REP_CNT 将会被REP的值覆盖,使移位无效。


TIMx_DIER[8] UDE 允许更新 DMA 请求(Update DMA request enable)

禁止更新 DMA 请求;1:允许更新 DMA 请求;注:仅适用于有内置 DMA 的产品。

TIMX_DCR[4:0]   DBA=DCR[4:0]  DMA 连续传送长度(DMA burst length)

这些位定义了 DMA  在连续模式下的访问寄存器的数量00000:1 次传输;00001:2 次传输;00010:3 次传输;......;10001:18 次传输

TIMX_DCR[12:8]  DBL=DCR[12:8]   DMA 基地址(DMA base address)                                           

这些位定义了 DMA 在连续模式下访问TIMx_DMAR寄存器的第一个地址。DBA 定义为从 TIMx_CR1 寄存器所在地址开始的偏移值:00000:TIMx_CR1;00001:TIMx_CR2;00010:TIMx_SMCR。

TIMx_DMAR[15: 0] = DMAB, DMA连续传送寄存器  DMA_data_transfer_direction

对TIMx_DMAR寄存器的读或写会导致对以下地址所在寄存器的存取操作,TIMx_CR1地址 + DBA + DMA索引,其中:   "TIMx_CR1地址"是控制寄存器1(TIMx_CR1) 所在的地址;"DBA"是TIMx_DCR寄存器中定义的基地址;"DMA索引"是由DMA自动控制的偏移量,它取决于TIMx_DCR寄存器中定义的DBL。




image.png

image.png

image.png

image.png

3

点赞

刚表态过的朋友 (3 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 3

    获赞
  • 0

    评论
  • 4

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 10:05 , Processed in 0.028788 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部