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

STM32 CAN中波特率的有关问题

[复制链接]
yumeii 发布时间:2019-12-18 17:43
我们有时候会用到SMT32F0x2芯片做产品开发,用到其中的CAN外设。采用8MHz外部晶振,经锁相环PLL  6倍频后产生48M主频,配置为250K波特率。
  q4 r- l$ h. S# _( j, ^3 H+ T
" V. Y, l' N+ c1 E0 \

. z( Y4 g( k# c* j( K4 l: b可实际示波器抓的和预期不符,大概是理论值1/6的样子。下面是相关配置代码:% y& v* E- k$ A+ ^+ K

; U! ?# W+ Q$ @/ Z+ ?3 P
( p' O6 C6 m: j, N+ N8 e
1.png 6 ^  o" ~- t7 V& t* R/ G! @; A
: \3 O( O+ U! Y" X% I, l3 m

  m8 O& E/ t; i按照上面的配置,波特率的确应该是250Kbps,可测得值怎么才是理论值1/6?) X% ?, i8 h' _1 A# |+ r* K6 N( W
! W& s8 k8 Y/ W. v

, T' w% L0 O0 q) N4 u" c; m) h第一感觉是那个PLL没有起作用。这首先让人想到PLL之前的时钟源是否有问题。  Q' ]" J- o% ?  P9 a, V: V

, Z/ T+ c8 u0 M; O* c  g' g/ x- @

0 R+ }* z' m; W" R鉴于此,该用户检查外部晶振振荡及焊接情况,结果发现晶振没焊接好。这意味着根本没有HSE时钟给到PLL,自然它没法起作用。在这种情形下,代码里当检测到HSE无效时会默认将内部HSI时钟作为系统时钟,而这个HSI 刚好也是8MHz,所以测得CAN实际波特率为实际值的1/6.
( z: a3 p2 }1 e" r2 J$ J( n: u) y) Z8 W% k

- G7 r7 i0 e) x9 R9 K9 I 2.png
; C9 s" \) v/ }- q& k' k$ h' ^  P% z0 i1 T3 b

5 N: c  r3 a+ I- K3 O, B, l当用户将晶振重新焊接良好后,就一切正常了。那么,到此有人或许会问,是不是这个外部晶振焊接OK、软件配置代码也OK就不会出现这个问题呢? 那还不一定!
. _- Z$ a# S9 U0 Z8 W5 k3 ?' T1 W+ e/ Z0 [- B7 g! \

8 l3 ?9 r7 ?3 H2 D, Y$ X毕竟,你外部晶振品质及焊接良好,软件配置正确还不能完全保证PLL一定正常工作。我们不妨看下STM32F0x2芯片的电源供应布局框图。4 f# G- a4 n' ?
' `- B% _3 t5 E) w7 \/ y& f

/ q7 N* `* ]. R8 n. v$ p 3.png , Z1 Y# t- K1 r
# w4 p  Q. J! ~4 p* ~( F: Q1 s% k3 f8 X
7 @$ E, M* m, Y9 s
从框图中我们可以看出,PLL是属于模拟电路部分,它的供电由VDDA提供。如果说芯片的VDDA脚没有正常供电【当然包括没有正常焊接情况】的话,PLL仍然是没法正常工作的,随之而来的时钟也就没法呈现我们软件代码配置所期望的结果。自然,如果作为芯片工作心跳的时钟出现异常时,它引起的连锁反应往往就会遍及到方方面面。' t$ O$ e0 b" u# X7 U
: ^; K8 R0 x  N" [, N. f6 Q# J) W
. S* t# `6 g' r1 X6 P( l' f
这里就上述案例做个简单延展,提醒我们在做MCU调试出现问题时,除了查找代码原因外,也别忘了最基本的电源供应、电源脚、晶振脚的连接、焊接情况。对于STM32芯片工作后的各种时钟信号的检测,有个比较简单方便的方法,那就是将某内部时钟【有时可能经过分频了】通过MCO【Master Clock Out】脚引出来,直接通过示波器查看即可。下图就是STM32F0X2芯片的MCO输出连接映射图。
' t# g5 X$ d- E5 r7 \& T2 ^6 h2 M% x( F
9 Q/ W& U9 A# t% T3 ^/ K
4.png + D& ?* B+ R2 q1 c7 T0 i/ \

/ {) P; C7 g3 i3 b+ h. c. _5 V4 J
. v  h' D3 r* L. ]. v1 \
+ p6 {, C; c$ ^) ?, e' F& z/ u
$ m; d+ {7 [- w3 h/ ^$ i4 k  c
赞 收藏 评论0 发布时间:2019-12-18 17:43

举报

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