科研FW 发表于 2026-2-3 20:29:55

STC32G144K256做无刷电机控制ADC采样问题

<h1>ADC的配置,通道8(P0.0)</h1>
<p><img src="data/attachment/forum/202602/03/202258aupu5aa9bx9yxx6a.png" alt="image.png" title="image.png" /></p>
<h1>PWM的配置</h1>
<p><img src="data/attachment/forum/202602/03/202421gfgin2looiq3xnf0.png" alt="image.png" title="image.png" /></p>
<ul>
<li>我的配置应该没有什么问题,但是采样得到的电流是错的。</li>
</ul>
<h1>PWM通道1和PWM通道4的正通道波形</h1>
<p><img src="data/attachment/forum/202602/03/202534p8i83q7v8qt86t3a.jpg" alt="638ae8483f03b91e7aac1afdc47f0c2f.jpg" title="638ae8483f03b91e7aac1afdc47f0c2f.jpg" /></p>
<ul>
<li>(黄色是通道4用于触发ADC的通道波形,应该在下桥臂导通时采样,就是通道1上桥臂关闭时采样)<br />
但是采样电流,不对。</li>
</ul>
<p><img src="data/attachment/forum/202602/03/202727lkpno1o5oskcc0r2.png" alt="image.png" title="image.png" /></p>
<ul>
<li>VOFA采样电流波形。电机是可以转起来的。但是波形是这样的。</li>
</ul>
<h1>问题</h1>
<ul>
<li>双ADC同步采样应该如何配置,包括如何在程序中读取。假设我要采样三个通道,必定有一个ADC在一个控制周期内要采样两次。如何获取正确的采样数据。假设我的P0.0是ADC1,P0.1是ADC2,P0.2是ADC1,应该如何正确的在下桥臂导通时获取到电流采样数据。可以基于我给出的工程修改。<br />
<a href="forum.php?mod=attachment&amp;aid=131216" title="attachment"><img src="/source/plugin/zhanmishu_markdown/template/editor/images/upload.svg" alt="upload" /> 附件:test_adc_pwm_8323.zip</a></li>
</ul>

王昱顺 发表于 2026-2-3 22:19:50

目前的建议是,仅采样两路,第三路使用基尔霍夫电流定律计算
采样电流不对可以考虑采样的时间是否太短,尝试适当增大


想要在中心对齐模式下,在PWM的中间触发ADC采样,只需要设置为更新中断为TRGO即可

同时设置重复计数器为1,即可实现固定的上尖峰采样
如果想要切换尖峰,可以设置启动前的DIR标志位,即可控制。
或者你这个实现方式中,使用额外的一路信号,设置占空比为0和ARR最大值都可以用于切换不同的采样点

科研FW 发表于 2026-2-3 23:12:34

王昱顺 发表于 2026-2-3 22:19
目前的建议是,仅采样两路,第三路使用基尔霍夫电流定律计算
采样电流不对可以考虑采样的时间是否太短,尝 ...

好的 除了ADC不对。其他的都是和STM32G474的代码什么的都是一样的,我是FW,我放弃了,感谢大佬指点。51 不是我这样的人能碰的。我已经把板子扬了。
页: [1]
查看完整版本: STC32G144K256做无刷电机控制ADC采样问题