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

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

[复制链接]
zero99 发布时间:2018-3-27 11:58
前言( [/ S4 R. {  X- ]* ^( @6 ^
目前很多用户在使用 STM8 的时候使用了 16MHz 的内部振荡或者外部晶体来作为时钟源。事实上,STM8 家族中有些系列是支持最高 24MHz 主频的,比如 STM8S207、STM8AF52,等等。那么,需要更快的运行速度时,是否只需要使用更高的主频就可以直接运行了呢?1 f( S% o" A& C' q( b' v+ g

8 m; x, o: n4 q2 [- Y& [9 v问题3 y& L3 u2 E6 \7 j0 \: x& T
某客户在其产品的设计中,使用了 STM8AF52A9。客户工程师称其一段以前已经验证过的代码,使用 STVP 下载后无法正常运行。但是他试过在 IAR for STM8 中是可以正常调试的,不知道为何使用 STVP 后就无法正常工作了呢?- C! P# h. L( u* Z7 f9 l3 M

  K% \0 ?5 @2 K. p" x调研$ \; Q. {/ [6 Y6 i; k# Y" g
1. 了解问题
* r% O  l+ E/ k; r使用编译好的.s19 文件使用 STVP 烧写到 STM8AF52A9,发现上电后是无法正常工作的。观察用户代码,在 IAR 中进入调试状态,可以断点调试,单步调试,都可以。不过,最后发现在线调试时,一旦运行到以下代码时,程序就死掉了。
% }- q% b+ a+ X) F 51.png 4 \9 R( p, a$ @& r% b' ~; P
6 E, T$ [1 d& m9 q5 B$ d1 g
2. 分析问题
) Z8 N1 W  O( ?1 V7 {1 c: P! GSTM8 上电后默认的主时钟源为内部 HSI RC 时钟的 8 分频,即 f HSI /8。原因是 HSI 时钟的稳定时间短,而 8 分频可保证系统在较差的 V DD 条件下安全启动。等主时钟源稳定后,用户可以自行将主时钟切换到其他时钟源上。
  S* d4 q  [8 p
; ?- o! R0 P. `$ Z) K- ]1 W先来看一下刚才这个函数的原型:
# X& |+ m( m9 ]2 `' f% k5 f% s. D3 @ 52.png # Q! G; s% E$ U* d
% _; l' Z! ?% f# O7 C7 c5 Q/ p% Z
它的作用在于切换时钟源。CLK_SwitchMode 代表使用的切换方式,有自动切换和手动切换;CLK_NewClock 代表新的时钟源;ITState 代表是否使能或禁用中断;CLK_CurrentClockState 代表切换后原时钟源的状态是否保持或关闭。所以,用户代码的意思就是:使用自动切换方式,切换主时钟到 HSE,不产生中断,切换后原主时钟源关闭。5 k+ ~2 K- M0 w; M6 t

' H" C* b2 q8 x# H% _+ i/ ^" [切换主时钟源后程序就出问题这种情况,看来问题很可能出在 HSE 上,必须对外部晶振进行检测。原本思考是否 HSE 外部晶体的振荡是否存在什么问题,但是在使用示波器进行检测后发现 HSE 已经是在正常的振荡当中了,而且波形很漂亮。但是,在示波器上看到频率是 24MHz。检查晶体上的标记,果然是 24MHz 的频率。所以,客户在使用 STM8AF52A9 时,为了提高性能,使用了最高主频 24MHz。
4 p- c5 R' r+ o* p4 S, g% i
/ @, L" p, J8 W客户所遇到的问题应该就出在 24MHz 的使用上了。客户以前使用都是 16MHz 的主频。STM8 要求,如果用户使用的主时钟: }. E$ p& t' |/ }# s% ?$ p# ^
频率超过了 16MHz,那么 Flash 以及 EEPROM 的访问需要配置 1 个等待周期。/ x% e4 s# i& I0 t$ Z7 h1 K

. {" L# R! P; t6 C/ e4 b7 c' v  sSTM8AF52A9 数据手册可见如下:+ A/ Y5 X% T% n6 u
53.png , @7 D; O) l  ~

% U" k2 e% W9 k5 `参考手册 RM0016 在 HSE 的描述中,也提到了:
1 U; a) Q- M7 A1 T2 @, R 54.png
" H- W& {% _" [' u# R- }' c# h  q% L3 y3 E+ b
..., ?0 m0 p& L+ F5 q! x  X7 e  |
2 G$ T( v  t) \4 T# r. e) A- L5 @
了解更多,请下载后阅读
5 U6 m. V+ ?4 n9 ?% S$ o% e. X/ A9 G# u$ {9 F5 f% O& ?
下载地址1>>         下载地址2>>       更多实战经验>> ) @! F3 s& ^! g# F2 `; v

/ p6 [4 ^7 ~* |! _* l- u) r( f
赞 收藏 1 评论2 发布时间:2018-3-27 11:58

举报

2个回答
maxtch 回答时间:2018-3-28 01:16:44
本帖最后由 maxtch 于 2018-3-28 01:20 编辑
4 m. c* `% d5 J6 j3 s3 G( @# o2 j8 D% j1 ~# ~, S- V% F5 ^
这个应该是开发人员的基本知识。这帮家伙只知道拿 ST 的库代码,不晓得先看一遍手册,难怪开发出来的程序都如同渣渣。不管是这里,还是学校和培训机构,还是企业,都应该培训开发人员上手芯片找库之前先把芯片本身的手册读一遍。+ d$ ]( ^9 q# T
5 U5 U; d2 F# f2 ?# m' |
开发人员!RTFM!读一遍他妈的手册有这么费劲吗?!7 A9 k$ y3 s4 r% I& U3 z  j  f

/ v1 c7 _# u" }1 ?0 [% n8 z
robter 回答时间:2018-7-17 21:17:22
最高主频 24MHz也应该能用
; U0 L' @- M- q6 A

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版