2025.5.22 经验分享会
2025年5月22日下午,上海实邦电子科技有限公司开展了一次经验交流会,由崔工和王工一起分享了他们在工作中积累的一些经验。
首先是崔工分享了----EMC测试
EMC测试:
1. 脉冲测试
问题现象:
在过脉冲测试时发现呼吸机在风机运行的过程中会出现类似于断电重启的情况。
问题排查:
1. 在测试过程中我们发现机器断电时电源适配器上的指示灯会熄灭,我们就用万用表测量适配器输出的电压,发现电压会被突然拉低,导致板子重启,我们就怀疑是不是适配器的问题,于是我们测试了3-4个不同牌子不同功率的适配器,发现确实有差距,但是这几个适配器最后还是会有断电重启的情况发生,只是运行时间长短有差距,并且我们也用样机测试发现这几个适配器配上样机均可以正常工作,我们就觉得虽然适配器有区别但是问题不是在适配器上。
2.在测试时我们发现只有在风机运行的时候才会死机,我们怀疑是不是风机开启时,机器功率变大、24V受到干扰有波动,导致风机停转,从而导致电流突然变大,把适配器电压拉低,导致板子断电重启,于是我们又在24V进板子的电源线上做了一系列的操作包括:增加共模电感、差模电感、套磁环、加滤波器等,发现还是不行,并且我们也观察到样机上也是没加这些东西的,所以感觉还是没有找到问题点。
3.我们把目光放在了风机这一块上,风机一共有两组线,一组电源线,一组霍尔信号线,我们就怀疑会不会受到干扰,就先用铜箔分别把两组线包起来了,发现还是不行,于是又从电路上入手,我们也参考了样机,又在风机驱动电路中增加电容,风机电路的地直接飞线到电源接口,发现还是不行,因为当时也是调整了一天,问题还是没确定下来,决定先回公司研究一下问题所在。
问题确定:
在公司因为没有脉冲环境,瞿工就想到可以用对讲机来测试一下,发现用对讲机可以复现出问题,然后就发现当应对讲机天线干扰干扰板子的其他地方是没影响的,但是一干扰风机的霍尔信号线时就会出现上面的问题,我们就确定了是干扰了霍尔信号线从而导致了机器死机的问题。
问题解决:
在干扰霍尔信号线时,霍尔信号会被干扰,就会导致单片机一直进中断,一直会去处理信号,从而导致了单片机死机,后续优化了霍尔信号中断处理的代码,这个问题就得以解决
2. 辐射测试
问题现象:
在过辐射测试时辐射超标准
问题排查解决:
1.先是把外接的模块都去掉,单独测试主板,发现高频辐射降低了,低频还是会超,然后先是在电源线上加了磁环发现还是不行,用家里仪器测试出发现是电源芯片那部分有问题,于是我们先更换了电源芯片,在不接外设的情况下辐射是可以的。
2.依次把外设加上,发现在插上按键板时低频会起来一个波形,可能是因为
按键板接地线太细,于是单独飞了一根地线,发现还是不行,后面是在按键板的电源线和GND线上分别串一个磁珠,发现波形消失了。
3.当把低温屏幕插上时,发现高频会出现周期性的尖波,怀疑是屏幕电路附近产生的,先用铜箔和屏蔽胶带包了一下,又把屏幕背板和抱起来的屏蔽层相连,发现只是稍微降了一点,后又买了适用于屏幕的接口屏蔽线和屏蔽磁环,测试下来发现还是不行,于是询问了一下迪文技术,产生问题的原因是屏的背光升压电路中的高频噪声,给的方案是先改了一下屏幕电路中的一个电阻,发现没什么作用,后面就想到增加屏幕背板和板子GND的接触面积,也观察到样板上也是有开窗的,增加了屏幕背板和板子的GND接触面积,测试下来发现经过增大接触面积后尖波消失,再次测试下来已经符合标准了。
王工分享了-----VSCODE使用
1. 分享背景
· 痛点:Keil的文本编辑器功能有限(代码补全弱、高亮单一、无多标签页等),当工程文件较多时,生成浏览信息特别慢。
· 解决方案:VSCode作为辅助编辑器,保留Keil编译/调试功能,兼顾开发效率与工程兼容性
· 适用场景:Keil项目开发(C/C++/汇编)、多文件协作、阅读开源代码等
2. 优势对比
功能
Keil编辑器
VSCode(配置后)
代码补全
基础
智能(Clang/IntelliSense)
语法高亮
单一配色
主题自定义/多语言支持
代码导航
有限
函数跳转/引用查找
插件生态
无
海量插件(C/C++,Python等)
多标签页
不支持
支持
AI工具辅助
不支持
支持


3.常用功能
Snippets(代码片段)
VSCode的Snippets(代码片段)功能可以极大提升开发效率,尤其适合重复性代码(如寄存器配置、外设初始化、常用算法模板等)
· 本质:预定义的代码模板,通过快捷关键词一键插入,并支持动态修改关键参数。
· 典型应用场景:
o 快速生成常用代码段
o 插入for循环/状态机模板
3.1 配置方法
打开Snippets配置文件:
1.快捷键:Ctrl + Shift + P → 输入 "Configure User Snippets" → 选择语言(如C或C++)(全局)。
2.在.vscode文件夹内创建xxx.code-snippets文件(项目级共享)。
3.2 示例模板
示例模板
"bit_operation":{
"prefix": "bit_operation",
"body": [
"#define BIT(n) ((1 << (n))",
"#define SET_BIT(var, n) ((var) |= (1 << (n)))",
"#define CLEAR_BIT(var, n) ((var) &= ~(1 << (n)))",
"#define TOGGLE_BIT(var, n) ((var) ^= (1 << (n)))",
"#define READ_BIT(var, n) ((var) & (1 << (n)))"
]
}
通过输入bit_operation即可插入此代码段
代码格式化
代码格式化功能(Code Formatting)是保证代码风格一致、提升可读性的关键工具。
自带格式化工具 本身自带格式化工具,风格固定,不支持自定义,使用简单
Clang-Format C/C++专用,支持高度自定义,但是配置规则复杂
4.插件资源(嵌入式常用插件)
C/C++
Hex Editor
Fitten Code
Doxygen Documentation Generator
PlatformIO IDE
C/C++
主要功能是:提供C语言语法高亮,智能感知等。
keil工程配置Intellisense方法:
1.在当前工程中的新建.vscode目录,然后在该目录中新建c_cpp_properties.json文件
2.添加以下内容
{
"configurations": [
{
"name": "STM32",
"includePath": [],
"browse": {},
"defines": [],
"cStandard": "c99",
"intelliSenseMode": "clang-arm"
}
],
"version": 4
}
3.手动添加太麻烦,使用Python脚本读取keil工程文件自动配置
Doxygen Documentation Generator
快速生成注释,可自定义各种风格,大部分的开源库和驱动库都是用这个工具生成的注释,有利于保持风格一致
使用方法:输入 /** 触发
Fitten Code
AI编程辅助工具,可以自动进行代码补全,并可以在 Visual Studio Code 侧边栏内生成代码、生成注释、编辑代码、解释代码、生成测试、查找错误等。
- 上一篇:电机反时限过流保护原理及设计方案 2025/6/18
- 下一篇:存在共模电压时测量信号波形的正确方法 2025/5/15