打印
[STM8]

STM8L的HSI(内部高速时钟)好用吗?

[复制链接]
811|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2022-6-16 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
能否满足一般的项目?

使用特权

评论回复
沙发
zhenykun| | 2022-6-16 21:53 | 只看该作者

你有什么打算呢?或者你想知道什么?

使用特权

评论回复
板凳
jlyuan|  楼主 | 2022-6-16 21:55 | 只看该作者
因为我看开发板,STM8L-Discovery上面用的就是HSI。而且它板子上的16M晶振也没焊。

使用特权

评论回复
地板
yszong| | 2022-6-16 21:58 | 只看该作者
没问题,精度很高。

使用特权

评论回复
5
jlyuan|  楼主 | 2022-6-16 22:01 | 只看该作者
大家在开发自己的产品时,会选择HSI吗?

使用特权

评论回复
6
wyjie| | 2022-6-16 22:02 | 只看该作者
首先,你要明白STM8的驱动时钟可以采用外部晶振,也可采用STM8内部的RC振荡器,二者只能选其一。 三个语句中的HSI表明是采用内部RC振荡器。

使用特权

评论回复
7
wyjie| | 2022-6-16 22:04 | 只看该作者
  其中HSI RC 16MHz就是其内部含有的RC振荡器,是ST芯片在出厂前就经过校正的但有一定误差的振荡器。时钟经过HSIDIV[1:0]这个分频器,可以获得16MHz、8MHz、4MHz、2MHz的输出tHsiDIV,该输出经过Master Clock Switch(通过配置来选择外部晶振还是内部晶振)后,再分配到CPU时钟和外围设备时钟。

使用特权

评论回复
8
wyjie| | 2022-6-16 22:11 | 只看该作者
因此,STM8可以运行的时钟频率最大可以达到16MHz,你也可以让它低于这个频率运行(有利于低功耗设计)。搞清楚了以上几点,可以知道第一句是配置STM8,让它知道用内部RC振荡器,不要用外部晶振,这样省了一个晶振的钱[成本降低了嘛:)],第二句是让内部振荡器的输出进行8分频,你也可以让它1分频、2分频、4分频,但不能3分频、5分频,因为它内部只设计了这几种分频,况且奇数分频很难实现,你学过数字电路就应该知道。然后第三句话你要看一下库函数的定义
CLK_Source_TypeDef   CLK_GetSYSCLKSource(void)
{
    return((CLK_Source_TypeDef)CLK->CMSR);
}
意思是返回寄存器CMSR的值

使用特权

评论回复
9
zwll| | 2022-6-16 22:14 | 只看该作者
它是表明时钟准备好了没有的状态标志,就像你去叫别人办事,别人要经过考虑,这就需要等待

使用特权

评论回复
10
shimx| | 2022-6-16 22:19 | 只看该作者
你在STM8S内部配置好了时钟后,内部需要产生一定的延迟,而且受各种状况的影响

使用特权

评论回复
11
chuxh| | 2022-6-16 22:21 | 只看该作者
比如外部供电电压变化、引脚干扰等,有可能导致配置时钟失败

使用特权

评论回复
12
supernan| | 2022-6-16 22:24 | 只看该作者
这就要经过查询这个寄存器的值来看是否配置好时钟没有

使用特权

评论回复
13
huangchui| | 2022-6-16 22:26 | 只看该作者
如果这个寄存器不等于0,则配置成功,否则失败

使用特权

评论回复
14
shimx| | 2022-6-16 22:30 | 只看该作者
第三句的while里的意思就是不断地取CMSR的值,看是否等于宏定义CLK_SOURCE_HSI(OXE1),如果相等了,则跳过循环,继续执行以后的语句。

使用特权

评论回复
15
jlyuan|  楼主 | 2022-6-16 22:34 | 只看该作者
你自己用过它的内部时钟没?精度怎样?

使用特权

评论回复
16
juventus9554| | 2022-6-16 22:37 | 只看该作者
精度肯定内部的不行啊,因为内置的会受MCU温度变化影响,而随着开机的时间增加,温度会上升。想精度高还是需要外置的。

使用特权

评论回复
17
wyjie| | 2022-6-16 22:39 | 只看该作者
建议使用外部晶振,同时选用8M的晶振可能更稳定一下,价格也适中。

使用特权

评论回复
18
heweibig| | 2022-6-16 22:41 | 只看该作者
内部HSI时钟精度差,有通信需求的不要用。

使用特权

评论回复
19
heweibig| | 2022-6-16 22:46 | 只看该作者
我一块板上设计了双CpU,是STM8S105k4,运行冋一个程序,采用外部8M晶振,两个的秒闪呼吸灯基本同步,改用HSI后,20秒就差了1秒,把较慢的那个的时钟校正值改到最大值7,也还是偏慢,大约30秒慢1秒钟。

使用特权

评论回复
20
jlyuan|  楼主 | 2022-6-16 22:47 | 只看该作者

嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