1 使用NUCLEO-U575开发板的Timer15进行LSE测量-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用NUCLEO-U575开发板的Timer15进行LSE测量

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-07-03 16:55 次阅读

1.引言

客户在使用 STM32U5 时,想对外部 LSE 的起振情况和精度进行监测,于是使用 HSE 为时钟基准,对 LSE 进行测量。

Note : 本文中由于 Nucleo 开发板默认没有焊接 HSE 器件,因此,采用内部高速时钟替代 HSE 作为 PLL 的时钟源。为保证测量精度,应用中可以将时钟源替换为 HSE 即可。

37d03470-f790-11ec-ba43-dac502259ad0.png

2. 测量的实现

使用 NUCLEO-U575 开发板的 Timer15 进行 LSE 的测量。Timer15 在 APB2 总线上, 配置为使

用内部时钟,时钟 base 为 160MHz。

使用 Timer15 对 256 个 LSE 周期进行测量,然后对比精确度。

3. 测量的详细情况

3. 测量的详细情况

TIM15 时钟源选择内部时钟,频率为 160MHz。设置为捕获模式。

通过配置 TIM15_SMCR.TS[4 :0]对应 bit21,20,6,5,4 位为 0x00101B,选择 Filtered Timer Input 1(tim_ti1fp1)做为启动 TIM15 开始计时的触发源,根据图 3 可以看到等待捕获的时钟

源是 LSE。

37dd5240-f790-11ec-ba43-dac502259ad0.png

37ecface-f790-11ec-ba43-dac502259ad0.png

通过 TIM15_CCMR1.CC1S[1:0]为 0x01,选择 CC1 通道输入信号,tim_ic1 连接到 tim_ti1,如下图黄色部分。

37f83f38-f790-11ec-ba43-dac502259ad0.png

38181b64-f790-11ec-ba43-dac502259ad0.png

通过配置 TIM15_SMCR.TS[4 :0]为 0x00101B 选择 Filtered Timer Input 1(tim_ti1fp1)做为触发源。即 LSE 过来的信号为触发源。

通过配置 TIM15_SMCR.SMS[3 :0]为 0x0110B 选择 Trigger Mode,在触发源的上升沿启动 TIM15。

382894bc-f790-11ec-ba43-dac502259ad0.png

3840be7a-f790-11ec-ba43-dac502259ad0.png

38684f76-f790-11ec-ba43-dac502259ad0.png

387e0d20-f790-11ec-ba43-dac502259ad0.png

开启 DMA 的时钟,因为 GPDMA1 是挂在 AHB1 总线上的,因此代码如下

388d94fc-f790-11ec-ba43-dac502259ad0.png

下面是 Timer15 的初始化代码:

389ae6ac-f790-11ec-ba43-dac502259ad0.png

38ab92d6-f790-11ec-ba43-dac502259ad0.png

对捕获和用时的计时的程序处理:

在 timer15 DMA 256 个数据存储完成的回调函数中做如下处理,并停止 Timer15 的更新中断和 DMA 中断,256 个 LSE 周期计时数据存储在LES_buffer[256]中。

38bf1c0c-f790-11ec-ba43-dac502259ad0.png

DMA 运行的同时需要使能 Timer15 溢出中断,并对计数器溢出进行计数。代码如下:

38d26d98-f790-11ec-ba43-dac502259ad0.png

在 LES_Counter=256 时进行 LSE 频率的计算,代码如下:

38e3d56a-f790-11ec-ba43-dac502259ad0.png

标准值为:(255/32768)x10000000 = 77819

实际 255 个 LSE 周期值为:[(LSE_End_timer2-

LSE_Start_timer1)+65536*(LSE_Timer15_overload_counter-1)]/16 = A, 255 LSE timer period. one LSE period average accuracy error is (A-77819)/255

看 LSE 是否准确,只要比较上面的标准值和实际测量值就好。

小结

这个 LSE 的准确性测试程序采用的是 DMA 结合时钟溢出计数方式进行计算。使用 DMA 存储每个 LSE 周期的捕获值,同时配合 Timer15 溢出中断进行溢出次数计数,最后对取得的结果进行计算,对 255 个 LSE 周期累加在一起的计时结果进行判断,并同理想值进行比较得知实际的LSE 精度。

同时请留意把驱动能力调节大些,用 LOW 有时候测到的误差会偏大,代码如下:

__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_MEDIUMHIGH);

文档中所用到的工具及版本

NUCLEO-U575 开发板

STM32CubeMX Version:6.99.12-B1

原文标题:工程师笔记|使用HSE测量LSE精度_DMA方式

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LSE
    LSE
    +关注

    关注

    0

    文章

    10

    浏览量

    10250
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97371
  • 时钟源
    +关注

    关注

    0

    文章

    93

    浏览量

    15956
  • HSE
    HSE
    +关注

    关注

    0

    文章

    17

    浏览量

    9456

