STM32
直播中

刘高

10年用户 964经验值
擅长:嵌入式技术
私信 关注
[问答]

STM32L051的MSI怎么校准的?

手册里面说了可以使用LSE测试实际的系统时钟午餐,当用tiM21测出了时钟误差时,该怎么使用RCC_ICSCR里的MSITRIM[7:0],才能将MSI时钟校准啊,手册里也没有说明。有没有哪位知道该怎么校准的,请告知下,谢谢!!

回帖(2)

李欢

2024-4-28 09:26:29
标准库里面有相关的校准函数,调那些函数看看
举报

那年我十七_

2024-4-28 17:12:53
STM32L051的MSI(内部系统时钟)校准可以通过以下步骤进行:

1. 首先,确保LSE(低速度外部时钟)已经正确配置并运行。这是因为我们将使用LSE作为参考时钟来校准MSI。

2. 接下来,配置TIM21以测量MSI时钟的误差。为了实现这一点,你需要将TIM21的输入时钟设置为MSI,并将触发输入设置为LSE。这样,TIM21将测量MSI和LSE之间的频率差异。

3. 启动TIM21,并让它运行一段时间以收集足够的数据来计算误差。

4. 读取TIM21的计数值。这个计数值将表示MSI和LSE之间的频率差异。

5. 根据计数值计算MSI的校准值。MSI校准值的范围是0到255。计算公式如下:

   MSI校准值 = (计数值 / LSE频率) * MSI频率

   其中,LSE频率和MSI频率分别是LSE和MSI的时钟频率。

6. 更新RCC_ICSCR寄存器中的MSITRIM[7:0]位,将计算出的MSI校准值写入该位。

7. 重新启动MSI时钟,以应用新的校准值。

8. 重复步骤3-7,直到MSI时钟的误差达到可接受的范围。

请注意,这个过程可能需要一些实验和调整,以找到最佳的MSI校准值。此外,由于手册中没有提供具体的校准方法,你可能需要参考STM32的参考手册和应用笔记,以获取更多关于时钟系统和校准的详细信息。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分