请选择 进入手机版 | 继续访问电脑版
查看: 866|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    953

    主题

    3765

    帖子

    93

    好友

    Rank: 9Rank: 9Rank: 9

    管理员

    最后登录
    2018-2-18
    发表于 2016-6-28 14:42:51 | 显示全部楼层 |阅读模式
    UART异常错误分析
    问题现象
    客户在产线批量生产测试uart的时候,发现有一部分出现了如noise detect,framing err等异常状态进入中断处理
    原因分析
    从这些出错的原因看起来,比较像是物理层的错误导致,因为如果是应用代码或是代码库的bug,复现率应该会比较高,而不是大批量量产时出现的个例,所以还是从物理层考虑,因为是个例,所以基本排除PCB布线的问题和外围环境干扰的问题,通过和客户工程师沟通,发现UART使用的时钟源为HSI,而客户也没有对HSI进行CALIBRATION。
    解决方法
    如下寄存器RCC_CR中的HSITRIM就是对HSI时钟进行校准。
    当使用HSI作为UART时钟源是,需要对其进行标定,而标定的方法是使用比较精确的HSE或者LSE,方法比较简单,如枚举HSITRIM[4:0],也就32种可能(确切的说是31种,默认为0不进行调整),然后作为某个TIMER的时钟源,和LSE作为TIMER的时钟源进行比较,找到最近的那个HSITRIM值写入寄存器即可,实现了对HSI时钟的校准。
    00.jpg
    总结
    在出现异常的错误状态时,需要首先考虑的是时钟是否稳定,电源电压是否在合理范围内。

    实战经验汇总:
    http://www.stmcu.org/module/forum/thread-576401-1-1.html
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|意法半导体STM32/STM8技术社区

    GMT+8, 2018-2-20 09:36 , Processed in 0.099816 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表