原文标题:工程师笔记|使用HSE测量LSE精度_DMA方式

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NUCLEO-U575ZI-Q开发板如何在keil5上建立工程,以及能否使用标准库?

    NUCLEO-U575ZI-Q开发板,如何在keil5上建立工程,以及能否使用标准库(不能的情况下如何解决)
    发表于 03-19 06:42

    Nucleo-U575Zi-Q上没有USB枚举吗?

    ,如 AN2606 中所述。但是,STM32U5 不会通过 Nucleo 上的 USB-C 连接器进行枚举。我已验证是否提供了 VDDUSB(DVM 在 SB30 上
    发表于 02-01 07:07

    请问NUCLEO-U575ZI-Q开发板如何在keil5上建立工程?

    NUCLEO-U575ZI-Q开发板,如何在keil5上建立工程,以及能否使用标准库(不能的情况下如何解决)
    发表于 08-07 12:11

    STM32U575/585 MCU硬件开发入门

    本应用笔记为系统开发者概述了开发板特性的硬件实现。开发板特性为供电电源、时钟管理、复位控制、自举模式设置和调试管理。本文档详细介绍了如何使用 STM32U575xx 和 STM32
    发表于 09-06 06:05

    STM32 Nucleo-144 开发板技术文档

    STM32 Nucleo-144 开发板技术文档
    发表于 12-10 13:41 37次下载

    STM32 Nucleo-F746ZG开发板入门初探_STM32 Nucleo-F746ZG资料

    STM32 Nucleo-F746ZG开发板是很好的入门开发板,和经典的Nucleo-64相比,Nucleo-F746ZG
    发表于 12-29 17:09 1w次阅读
    STM32 <b class='flag-5'>Nucleo</b>-F746ZG<b class='flag-5'>开发板</b>入门初探_STM32 <b class='flag-5'>Nucleo</b>-F746ZG资料

    NUCLEO-F767ZI开发板评测

    本文主要介绍了NUCLEO-F767ZI开发板评测,NUCLEO-F767ZI是意法半导体ST公司推出的低成本Nucleo评估,目前为止,
    发表于 01-05 17:16 1.1w次阅读
    <b class='flag-5'>NUCLEO</b>-F767ZI<b class='flag-5'>开发板</b>评测

    介绍STM32 Nucleo-32开发板特点应用

    STM32 Nucleo-32开发板概述
    的头像 发表于 07-03 04:17 6732次阅读

    ST新推STM8系列Nucleo开发板

    意法半导体新推出了两款STM8系列Nucleo开发板,让8位MCU开发者也能体验到STM32 Nucleo系列开发板久经验证的易用性和强大而
    的头像 发表于 09-17 11:20 5267次阅读

    NUCLEO32开发板的电路原理图免费下载

    本文档的主要内容详细介绍的是NUCLEO32开发板的电路原理图免费下载。
    发表于 06-29 08:00 32次下载
    <b class='flag-5'>NUCLEO</b>32<b class='flag-5'>开发板</b>的电路原理图免费下载

    NUCLEO32-L432开发板评测,与以往的NUCLEO32开发板的区别资料下载

    德赢Vwin官网 网为你提供NUCLEO32-L432开发板评测,与以往的NUCLEO32开发板的区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设
    发表于 04-14 08:47 18次下载
    <b class='flag-5'>NUCLEO</b>32-L432<b class='flag-5'>开发板</b>评测,与以往的<b class='flag-5'>NUCLEO</b>32<b class='flag-5'>开发板</b>的区别资料下载

    STM32 Nucleo开发板入门(一)——概述

    STM32 Nucleo开发板入门(一)——概述
    发表于 12-07 18:36 19次下载
    STM32 <b class='flag-5'>Nucleo</b><b class='flag-5'>开发板</b>入门(一)——概述

    官方STM32的NUCLEO开发板使用

    官方STM32的NUCLEO开发板使用概述:因工作需求,先买了stm32的NUCLEO开发板做测试,本人使用的是L073RZ这块板子,也是
    发表于 12-27 19:05 8次下载
    官方STM32的<b class='flag-5'>NUCLEO</b><b class='flag-5'>开发板</b>使用

    UM1974_STM32Nucleo_144脚开发板

    UM1974_STM32Nucleo_144脚开发板
    发表于 11-22 19:14 0次下载
    UM1974_STM32<b class='flag-5'>Nucleo</b>_144脚<b class='flag-5'>开发板</b>

    UM2179_STM32Nucleo_144脚开发板

    UM2179_STM32Nucleo_144脚开发板
    发表于 11-22 19:18 0次下载
    UM2179_STM32<b class='flag-5'>Nucleo</b>_144脚<b class='flag-5'>开发板</b>