文号
888284
阅读
22930
回复
17
收藏
6
【提问帖】仿制stm32电调时的波形问题
2020/12/27
IP:英国
关键词:stm32

问题概述:在tb上看到一款以esc32为原型的开源无刷电调(以下是原理和实物图),就买了个样品仿制着玩。在参考了tb原设计后,自己把稳压元件替换为rt9193以驱动stm32,并重新画了块板子。其余元件未作更改,结果stm32输出波形出现偏差导致无法正确驱动mos管。由于经过大量debug(各种尝试和结果已经写在下面)没有得出解决方案,恳请各位大佬能帮忙康康。


微信图片_20201227025349.png 微信图片_20201227025531.png

然后是正常输出波形和我所得到的波形

微信图片_20201227023513.jpg 正常波形 微信图片_20201227030150.png 我所得到的波形

微信图片_20201227024512.png 这是我的pcb设计(debug中切掉了一块) 微信图片_20201227024225.jpg (0欧磁珠在几次debug后被拆了

几种失败的debug尝试:

*tb的样品板子和我的板子刷的是一套程序

  1. 一开始猜测是电源问题,就把板子自带3.3v供电断开,转从tb的样品板上飞一根3.3v线来取电,结果波形仍未解决。

  2. stm32的4个vcc引脚都有退耦电容,1、48脚取了10uf,其余100nf,理论上不会破坏输出波形 (更换过每颗电容但未能解决问题)。

  3. 尝试过把tb样品版的32拆焊下来然后把自己板子上的32替换上去,样品版输出没问题。

  4. 通过飞线给样品板只使用自己板子上的3.3v供电,波形没问题。

  5. 给两款板子都只用usb转3.3v电源,样品板输出正常,我的板子问题任然存在。

  6. 晶振加焊过,也换过,没有改变输出。

  7. 这输出的是启动波形,只取决于电源电压和反馈到第14脚的电压,我的板子和样品板都为12v和0.6v。其他是写死在程序里的。

---------------------------------------------------------------------------------------------------------------------------------

目前我猜测是布线问题导致32无法正常输出,两块板子都是一套程序。在使用同一个电源还出现问题的情况下,只有布线是目前我能想到的唯一变量。希望各位大佬能帮着看看板子上是不是有什么不合理的地方,没有太多画板子经验,还需要多加学习。

这是ad文件:


attachment icon PCB1.pcbdoc 2.76MB PCBDOC 16次下载

ps:有点时差,可能无法及时回复

17
5年11个月前修改于 5年11个月前IP:江苏
888349
1楼

楼主的版图有点让人摸不着头脑,网络名称只有"GND"和"GGND",而且还有一堆飞线在。

引用
评论
5年11个月前IP:英国
888376
2楼
引用阡陌徘徊发表于1楼的内容
楼主的版图有点让人摸不着头脑,网络名称只有"GND"和"GGND",而且还有一堆飞线在。

那是不是要给每个引脚都附上网络名?飞线是指哪种类型的布线?


引用
评论
5年11个月前IP:江苏
888385
3楼
引用Dimitri_Ivanovich发表于2楼的内容
那是不是要给每个引脚都附上网络名?飞线是指哪种类型的布线?

您是不是没有画原理图,而是直接在pcb上连线的?飞线指的是没有连接完成的线。

引用
评论
5年11个月前IP:中国
888386
4楼

程序显然是跑起来了,IO输出信号不对应该查软件,软件用的是一样的emmm

复位信号是否有问题?比如啥干扰到复位电路了?

输入信号是否有交流干扰?软件里把输入屏蔽成固定值,排除掉这个影响因素。

是否有可能是mos有毛病,mos动作影响到了mcu某些网络?


引用
评论
5年11个月前IP:英国
888388
5楼
引用阡陌徘徊发表于3楼的内容
您是不是没有画原理图,而是直接在pcb上连线的?飞线指的是没有连接完成的线。

嗯,ad里面一开始没画原理图,所以网格命名出了问题。没有完成的我是想直接用过孔和地平面连起来。

引用
评论
5年11个月前IP:英国
888389
6楼
引用Ma3.02的守望发表于4楼的内容
程序显然是跑起来了,IO输出信号不对应该查软件,软件用的是一样的emmm复位信号是否有问题?比如啥干扰到复位电路了?输入信号是否有交流干扰?软件里把输入屏蔽成固定值,排除掉这个影响因素。是否有可能是m...

可能是复位信号被干扰了,我pcb上复位走线是直接从晶振两脚中间穿过去的,但在样品版是直接绕开晶振的。

输入信号是低频的航模接收器的pwm应该不会太受干扰?

这个波形是给mos驱动器的信号, 还没有接入mos。


引用
评论
5年11个月前修改于 5年11个月前IP:上海
888391
7楼

没有接入mos的话

工作未必会如预期

因为预期是有mos输出作为反馈信号的

需要检查的只有驱动信号是否有导致烧mos的可能

如果逻辑上没有问题整体输出是否如预期应该接好全部线路再说吧

引用
评论
5年11个月前IP:英国
888407
8楼
引用m24h发表于7楼的内容
没有接入mos的话工作未必会如预期因为预期是有mos输出作为反馈信号的需要检查的只有驱动信号是否有导致烧mos的可能如果逻辑上没有问题整体输出是否如预期应该接好全部线路再说吧

强制启动的pwm貌似不需要mos的反馈,我把样板上的比较器拆下来试过,stm仍然可以在没有反馈的情况下输出正常波形

引用
评论
5年11个月前IP:英国
888409
9楼
引用Ma3.02的守望发表于4楼的内容
程序显然是跑起来了,IO输出信号不对应该查软件,软件用的是一样的emmm复位信号是否有问题?比如啥干扰到复位电路了?输入信号是否有交流干扰?软件里把输入屏蔽成固定值,排除掉这个影响因素。是否有可能是m...

试了下把复位电路的输入从晶振下移开,还是没有解决问题

引用
评论
5年11个月前IP:英国
888441
10楼

Debug进度报告:

听取了各位的意见后我试了下 1.把复位信号从别处引入,而不是从晶振下穿过,没有解决问题。

2. 接入mos试了下,信号问题没有解决。

这是我的mos管输出和一个理想输出的区别:


2.mp4  点击下载 ‎这个是再次debug后mos管里输出的我的波形

1.mp4  点击下载 ‎这个是理想状态下mos管输出的波形

看起来可能是有什么布板上的问题导致信号无法持续输出?


引用
评论
5年11个月前IP:安徽
888462
11楼

你先明确你的程序有没有输入

如果有的话,尝试在程序里面把输入屏蔽成某些指定的信号。这样可以避免引入输入信号本身的干扰。

然后再看输出是否符合预期。

如果符合,说明你的输入采样电路啥的有毛病;

如果不符合,仔细检查mcu最小系统。

不要直接去测最后的环节(mos输出波形),应该从信号源头(单片机)逐步往后查。单片机输出正常了,再看后级电路。

+0.88
科创币
Dimitri_Ivanovich
2020/12/30
感谢提供帮助
引用
评论
2
5年11个月前IP:上海
888467
12楼
引用Dimitri_Ivanovich发表于8楼的内容
强制启动的pwm貌似不需要mos的反馈,我把样板上的比较器拆下来试过,stm仍然可以在没有反馈的情况下输出正常波形

比较器显然只做过流反馈

但是uvw各自都有反馈的啊

你断过样板sense_a ~c 试试

+0.88
科创币
Dimitri_Ivanovich
2020/12/30
感谢提供帮助
引用
评论
5年11个月前IP:英国
888536
13楼

试了下把样板上的sense a - c 电阻全卸了,然后在程序里强制把一个检测平均电压的函数设为测得电压值,终于出现了差不多的波形。但应该还有一些采样函数可以改变下试试,不过这么来看主要就是采样网络的问题了?

2.jpg 我的stm32输出

3.jpg 样板的stm32输出

引用
评论
5年11个月前IP:上海
888620
14楼

我觉得不能称为“问题”

不完整的电路或者说不是完整的方案自然不会正常

毕竟这应该不是一个开环的系统

不妨形成整体再说

如果怕全接好出问题烧管子

可以通过串电阻或保险丝之类的方法保护一下



引用
评论
5年11个月前IP:英国
888644
15楼
引用m24h发表于14楼的内容
我觉得不能称为“问题”不完整的电路或者说不是完整的方案自然不会正常毕竟这应该不是一个开环的系统不妨形成整体再说如果怕全接好出问题烧管子可以通过串电阻或保险丝之类的方法保护一下

确实,下次测试应该在闭环的状态下进行检测

引用
评论
5年11个月前IP:英国
888646
16楼

目前为止,在接入反馈网络的情况下测出来的波形还是有偏差,导致mos输出不完全对。但是,下面的波形是我又刷回了一样 的程序,波形的偏差仍然与强制改变几个取决于采样点的函数后一样,这么说就是mcu最小系统的问题了?我准备重新打块板子,然后参考下样板上stm32周围的板子环境试试。

未标题-1.png

引用
评论
5年9个月前IP:英国
890893
17楼

感谢几位的帮助,问题已经解决了

是我大意了,犯了严重低级错误——U项低端驱动和W项低端驱动画反了

就是图上这个用白圈框起来的部分,要相互调换一下。

1.png

然后是电机能正常跑起来的视频:


3.mp4  点击下载 ‎


引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的