当前位置: 首页 > news >正文

[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所有,任何人未经允许禁止转载。

http://www.cnnetsun.cn/news/138301.html

相关文章:

  • 03.统计学机器学习
  • [Poi2011]Lightning Conductor题解
  • 一文读懂大模型:收藏级教程,助你从入门到精通
  • Nginx云计算大数据——安装AND版本升级(普通升级+平滑升级+失败回滚)
  • GPT-5.2 实测数据流出:逻辑推理性能翻倍,大模型“幻觉”真的被终结了吗?
  • SQL SERVER——通过计划任务方式每月对配置数据、审计数据等进行备份
  • 前端——跨平台桌面应用开发实践
  • OpenAI 的反击!GPT-5.2 强行拉开代差,Gemini 3 和 Claude 4 还有机会吗?
  • 零售打工人加薪难?靠这张证,我在激烈竞争里站稳了脚跟
  • 基于springboot的多媒体素材库的开发与应用毕业论文+PPT(附源代码+演示视频)
  • 从离线语音到多模态智能体四博智联 AI 硬件整体解决方案全景解析
  • 我发现跨医院联合训练让诊断准确率飙升后来才知道是横向联邦学习在数据孤岛中的绝招
  • 性能压测工具:wrk
  • 论文引用标注工具排名2025:6大平台+自动规范推荐
  • Kotaemon AWS EC2部署实例:国际业务首选
  • 实在没货,简历(软件测试)咋写?
  • 网约车服务端线上流量巡检与测试验收技术
  • 公考日记7
  • 火电一次调频、自抗扰调频及群智能算法智能调频在MATLAB/Simulink中的应用
  • 科研实验室温湿度监控新范式:以太网 POE 技术全场景解决方案
  • RV1126 NO.57:ROCKX+RV1126人脸识别推流项目之读取人脸图片并把特征值保存到sqlite3数据库
  • 探索SAR ADC:45nm工艺下的高速高精度设计
  • 【小增长技术团队东哥分享】Electron vs Electron-Vite vs Electron-Egg:桌面端开发到底该选谁?
  • 测试价值的量化评估:从成本中心到价值证明的路径探索
  • 测试领导力:在敏捷洪流中筑造质量堤坝
  • C++常用设计模式
  • Spring Boot 自动配置深度解析:原理、实战与源码追踪
  • 无代码解决方案:破解企业数字化转型效率困局
  • SAM (Segment Anything Model):万物皆可分割-k学长深度学习专栏
  • Mysql 报错 “Public Key Retrieval is not allowed”