你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8 使用 24MHz 外部晶振无法正常运行

[复制链接]
zero99 发布时间:2018-3-27 11:58
前言
/ h8 l! f1 H& b4 {# v0 c% S目前很多用户在使用 STM8 的时候使用了 16MHz 的内部振荡或者外部晶体来作为时钟源。事实上,STM8 家族中有些系列是支持最高 24MHz 主频的,比如 STM8S207、STM8AF52,等等。那么,需要更快的运行速度时,是否只需要使用更高的主频就可以直接运行了呢?+ R, }7 R1 N6 ^, K' n0 ~

' @: e* n7 r& J; L5 E问题  F7 C, t$ K7 a$ n7 E/ z( C
某客户在其产品的设计中,使用了 STM8AF52A9。客户工程师称其一段以前已经验证过的代码,使用 STVP 下载后无法正常运行。但是他试过在 IAR for STM8 中是可以正常调试的,不知道为何使用 STVP 后就无法正常工作了呢?
/ q- c5 l: {+ s5 S. m9 Z( a# W, J, e
调研" m" w1 R; I5 L8 s
1. 了解问题
& j8 b; t8 k& ~$ Y8 w使用编译好的.s19 文件使用 STVP 烧写到 STM8AF52A9,发现上电后是无法正常工作的。观察用户代码,在 IAR 中进入调试状态,可以断点调试,单步调试,都可以。不过,最后发现在线调试时,一旦运行到以下代码时,程序就死掉了。
# \5 n. h3 S3 y/ m7 K3 s, n; K' O- u 51.png % T" w" P3 Y+ O* k

3 j3 G- S* I- U# h2. 分析问题
; y9 s; ~/ q& j* eSTM8 上电后默认的主时钟源为内部 HSI RC 时钟的 8 分频,即 f HSI /8。原因是 HSI 时钟的稳定时间短,而 8 分频可保证系统在较差的 V DD 条件下安全启动。等主时钟源稳定后,用户可以自行将主时钟切换到其他时钟源上。
2 {" ?' P8 S6 y1 }3 t/ I4 B7 j) o. R  X
先来看一下刚才这个函数的原型:
- d5 |5 x& Z9 V( c# g 52.png
4 o! j% ~7 [- ^' R2 i
# t7 |% {3 a% a4 ~5 }' r% @它的作用在于切换时钟源。CLK_SwitchMode 代表使用的切换方式,有自动切换和手动切换;CLK_NewClock 代表新的时钟源;ITState 代表是否使能或禁用中断;CLK_CurrentClockState 代表切换后原时钟源的状态是否保持或关闭。所以,用户代码的意思就是:使用自动切换方式,切换主时钟到 HSE,不产生中断,切换后原主时钟源关闭。
3 O2 a$ f' j* k8 R+ a( }! R
) Z- u1 |) I, b- e, P' k切换主时钟源后程序就出问题这种情况,看来问题很可能出在 HSE 上,必须对外部晶振进行检测。原本思考是否 HSE 外部晶体的振荡是否存在什么问题,但是在使用示波器进行检测后发现 HSE 已经是在正常的振荡当中了,而且波形很漂亮。但是,在示波器上看到频率是 24MHz。检查晶体上的标记,果然是 24MHz 的频率。所以,客户在使用 STM8AF52A9 时,为了提高性能,使用了最高主频 24MHz。
/ C/ Y' I$ U# d
$ ~/ ]5 k) K# E& H4 w0 u; R客户所遇到的问题应该就出在 24MHz 的使用上了。客户以前使用都是 16MHz 的主频。STM8 要求,如果用户使用的主时钟+ Z& d6 J0 d" y8 N% Z
频率超过了 16MHz,那么 Flash 以及 EEPROM 的访问需要配置 1 个等待周期。, t  _! M$ {0 L8 ~# @- u
7 M0 N  l8 \. R; ?6 m+ [6 N
STM8AF52A9 数据手册可见如下:
9 l5 B" n) q# u, o 53.png & w: u. \: C, B9 ^- @

. Z# X% @& `. K- L% v( Q) ~  q参考手册 RM0016 在 HSE 的描述中,也提到了:
' I2 C  y8 l: B  } 54.png
5 ^2 |4 G0 E% K# ^/ ?9 T: @
0 D; _# d. s) e. |1 {7 q...; R" U. q/ `* y# z$ W0 E

5 G3 f4 {1 q( S3 s! h# `3 U" r了解更多,请下载后阅读
' J7 o- T4 G) u8 g1 y8 y2 |% O
- ~* d9 T+ z% Q3 A6 o下载地址1>>         下载地址2>>       更多实战经验>> 2 t: x9 x# f! R  b( p. k

5 L0 N6 S/ o. P& `" D/ @
收藏 1 评论2 发布时间:2018-3-27 11:58

举报

2个回答
maxtch 回答时间:2018-3-28 01:16:44
本帖最后由 maxtch 于 2018-3-28 01:20 编辑   Z& @7 `3 d, Z+ v% E
! g# c: x+ A% b3 ?. U: B! I
这个应该是开发人员的基本知识。这帮家伙只知道拿 ST 的库代码,不晓得先看一遍手册,难怪开发出来的程序都如同渣渣。不管是这里,还是学校和培训机构,还是企业,都应该培训开发人员上手芯片找库之前先把芯片本身的手册读一遍。
' u8 ^7 X6 p4 @2 l( `
8 ^, u3 z- \; |0 O; ]开发人员!RTFM!读一遍他妈的手册有这么费劲吗?!
" g- P- {: ]& D# Y
3 Z% x( U  u" q4 @
robter 回答时间:2018-7-17 21:17:22
最高主频 24MHz也应该能用+ t% S) v7 y7 t+ [( o; C& g' T1 t: x  Q
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版