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单片机】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


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

    关注

    0

    文章

    10

    浏览量

    10169
  • 开发板
    +关注

    关注

    25

    文章

    4426

    浏览量

    93939
  • 时钟源
    +关注

    关注

    0

    文章

    87

    浏览量

    15770
  • HSE
    HSE
    +关注

    关注

    0

    文章

    16

    浏览量

    9347

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

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

收藏 人收藏

    评论

    相关推荐

    求助,关于NUCLEO-U575ZI-Q中例程TIM_InputCapture的相关疑问

    我在学习NUCLEO-U575ZI-Q中例程TIM_InputCapture的时候,看到TIM1的clock source配置成disable,为什么不是配置成“internal clock”
    发表于 03-11 07:17

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

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

    NUCLEO-F412ZG试用体验】+收到开发板开箱。

    开发板两侧是NUCLEO开发板引出的Morpho及Zio接口,兼容Arduino UNO。下方具有USB-OTG接口。以及蓝色用户按键和黑色复位按键。控制器边上标注X2的是32K的LSE
    发表于 11-07 14:15

    使用sprintf其NUCLEO-U575ZI-Q会出现硬故障这是为何

    你好我有一个问题,如果我使用 sprintf,我的 NUCLEO-U575ZI-Q 会出现硬故障。我通过基于示例项目“Tx_Thread_Sync”创建一个新项目来重现该错误。所以我正在
    发表于 12-01 06:40

    STM32U575旁路模式下的最大LSE频率是1 MHz还是40 kHz?

    在 2021 年 9 月的 STM32U575/585 RM0456 Rev 2 中,我看到以下内容:"11.4.7 LSE时钟...外部源(LSE 旁路)在这种模式下,必须提供外部时钟源
    发表于 12-14 08:19

    stm32l053RB NUCLEO开发板进行USB协议解析时,USB工作会影响TIMER的时钟吗?

    我需要你的帮助才能正确识别我的问题,请帮助我,背景:我在使用stm32l053RB NUCLEO开发板进行USB协议解析时遇到问题。问题:使用定时器产生PWM时,一旦USB接收数据被配置,PWM波形
    发表于 01-06 07:59

    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

    STM32U575/585 MCU硬件开发入门

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

    NUCLEO-F767ZI开发板评测

    本文主要介绍了NUCLEO-F767ZI开发板评测,NUCLEO-F767ZI是意法半导体ST公司推出的低成本Nucleo评估板,目前为止,Nucl
    发表于 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 6403次阅读

    ST新推STM8系列Nucleo开发板

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

    NUCLEO F030R8开发板作为STli

    NUCLEO F030R8开发板作为STli
    发表于 11-25 19:21 10次下载
    <b class='flag-5'>NUCLEO</b> F030R8<b class='flag-5'>开发板</b>作为STli

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

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