找回密码
 立即注册
楼主: lcwswust

关于"STC-FOC"之我的猜想

[复制链接]
已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
 楼主| 发表于 2026-10-11 20:33:09 | 显示全部楼层
QQ6243*** 发表于 2026-10-11 12:50
大哥,有帮我在做测试吗,怎么样了
其他代码都没有了啊,只剩PWMA的中断函数,其他也没代码了呀
还有下载 ...

这些天没什么空闲。大概试了一下,未测到PWM信号,有PWM中断,PWM中断周期约25us。
我的板子是这个帖子的电路:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=25101
回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
发表于 2026-10-11 22:13:06 | 显示全部楼层
lcws*** 发表于 2026-10-11 20:33
这些天没什么空闲。大概试了一下,未测到PWM信号,有PWM中断,PWM中断周期约25us。
我的板子是这个帖子的 ...

截图202610112207518898.jpg


我把重复计数设置成2就转起来了,官方的例程用的24MHZ转起来都有推背感,我36MHZ都跑不过他们的,他们是怎么做到的。
包括你的例程速度也是上不去的。
难怪人家都在笑话用stc单片机做foc,连用查表的速度都上不去,别说用算法了

回复

使用道具 举报 送花

已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
 楼主| 发表于 2026-10-12 09:29:47 | 显示全部楼层
QQ6243*** 发表于 2026-10-11 22:13
我把重复计数设置成2就转起来了,官方的例程用的24MHZ转起来都有推背感,我36MHZ都跑不过他们的,他们 ...

我之前测试的单片机可能型号不对(STC32G8K64),今天早上换成了STC32G12K128的板子就可以看到PWM了,

用59#的程序,电机不断的启动停止,或在停止后有高频叫声,应该是启动阶段的最终速度过快,然后电机停转、再切入闭环自然不行。
后来按你63#的提示加了一句“PWMA_RCR=2;”,PWM中断周期由25us变为75us,确实能转了。
所以目前没啥问题了吧?
至于推背感,估计是换相时机不太对,建议调整目标角度试试。
“我的猜想”只是我自己瞎想的,并不是最优方案,建议搞懂原理后自己优化一下。
之前的效果:


加“PWMA_RCR=2;”之后的效果:



回复

使用道具 举报 送花

已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
 楼主| 发表于 2026-10-12 09:36:27 | 显示全部楼层
QQ6243*** 发表于 2026-10-11 22:13
我把重复计数设置成2就转起来了,官方的例程用的24MHZ转起来都有推背感,我36MHZ都跑不过他们的,他们 ...

补充一下,我测到你的PWM周期为50us,也就是频率为20kHz,
所以我不太明白你的HSPWM意义何在,我觉得没必要上HSPWM。

从最新的开源方案来看,STC做FOC还是可以的,关键还是在于调试。
STC32G8K64:
https://www.stcaimcu.com/thread-25101-1-1.html
STC32G144K246:
https://www.stcaimcu.com/thread-25381-1-1.html
回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
发表于 2026-10-12 10:34:51 | 显示全部楼层
lcws*** 发表于 2026-10-12 09:36
补充一下,我测到你的PWM周期为50us,也就是频率为20kHz,
所以我不太明白你的HSPWM意义何在,我觉得没必 ...

PWM要输出20khz,ARR分辨率还要高,只能PLL倍频,PWM模块运行在144MHZ,而且PWM波形还要丝滑避免发出噪音
要使用中央对齐,144MHZ/(PWM周期*2)=20KHZ,提高分辨率PWM周期这里我给了3600。
截图202610121033438312.jpg
所以只要你开了PLL倍频,那PWM模块必须使用HSPWM写入
回复

使用道具 举报 送花

已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
 楼主| 发表于 2026-10-12 10:49:04 | 显示全部楼层
QQ6243*** 发表于 2026-10-12 10:34
PWM要输出20khz,ARR分辨率还要高,只能PLL倍频,PWM模块运行在144MHZ,而且PWM波形还要丝滑避免发出噪音 ...

好的,明白了,但还是建议你有空了做个对比实验,看看普通PWM与HSPWM的实际使用效果有多大区别。
回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
发表于 2026-10-12 17:18:52 | 显示全部楼层
lcws*** 发表于 2026-10-12 10:49
好的,明白了,但还是建议你有空了做个对比实验,看看普通PWM与HSPWM的实际使用效果有多大区别。 ...

FOC.zip (1.14 MB, 下载次数: 115)

代码我进行优化了下,正常转动。
我把电压调到电机的电压12V,电流不限制。
我发现用很小的PWM,50左右MOS管就已经发烫了,拉到PWM=500非常烫手
PWM我还没拉到顶电流已经到顶了。
我的电源用官方的程序跑过,拉到顶24万转没问题
我们的程序还是有问题,还能怎么优化
截图202610121716375147.jpg 截图202610121717106410.jpg
调试器只要4步,下载12MHZ,看看你那边正常电压不限流的情况下正常不

再测下PWM输出的是不是20khz的频率,我这边没有仪器,拜托了
回复

使用道具 举报 送花

已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
 楼主| 发表于 2026-10-13 11:45:10 | 显示全部楼层
QQ6243*** 发表于 2026-10-12 17:18
代码我进行优化了下,正常转动。
我把电压调到电机的电压12V,电流不限制。
我发现用很小的PWM,50左右M ...


已测试,MOS管发烫是因为共态导通;
你的死区时间约0.2us,而我这的电路约需要2us;
把
PWMA_DTR=20;
改为
PWMA_DTR=0xC0|5;

就不那么烫了。
建议:用示波器测一下你的门极波形,看需要多大的死区,因为PMOS靠电阻上拉关断,这个关断过程较慢。
你的波形(门极到GND之间,标签写错了):
微信截图_20261013113958.png
我的波形(门极到GND之间,标签写错了)

微信截图_20261013114019.png


回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
发表于 2026-10-13 11:51:49 | 显示全部楼层
lcws*** 发表于 2026-10-13 11:45
已测试,MOS管发烫是因为共态导通;
你的死区时间约0.2us,而我这的电路约需要2us;
把

截图202610131150176866.jpg

官方的例程只给了15
截图202610131156509965.jpg

我把数据手册喂给AI让他帮我计算出死区时间,我就设置了150ns,也就是DTR=20;
我把DTR给成C5虽然电流下来了,但是电机时不时会掉速度
AGM314MD这个MOS的死区到底要设多少


回复

使用道具 举报 送花

已绑定手机

7

主题

445

回帖

6692

积分

论坛元老

积分
6692
 楼主| 发表于 2026-10-13 12:19:35 | 显示全部楼层
QQ6243*** 发表于 2026-10-13 11:51
官方的例程只给了15

所以我说,关键在于调试,你的使用条件不同,终究要以实际效果为准,多用示波器看看。
首先看电路,我也不知道你的电路,PMOS门极的上拉电阻越小,死区就可以越小;
另外,你的PWM时钟不一样了,同样的寄存器值对应的时间不一样。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-8 03:06 , Processed in 0.079021 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表