你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Stm32f407zet6 步進馬達干擾問題

[复制链接]
Wei0405 提问时间:2023-11-18 11:34 / 未解决
我目前在嘗試用stm32接收sbus的訊號並控制4顆步進馬達遇到了一下問題。

硬體部分,我們買硬石的stm32f407標準板
我們用stm32zet6連結光耦隔離來去輸出pulse,用來控制步進的驅動器
電源的部分,馬達驅動器 跟板子的電源各別供電
,而光偶的電源跟馬達是吃同一組

軟體部分
Pulse輸出是用output compare 然後toggle模式來去輸出
然後透過delay elapsed callback來去設定下一個CCR

而sbus是轉了uart後進來 用dma的方式來去讀取數據
然後透過rxcpltcallback來去解析sbus的訊號

我們遇到的問題
當馬達那一塊沒上電時,程式跟訊號輸出都非常正常
但當馬達那塊上電後,會不定時的很像stm32死機一樣,一直輸出固定的pluse,然後整台機器不能操作,很像卡死循環一樣。

還有當馬達沒上電時,stlink可以很順利的寫入 debug程式
但上電後 怎麼寫都會抱錯。

想請問有什麼可能性導致這樣的問題
收藏 评论3 发布时间:2023-11-18 11:34

举报

3个回答
butterflyspring 回答时间:2023-11-20 10:15:54
这个现象看上去很像系统受到了干扰,导致整个系统工作故障。

可以量测一下关键的信号,比如通讯线上,关键电源,复位引脚等

如果干扰比较大,那么要从硬件线路结构上改善并采取措施了。
watershade 回答时间:2023-11-20 10:17:50

你可以用示波器比较一下电机开没开对stm32电源的影响。不知道你的SBUS的供电如何,有没有使用隔离的232收发器。

另外为了验证你的设备是否死机,可以在stm32上电的时候打印一行信息出来,或者定时打印心跳信息。这样你可以看到是不是死机了。

xmshao 回答时间:2023-11-20 11:13:30
从你反馈的问题现象来看,原因应该说还是比较清晰明了的。
就是马达的运行给微处理这边带来影响。


这里聊几句,供参考。


你看看隔离这块有无改善空间;


布局上马达驱动电路跟微处理器尽量避开;


马达驱动大电流信号线尽量远离数字小信号、时钟源、复位脚这些,必要时考虑使用屏蔽线或加屏蔽体;


地线也是重中之重,大电流地、小信号地最好分开走,并保证系统接地良好;


微处理器电源脚周边去耦电容不要省了,且就近电源脚摆放,这点可以参考数据手册电源框架图的示意与提醒;


另外,可以考虑给微处理器电源脚加上磁珠的做法;


。。。
这都是些比较常见的常规手段,你这边结合具体现状、操作便利性、成本等考虑后适当调整;


说到底,处理这些往往要花更多精力和更多成本。


再就是 软件处理方面可以做些防范措施,最简单有效的办法就是加上看门狗。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版