其实,STM32有隐藏的定时器~

发布时间:2022-12-15  

DWT

在Cortex-M里面有一个外设叫DWT(DataWatchpoint andTrace),是用于系统调试及跟踪,DWT的中文名字应该是:数据观察点触发。在STM32用户手册的第32章节Debugsupport (DBG)有如下框图。

明显DWT属于DBG部分的功能,从上图的标题可以看出DWT属于CortexM3内核的,理论上M3内核的MCU都支持的,这个下文会说明。在这里我将其称之为“隐藏的定时器”,因为他可以代替定时器外设实现上文提到延时功能和测量代码运行时间的功能,DWT不能代替定时器的其他功能。

之所以DWT可以实现延时功能,因为它有一个32的计数器CYCCNT,这是一个向上计数的计数器,当它溢出时会自动清零并重新开始向上计数,它的频率就是内核的主频。简单点说,就是内核时钟跳动一下,CYCCNT计数器就加1。

很明显DWT计数器的精度和系统主频有关,我们常用的STM32F103主频一般为72Mhz,STM32F207一般为120Mhz,STM32H7主频一般为400Mhz。以为主频最低为72Mhz的STM32F103为例,精度是1/72M= 14ns,这个精度足以满足大部分延时函数的需求,同样程序的运行时间都是微秒级别的,远远满足测量代码运行时间的要求。

DWT的配置

首选使用DWT前必须使能DBG的系统跟踪,控制使能位在DEMCR寄存器的bit24。注意该寄存器详细说明在STM32的用户手册上查不到,需要在CortexM3内核手册查到,在《Cortex-M3权威指南》书中也可以查到。

在使能CYCCNT计数器前,必须先将其清零。下图是从ARM的官方手册《Cortex-M3Technical Reference Manual》中查到的。

使能CYCCNT计数器,其控制位是DWT控制寄存器的第一位,写1使能,则启用CYCCNT计数器,否则CYCCNT计数器将不会工作。

总结一下:

a.先使能DWT外设,由内核调试寄存器DEM_CR的位24控制,写1使能。

b.使能CYCCNT寄存器之前,先清0。

c.使能CYCCNT寄存器,由DWT_CTRL的位0控制,写1使能。

代码如下

代码

从上文我们得知,我们已经获得了一个32位向上累加的计数器,溢出会自动清零并累加,频率是系统主频。那么我们简单封装下,就可以实现延时函数。以下代码在120Mhz的STM32F207测试。

如下图,延时函数精确延时,没有问题

实现测量代码运行时长的函数接口

如下图,可以精确测量代码运行时间,没有问题。

后记

本文使用DWT代替了定时器部分功能,它的优缺点如下:

1、优点是:方便移植,经过测试在M3、M4、M7内核的MCU上都可以使用。

2、缺点是:和定时器一样,都有一个延时的最大时间,测量代码运行时间的最大值。

如果项目使用MCU有空闲的定时器,且不考虑换MCU的话,我个人建议还是使用通用的定时器外设,不要使用DWT,虽然DWT方便移植,但通用定时器外设简单易懂,对于没有了解过这部分知识的小白,看到DWT的延时函数,还需要学习下。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>