尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

STM8吊扇驱动板主控芯片识别:从PCB到SWIM调试的完整指南

STM8吊扇驱动板主控芯片识别:从PCB到SWIM调试的完整指南 1. 先从一块典型的第三方吊扇驱动板说起1.1 驱动板上哪些东西和主控相关拿到一块Atomberg这类第三方兼容BLDC吊扇驱动板先别急着翻数据手册。实际上绝大多数这种板子的结构都走同一个套路220V交流进来经过整流桥变成直流母线电压母线电容滤波后由几颗MOS管组成的三相逆变桥输出三相电驱动电机控制部分则缩在板子另一侧靠一颗低压电源芯片供电一颗主控MCU专门负责PWM生成、转速换相和遥控信号处理。关键的分界线在栅极驱动器那里。MOS管栅极由栅极驱动IC负责比如常见的IR2101、FD6288、EG2134而栅极驱动IC的输入脚HIN/LIN一定是从主控的PWM输出引脚过来的。所以哪怕板子上的丝印被磨掉你也可以沿着栅极驱动器的输入端反着往回找一路追踪下去最终会收束到一颗中等封装芯片上那颗就是整个驱动板的大脑。主控周边还要重点找三样东西一颗低压稳压器通常是很小的SOT-23或SOT-89封装输出3.3V或5V几颗0.1uF去耦电容一定紧贴芯片电源脚以及一组调试焊盘或预留排针。第三方板的调试焊盘经常不贴排针只留几个镀锡圆点但位置一般比较集中方便生产时烧录。1.2 为什么第三方厂商偏爱STM8这不是偶然。BLDC吊扇控制器对MCU的要求有几个特点需要多路互补PWM输出需要ADC采集母线电压或相电流需要比较器或霍尔接口做换相还要有足够便宜的BOM成本。STM8S系列在这些维度上几乎是量身定做的。为什么这么说STM8S003F3P6和STM8S103F3P6是一款非常成熟的低成本方案批量采购价格能做到一元以内对于一台卖一两百块的吊扇来说主控成本占比很低。调试方面STM8用的是SWIM单线协议意味着烧录器和目标板之间只需要一根信号线和一根地线生产治具可以做得非常简单不需要像JTAG那样飞四条以上的线。第三个原因则是生态问题ST官方和开发者社区里有大量BLDC参考代码、库函数和电机控制笔记工程师上手很快。相比之下有些方案会用内置MCU的集成电机驱动芯片开发确实更简单但芯片单价更高第三方厂商不太愿意用还有些方案用其它通用MCU性能上没问题但工具链和参考代码没有STM8这么普及。所以在售后市场上拆开十几块钱的驱动板看到STM8的概率非常高。1.3 常见型号速查别只盯着STM8S003识别型号时最容易被带偏的一点是只认STM8S003。实际上STM8S003F3P6和STM8S103F3P6封装完全相同都是TSSOP20管脚完全兼容区别主要在Flash空间、EEPROM和ADC通道细节上。S003是16KB FlashS103是8KB Flash但外形几乎无法直接看出差异。板子控制区如果还想留更多扩展功能也会看到STM8S105K4T6C这类LQFP32封装的管脚更多适合同时处理电流采样、霍尔信号和按键输入的设计。识别的时候要把封装丝印外围电路三者放在一起判断只看其中任何一个都可能翻车。还有一个细节值得注意STM8S003和STM8S103在某些批次丝印写法不一样有的印完整型号有的只印一段字母数字组合需要查对应的Marking手册或者拿放大镜认真看。如果丝印完全缺失也不要慌后面我会讲怎么用电信号的手段把身份确认下来。2. 不靠原理图怎么把芯片从PCB上认出来2.1 准备工作先断电再拍照后动手拆板子之前第一件事一定是断电。很多吊扇驱动板没有单独的电源开关拔掉电源插头之后整流桥后面的母线电容可能还存着几百伏电压而且会保持很久。所以我的习惯是先用万用表直流电压档测一下大电容两端确认已经降到安全范围再动手必要的时候用一个几十千欧的功率电阻给电容放电。在找到主控之前先把整块板子的正反面拍一组高清照片。尤其是引脚密集区域后续对照丝印和走线时照片比实物好查得多。拍照时尽量用侧光让丝印上的字看得清楚手机相机离近一点必要时开微距模式。这一步很多人会跳过去但实际上在后面的电气测量和原理图还原阶段照片的价值比你想象中大得多。操作时注意防静电。STM8这类芯片的抗静电能力不算差但冬季干燥环境下还是有可能被手上的静电打坏。有条件就戴防静电腕带没条件的话操作前先用手摸一下接地的金属管道或机箱放掉静电。2.2 在密密麻麻的元件中锁定候选芯片如果你对一颗芯片是不是主控没有头绪可以用排除法先圈定候选范围。整流桥、大电容、扬感电阻、MOS管这些都属于功率器件形状和封装特征非常明显排除掉。剩下的控制区里三端稳压器或DC-DC转换器通常是小封装且周围有电感或较大电容也排除。然后剩下的芯片里重点看封装体上有大尺寸丝印的那颗以及引脚数较多的那颗。这里有个很实用的经验主控芯片的位置一般离低压稳压器很近且周围一定有一圈小贴片电容数量大约等于芯片引脚数的三分之一到二分之一。原因是STM8每个电源引脚附近都要放去耦电容如果你看到某颗芯片旁边密集排列了五六颗0.1uF电容它大概率就是控制核心。另一个线索是调试焊盘。很多第三方板在PCB上会留4个或5个镀金圆点位置在主控附近标注为SWIM、GND、VDD、NRST之类。哪怕没有印丝印这几个焊盘的位置也直接指认了主控位置因为在STM8方案里SWIM信号和NRST都在主控上。2.3 丝印学问型号、批次和掩码来看丝印本身的解读。STM8S003F3P6完整丝印一般会印两行到三行第一行是型号第二行是批次号第三行可能是日期代码或工厂代码。但很多贴片机出来的板子会把第二行第三行印得非常浅这时候用放大镜加侧光或者用手机微距拍照再放大比肉眼直接盯要有效得多。如果是STM8S003F3P6这种完整型号直接对照数据手册就行。但如果只看到类似003F3或103F3的缩写实际上也能定位到具体系列。同一芯片在不同批次下的丝印格式可能有差异厂商有时还会用简洁的字母数字标识来替换完整型号比如用G4或K6代表不同型号批次这时候最靠谱的方法是去ST官网查Marking说明书里面会列出所有批次编码对应的芯片型号。还有一类比较头疼的情况丝印被厂商故意打磨掉了。一些第三方板出厂时为了防抄板会把主控丝印激光擦除或者覆盖。这种情况下就需要用电信号的手段来确认芯片身份。视觉上只要封装、周边电容布局、调试焊盘位置都符合STM8特征就可以放心进入下一阶段。3. 让万用表和示波器来验证不要光靠眼睛3.1 供电域一测就知道大概方位如果丝印看不清先给芯片的电源网络定位。用万用表二极管档红表笔接板子的地黑表笔点芯片的电源引脚如果看到0.4V到0.7V之间的结压降说明这颗芯片内部有典型的硅结构很可能是MCU或驱动IC。反复多测几个引脚如果好几个脚都有类似的压降而且其中有一个脚和其它脚相比能明显测到对地的稳压管特性那大概率就是主控。测供电域还有一个更快的办法看板子上低压稳压器的输出电压。稳压器输出端一般会有很粗的铜箔或者过孔阵列铜箔连接的目标区域就是主控的供电网络。用万用表导通档追踪这段铜箔凡是被这条网络覆盖到电源脚的芯片再去确认哪颗更符合MCU特征。比如它的引脚会密集连接到分压电阻、采样电阻、按键、LED这些逻辑电路而驱动IC的引脚通常集中在MOS管栅极附近。注意一点测量必须断电进行尤其是带电测电阻会烧表这是新手最容易犯的错误。整个低压供电区是安全的但功率区的大电容和整流桥仍然有潜在风险测之前先把电容放电。3.2 NRST/SWIM引脚STM8辨识的关键标记STM8有一个非常独特的电气特征就是SWIM调试接口和NRST复位引脚复用同一个PIN。也就是说芯片的NRST引脚不只是复位脚同时也是连接ST-Link调试器的数据线。这个设计让STM8的方案在PCB上非常容易辨认主控芯片上会有一个引脚它对地接了一颗电容对电源接了一颗上拉电阻而且附近往往留有调试焊盘。找到这个电容上拉电阻组合基本就能确定主控是STM8系列。用万用表蜂鸣档顺着这个引脚量一边通向一颗小电容到GND另一边通过几颗千欧电阻到VDD这个结构在STM32上也有但STM8常见的是NRST和SWIM复用调试功能的布线与普通复位电路稍有不同。如果你看到这个引脚附近还预留了单排焊盘上面丝印写着SWIM或RST那整个方案型号基本就锁定在STM8家族了。从开发者的角度讲这个设计带来的好处是布线简单一根线就能进入调试模式代价是一旦板上复位电容选得过大调试连接稳定性会受影响后面我会单独讲这个问题。3.3 看振荡电路和外围判断具体外设STM8S系列时钟来源有三种内部高速RCHSI、内部低速RCLSI和外部晶振。在BLDC风扇驱动板上绝大多数厂商为了省成本不会外接晶振直接用内部16MHz RC作为主时钟。如果你在芯片附近找不到两个紧挨着的晶振焊盘那说明方案用的是内部振荡器这对识别型号没影响但对后续写固件时配置时钟很重要。外围电路方面BLDC控制板会有几组标志性元件一是三相电流采样电阻通常和MOS管源极串联连接到主控ADC输入脚二是母线电压分压电阻从母线上串几颗大电阻后进入主控三是霍尔接口或者反电动势过零检测电路。这些信号最终都会以细走线的形式汇聚到主控引脚。观察的时候用放大镜沿走线找能看清哪个引脚串了电阻到地哪个引脚连着栅极驱动器的输入这比盲猜型号要可靠得多。还有一个辅助判断点是芯片外围LED和按键。吊扇板上的LED指示灯、按键或红外接收头几乎都是直接连主控GPIO的。如果一颗芯片周围同时出现了LED限流电阻、按键焊盘、蜂鸣器驱动三极管那它作为主控的身份就没有悬念了。3.4 顺藤摸瓜PWM输出脚下拉到栅极驱动器在无法百分百确认型号而需要进一步确认时最直接的手段是给控制板上电用示波器观察主控的PWM输出脚是否存在SPWM波形。操作方法是把示波器探头地线夹在板的GND上探头点栅极驱动器输入脚然后让风扇转动起来。如果看到频率在几百赫兹到二十几千赫兹之间的PWM脉冲那就说明这颗芯片正在实时控制电机。但要提醒的是这一步是带电操作安全要求很高。吊扇板直接插市电工作时整个功率级处于高压环境普通示波器探头的地线夹在GND端时如果板子没有隔离可能造成短路或触电风险。我建议在没有隔离变压器和隔离探头的情况下不要把示波器直接接到这类板上。更稳妥的做法是用一个隔离的低压直流电源只给控制电路部分供电观察主控输出而不是整机上电。对于大多数识别任务来说前面的供电域测试配合NRST特征已经足够不一定非要看到PWM波形。4. 接上ST-Link从总线上把芯片叫醒来确认型号4.1 SWIM单线调试接法比JTAG简单太多SWIM是STM8独有的单线调试协议接线只需要三根线SWIM数据线、GND以及可选的VDD参考电平。ST-Link/V2上的SWIM引脚接目标板的NRST引脚GND接GND如果调试器支持目标电压检测再接上VDD但多数情况下只接SWIM和GND就能完成芯片识别。如果板子上预留了调试焊盘但没有排针就需要自己焊接。这里有一个小技巧先在焊盘上补一小段排针然后用杜邦线连接ST-Link而不是直接飞线到芯片引脚。因为飞线容易虚焊接触不良造成的连不上会让你误判芯片坏了。如果板子上完全没有调试焊盘可以直接在芯片NRST引脚上飞线但注意线长尽量控制在10厘米以内SWIM对线材长度和接触质量比较敏感。接好之后ST-Link需要插到电脑USB口此时目标板最好只保留控制电路供电不要带负载。如果你不想给整个板子通电有些板子可以直接由ST-Link的VDD脚给主控供电但ST-Link的3.3V输出电流有限只适合低功耗空载识别不建议在带电机的完整驱动板上这么干。4.2 用STVP、STM8CubeProgrammer或stm8flash读取设备信息在Windows下最常用的工具是STVP或者STM32CubeProgrammer较新版本也支持STM8在Linux或喜欢命令行的环境下stm8flash也很好用。以STVP为例打开软件后选择ST-Link作为编程工具protocol选择SWIM然后点击连接。连接成功后软件会自动识别芯片家族、Flash大小和选项字节状态这些信息直接就能和丝印对照。如果想要更具体的验证可以读取选项字节页面看看芯片的读保护状态。受保护的话STVP会提示无法正常读取Flash但Device ID一般还是能读出来的。这个步骤的意义在于如果固件读保护是打开的说明厂商确实不想让你直接拷贝代码那就应该止步于此不要在非授权的情况下尝试解锁。你仍然可以基于已知型号自己重写一套控制程序这在硬件学习场景下是完全合法的。stm8flash的命令行用法也很简单比如stm8flash -c stlinkv2 -p stm8s003f3如果不带读取动作只做连接测试软件会打印目标芯片的ID和容量。如果报错至少能确认接线和调试器状态。4.3 如果连不上三个最常见的原因和处理方法SWIM连接失败是识别过程中最常见的坑。第一个原因是复位电容过大。STM8的NRST引脚对地电容如果超过100nFSWIM协议的单线脉冲上升沿会被电容拉慢导致通信建立失败。处理办法是临时断开这颗复位电容或者把电容换小到10nF左右。识别完型号之后你还可以把原电容装回去不影响正常运行。第二个原因是线材太长或接触不良。SWIM并不算高速协议但杜邦线超过20厘米后地回路引入的噪声就足以让连接时好时坏。我的建议是全程使用最短的杜邦线并且把ST-Link地线直接夹在靠近NRST引脚的地铜皮上不要隔着一个大功率区去接地。第三个原因是供电不足或地电位不等。如果目标板控制电路没上电而ST-Link的VDD也没接主控完全没供电连接必然失败。解决方式是用外部稳压电源给控制电路供3.3V或5V然后保证ST-Link和板子共地。需要注意如果板子的控制电路已经有自己的3.3V电源不要再把ST-Link的VDD并上去避免两个电源打架。5. 识别之后从知道型号到画出自己的网表和方案5.1 拿到数据手册后先看这三处识别出具体型号后不要急着下载全套代码先打开数据手册对着板子看三部分内容。第一是引脚定义表把芯片每个引脚的功能和板子实际走线对应起来比如哪几个脚是TIM1的互补PWM输出哪几个脚是ADC输入哪几个脚是UART。第三是选项字节和时钟配置说明确认外置晶振还是内部RC选项字节里的看门狗和复位行为是什么状态。第三是封装图用于确认引脚顺序和接地焊盘位置尤其TSSOP20封装在引脚1处有个小圆点找到它就能让芯片的引脚方向对上实物。这三部分看完你会对这颗芯片在这个板子上具体干了什么有非常清楚的认识。比如引脚定义表里标着PC6/PC7是TIM1_CH1和TIM1_CH1N你再看实物走线发现它们连到了栅极驱动器A相上下管输入那这路PWM的拓扑就确定了。5.2 用万用表把引脚画成网表为了彻底搞懂这块板可以根据引脚功能把每个脚的连接关系量出来。万用表蜂鸣档一头接芯片引脚另一头去点板子上所有可疑焊盘、电阻、电容、驱动器输入脚记录下哪些引脚是连通的。这个过程和画PCB时的网表核对非常像——把物理布线翻译成逻辑连接。实际操作时我比较推荐做一张表引脚号引脚名查手册连接的元件或网络推测功能1NRST上拉电阻R3、电容C7、ST-Link焊盘复位/调试5VDD3.3V电源、0.1uF去耦电容供电17TIM1_CH1栅极驱动器HIN1脚A相上管PWM18TIM1_CH1N栅极驱动器LIN1脚A相下管PWM12ADC_IN3母线电压分压电阻中点母线电压采样表格填到一半整个驱动板的框架就显现出来了哪几路PWM驱动哪一相哪些采样网络提供反馈哪些GPIO接按键和指示。这张表画完之后其实你已经拥有了一份专属的参考原理图虽然不是原厂图但所有关键连接都是实测得到的可信度很高。5.3 几个值得保存的实战经验总结一下我在识别这类STM8驱动板时踩过的坑和沉淀下来的习惯。第一个经验是拍照要趁早。任何识别工作开始之前先把板子未经过任何改动的状态拍下来尤其是调试焊盘区域和芯片丝印。如果你先焊接了飞线再去拍照很容易把本来清晰的丝印遮盖住后面核对就麻烦了。第二个经验是复位电容问题谁遇到谁知道。STM8的S WIM连接失败第一个要查的就是NRST对地电容。我看见过有人拿着ST-Link折腾了一晚上连不上最后发现是板上复位电容用的1uF把SWIM信号全吸收了。这种情况临时换小电容或者断开电容器就能连上。第三个经验是区分STM8S003和STM8S103时要看Flash容量而不是丝印。用调试器读出Flash大小S003是16KBS103是8KB这是最可靠的区分依据。如果你要自己编译固件注意把链接器脚本选成对应容量选错会导致烧录中途报错或者程序跑飞。第四个经验是不要带电乱量。凡是涉及到母线电容和市电侧的测量务必先放电再动手。哪怕只测一颗电阻也先确认板子完全断电。尤其是吊扇板上的电解电容容量往往很大放完电之后过一会儿可能还会回升一点电压测量前再确认一次比较稳妥。最后一个经验是针对想要进一步做电机控制的开发者的当你识别完型号、画完网表之后最值得做的下一步不是直接改固件而是用示波器记录一下原板在运行时的PWM频率、死区时间和换相时序。这些参数不一定能从数据手册里直接查到但它们决定了电机能否正常运转。记录下这些关键波形对你后续自己写控制程序或者替换主控芯片会有很大帮助。
返回列表