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

【实战经验】UART异常错误分析

[复制链接]
zero99 发布时间:2016-6-28 14:42
UART异常错误分析4 u  v- h, ]6 B8 Y. q" j
问题现象$ N! |: \6 ]# D4 ?; Y4 e5 J
客户在产线批量生产测试uart的时候,发现有一部分出现了如noise detect,framing err等异常状态进入中断处理5 r: i0 ?  B) G; v" B+ R, A
原因分析
/ z5 J3 G( [% \" W从这些出错的原因看起来,比较像是物理层的错误导致,因为如果是应用代码或是代码库的bug,复现率应该会比较高,而不是大批量量产时出现的个例,所以还是从物理层考虑,因为是个例,所以基本排除PCB布线的问题和外围环境干扰的问题,通过和客户工程师沟通,发现UART使用的时钟源为HSI,而客户也没有对HSI进行CALIBRATION。
. X+ P7 P$ U: N! n
解决方法
) V' n5 H, F& ~. K如下寄存器RCC_CR中的HSITRIM就是对HSI时钟进行校准。
& ~! X1 p) g) L- i) c* z* \当使用HSI作为UART时钟源是,需要对其进行标定,而标定的方法是使用比较精确的HSE或者LSE,方法比较简单,如枚举HSITRIM[4:0],也就32种可能(确切的说是31种,默认为0不进行调整),然后作为某个TIMER的时钟源,和LSE作为TIMER的时钟源进行比较,找到最近的那个HSITRIM值写入寄存器即可,实现了对HSI时钟的校准。
00.jpg
总结) e& m3 ]8 q. u  t& k. u
在出现异常的错误状态时,需要首先考虑的是时钟是否稳定,电源电压是否在合理范围内。
3 i, f  U( V) r6 u: j9 c" n' e

7 n7 O% Q) Q5 `; L5 f文档下载地址:
9 G. [3 Q4 F: Ohttps://www.stmcu.org.cn/document/list/index/category-1018
2 t# T9 t7 o; h! n" Q: Y
" w- k8 C, |$ O' N
实战经验汇总:$ `+ }: L3 B) B, {3 H$ s$ I# T
https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html
赞 收藏 评论0 发布时间:2016-6-28 14:42

举报

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