打印
[STM8]

STM8 使用 24MHz 外部晶振无法正常运行解决方案

[复制链接]
976|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
目前很多用户在使用 STM8 的时候使用了 16MHz 的内部振荡或者外部晶体来作为时钟源。 事实上, STM8 家族中有些系列是
支持最高 24MHz 主频的,比如 STM8S207、 STM8AF52, 等等。那么, 需要更快的运行速度时, 是否只需要使用更高的主
频就可以直接运行了呢?  

某客户在其产品的设计中,使用了 STM8AF52A9。 客户工程师称其一段以前已经验证过的代码,使用 STVP 下载后无法正常
运行。但是他试过在 IAR for STM8 中是可以正常调试的,不知道为何使用 STVP 后就无法正常工作了呢?


使用特权

评论回复
沙发
豆杀包|  楼主 | 2021-11-3 14:19 | 只看该作者
1.了解问题
使用编译好的.s19 文件使用 STVP 烧写到 STM8AF52A9, 发现上电后是无法正常工作的。观察用户代码, 在 IAR 中进入调试
状态, 可以断点调试,单步调试,都可以。不过, 最后发现在线调试时,一旦运行到以下代码时,程序就死掉了。
status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE,
CLK_CURRENTCLOCKSTATE_DISABLE);  

使用特权

评论回复
板凳
豆杀包|  楼主 | 2021-11-3 14:20 | 只看该作者
2.分析问题
STM8 上电后默认的主时钟源为内部 HSI RC 时钟的 8 分频,即 fHSI/8。原因是 HSI 时钟的稳定时间短,而 8 分频可保证系统
在较差的 VDD条件下安全启动。 等主时钟源稳定后,用户可以自行将主时钟切换到其他时钟源上。
先来看一下刚才这个函数的原型:
ErrorStatus CLK_ClockSwitchConfig(CLK_SwitchMode_TypeDef CLK_SwitchMode,
CLK_Source_TypeDef CLK_NewClock, FunctionalState ITState, CLK_CurrentClockState_TypeDef
CLK_CurrentClockState)
它的作用在于切换时钟源。 CLK_SwitchMode 代表使用的切换方式,有自动切换和手动切换; CLK_NewClock 代表新的时钟
源; ITState 代表是否使能或禁用中断; CLK_CurrentClockState 代表切换后原时钟源的状态是否保持或关闭。所以,用户代
码的意思就是: 使用自动切换方式,切换主时钟到 HSE,不产生中断,切换后原主时钟源关闭。
切换主时钟源后程序就出问题这种情况,看来问题很可能出在 HSE 上,必须对外部晶振进行检测。 原本思考是否 HSE 外部
晶体的振荡是否存在什么问题,但是在使用示波器进行检测后发现 HSE 已经是在正常的振荡当中了, 而且波形很漂亮。但是,
在示波器上看到频率是 24MHz。 检查晶体上的标记,果然是 24MHz 的频率。所以,客户在使用 STM8AF52A9 时,为了提高
性能,使用了最高主频 24MHz。
客户所遇到的问题应该就出在 24MHz 的使用上了。 客户以前使用都是 16MHz 的主频。 STM8 要求,如果用户使用的主时钟
频率超过了 16MHz,那么 Flash 以及 EEPROM 的访问需要配置 1 个等待周期。  

STM8AF52A9 数据手册可见如下:

参考手册 RM0016 在 HSE 的描述中,也提到了:

对于选择 0 等待周期还是 1 等待周期, 必须在选项字节中选择。检查芯片的选项字节,发现选择的是 0 等待周期,所以问题
就是就出在这了。


使用特权

评论回复
地板
豆杀包|  楼主 | 2021-11-3 14:21 | 只看该作者
使用 STVP, 在 OPTION BYTE 页面修改选项字节, 将等待周期设置为 1 个等待周期,如下:  


下载更新芯片的选项字节, 使用之前的.hex 文件, 可以正常工作了。


使用特权

评论回复
5
豆杀包|  楼主 | 2021-11-3 14:21 | 只看该作者
结论
由于使用的 24MHz 主频已经超出 16MHz,而在选项字节中并没有修改等待周期为 1 等待周期,导致在 Flash 访问上存在问
题,无法正常运行程序。
处理
需要修改选项字节,将等待周期修改为 1 等待周期。  

使用特权

评论回复
6
大秦正声| | 2021-11-4 12:35 | 只看该作者
听说stm8s系列外部晶振容易被干扰。

使用特权

评论回复
7
paotangsan| | 2021-12-1 14:07 | 只看该作者
无法正常工作的表象是什么呢

使用特权

评论回复
8
heimaojingzhang| | 2021-12-1 14:09 | 只看该作者
非常不错的方法

使用特权

评论回复
9
keaibukelian| | 2021-12-1 14:15 | 只看该作者
外部晶振容易受到干扰跟单片机没有关系吧

使用特权

评论回复
10
labasi| | 2021-12-1 14:16 | 只看该作者
产生干扰的原因是什么呢

使用特权

评论回复
11
tpgf| | 2021-12-1 14:20 | 只看该作者
其他的型号存在这个问题吗

使用特权

评论回复
12
renzheshengui| | 2021-12-1 14:21 | 只看该作者
这个是最高频率的晶振吗

使用特权

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

本版积分规则

49

主题

323

帖子

0

粉丝