news 2026/4/25 3:31:35

[APM32F1] APM32F103 CAN 丢包元凶:省成本用 HSI

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[APM32F1] APM32F103 CAN 丢包元凶:省成本用 HSI

一、概述

近期有客户在基于 APM32F103 的电动两轮车项目研发中,遭遇了CAN 通信频繁丢包的棘手问题:调试时发现,F103 每发送7-8 帧数据,往往仅能收到 1 帧来自电机控制器的回复。
经笔者现场排查分析,原因挺典型:为了抠成本,客户把CAN的时钟源换成了内部 HSI,没按常规用外部晶振。现在做产品是真卷,成本能省一点是一点,但这细节没把控好就出问题了。
好在沟通后,客户同意后面评估改版,换成外部晶振。不过眼下这批小批量货得先 “救火”,所以我用了F103 的 demo 复现问题,也整理了些解决思路,给大伙儿碰到类似情况时当个参考。
二、问题分析
1、出现问题后客户第一时间进行交叉验证,问题定位到芯片。现场使用逻辑分析仪解析CAN报文无应答。

2、现场和客户沟通了解到CAN时钟来源是HSI,初步排查大概率是因为系统时钟偏差导致,后面使用热风枪100多℃在芯片环绕加热,波形有改善,后面CAN波形正常了,进一步证明了是系统时钟偏差导致。

3、最后的软件解决方案是参考F103用户手册说明,软件系统在发送3次CAN报文后,仍没有接收到应答,软件步进调节HSITRM。现±5内扫频式步进,如果还是没有改善,再增大范围至±16。

4、HSITRM调节方式是芯片CAN发送0x55(0101 0101b)或0xAA(1010 1010b)数据,调节HSITRM值,让一高一低的频率接近250KHz,占空比接近50%。

三、验证

1、F103 demo使用内部晶振常温下,发送CAN报文——数据正常(注:小编手上的芯片常温特性比较好)

2、F103 demo 使用内部晶振热风枪100℃吹芯片表面,发送CAN报文——数据异常

3、F103 demo使用外部晶振常温下,发送CAN报文——数据正常

4、F103 demo 使用外部晶振热风枪100℃吹芯片表面,发送CAN报文——数据正常

5、F103 demo使用内部晶振常温下,修改HSITM,发送CAN报文——数据异常

6、F103 demo使用内部晶振热风枪100℃吹芯片表面,修改HSITM,发送CAN报文——数据正常

四、总结

通过上面验证的1、2、5、6点可以发现温度确实会对应HSI频率有影响;通过3和4点可以发现外部晶振时钟来源,CAN波特率几乎不受外部温度影响;通过5和6点对比可以发现,微调HSITM值可以让芯片HSISCK时钟频率更加接近目标值,这样芯片CAN正常接收了。
作为FAE每天都会遇到各种疑难杂症,不是在救火就是在救火的路上,有些是对芯片应用不深入了解使用导致,有些是为了扣成本搞掉了核心关键的器件或外围造成。
现极海推出了F402系列,性能比F103更好,价格更有优势,助力客户降成。(相关F103移植到F402说明可以参考小编往期文章https://bbs.21ic.com/icview-3447448-1-1.html


---------------------
作者:gdygn007
链接:https://bbs.21ic.com/icview-3488334-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 13:40:57

Python语法基础笔记(五)

一、函数含义:将独立的代码块组织成一个整体,使其具有特殊功能的代码集,在需要的时候再去调用即可作用:提高代码的重用性,执行体代码看上去更加简练基本格式定义函数:def 函数名()&a…

作者头像 李华
网站建设 2026/4/23 12:42:51

系统中断损失百万:软件版本升级管控的实战避坑指南

系统中断损失百万:软件版本升级管控的实战避坑指南引言:别让一次小升级造成大损失 在2025年的企业IT管理中,软件版本升级早已不再是简单地“点个更新按钮”就能解决的事情。很多企业都曾遭遇过因版本升级不当导致的系统中断,损失高…

作者头像 李华
网站建设 2026/4/25 13:16:27

[SDOI2016] 征途题解

P4072 [SDOI2016] 征途 题目描述 Pine 开始了从 SSS 地到 TTT 地的征途。 从 SSS 地到 TTT 地的路可以划分成 nnn 段,相邻两段路的分界点设有休息站。 Pine 计划用 mmm 天到达 TTT 地。除第 mmm 天外,每一天晚上 Pine 都必须在休息站过夜。所以&…

作者头像 李华
网站建设 2026/4/23 16:34:17

你的测试团队为何倦怠?重塑动机的心理学家方案

当代码遇见人心 在软件测试领域,我们常聚焦于缺陷追踪、用例设计或自动化脚本,却鲜少深入探讨测试活动背后的核心驱动力——人的动机。根据自我决定理论,人类行为受自主性、能力感与归属感三大心理需求影响。对测试工程师而言,动…

作者头像 李华
网站建设 2026/4/24 1:57:25

测试变革的推动:从执行者到价值创造者的演进

在数字化转型加速的今天,软件已渗透至各行各业,从金融交易到医疗健康,从智能家居到自动驾驶,软件的可靠性与安全性直接关系到用户体验乃至生命财产安全。作为软件质量的守护者,测试从业者正面临前所未有的挑战与机遇。…

作者头像 李华