找回密码
 立即注册
楼主: 神农鼎

最便宜的 车规-FOC,24万转@STC32G12K128-24A车规,STC-FOC 新算法库,11/30更新

 火.. [复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2025-12-16 10:58:38
已绑定手机

1

主题

43

回帖

171

积分

注册会员

积分
171
发表于 2025-11-28 10:43:32 | 显示全部楼层
王*** 发表于 2025-11-28 10:20
是的,虽然引出了引脚的宏定义,但是对于关断时刻的控制电平还是固定的
今天我修改一下库的内容,使其pwm ...

好的谢谢,建议根据PWMA_CCER1\2中的极性来处理。
目前程序并未运行到主函数中调用pwm_off(),估计是PWM中断里处理的,开环启动后未检测到反电势自动停转的处理。

点评

已更新,可以试试,空闲电平逻辑通过PWMA_OISR设置实现 文档内有详细的操作说明  详情 回复 发表于 2025-11-28 22:21
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:640
  • 最近打卡:2025-12-13 14:46:56
已绑定手机
已实名认证

123

主题

3277

回帖

8312

积分

版主

积分
8312
发表于 2025-11-28 22:21:20 | 显示全部楼层
lcws*** 发表于 2025-11-28 10:43
好的谢谢,建议根据PWMA_CCER1\2中的极性来处理。
目前程序并未运行到主函数中调用pwm_off(),估计是PWM中 ...

已更新,可以试试,空闲电平逻辑通过PWMA_OISR设置实现
文档内有详细的操作说明
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2025-12-05 09:51:04
已绑定手机

0

主题

28

回帖

264

积分

中级会员

积分
264
发表于 2025-11-29 12:52:16 | 显示全部楼层
王*** 发表于 2025-9-18 10:00
当前电压和电流需要用户自行添加,程序内不做多余处理,仅保留电机驱动部分功能。

堵转保护由电机算法自 ...

2025-11-28版本的有几个问题,P36,37打开上拉电阻后开环不能启动,在闭环里转有顿挫现象,串口输出转速和电角度数值不稳定!


void Io_Init(void)
{
        P2M0 |= 0x3f; P2M1 &= ~0x3f;        //P20~P25切换为推挽输出,PWM输出
        P3M0 &= ~0xc0; P3M1 |= 0xc0;         //P36、P37切换为高阻输入,CMP采样
        P2SR &= ~0x3f;                                                                //P20~P25电平转换速度设置为最快
  P2DR &= ~0x3f;                                                                //P20~P25输出电流设置为最大
        P3M0 &= ~0x1c; P3M1 |= 0x1c;         //使用P32~P34三个按键
  P3PU |= 0x1c;                                                                        //打开P32~P34上拉电阻
        P1M0 &= ~0x03; P1M1 |= 0x03;  //P10、P11切换为高阻输入
// P3PU |= 0xc0;                 //打开P36~P37上拉电阻
        P5M0 &= ~0x10; P5M1 |= 0x10; //P54切换为高阻输入
  P5PU = 0x10;                  //打开P54上拉电阻
        P3M0 &= ~0x13; P3M1 &= ~0x13; //P30、P31设置为准双向口,串口使用
}

串口输出信息


                    
[12:50:24.829]接收←set_duty:830,erpm:-1,rpm:0
                    
[12:50:26.677]接收←set_duty:830,erpm:-1,rpm:0
                    
[12:50:29.505]接收←set_duty:830,erpm:-1,rpm:0
                    
[12:50:30.773]接收←set_duty:830,erpm:-1,rpm:0
                    
[12:50:32.037]接收←set_duty:830,erpm:11888,rpm:1698
                    
[12:50:33.306]接收←set_duty:830,erpm:-1,rpm:0
                    
[12:50:34.587]接收←set_duty:830,erpm:8919,rpm:1274
                    
[12:50:35.855]接收←set_duty:830,erpm:11841,rpm:1691
                    
[12:50:37.117]接收←set_duty:830,erpm:-1,rpm:0
                    
[12:50:38.397]接收←set_duty:830,erpm:8910,rpm:1272
                    
[12:50:39.664]接收←set_duty:830,erpm:-1,rpm:0

点评

已更新,请尝试新版本程序  详情 回复 发表于 2025-11-29 18:29
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2025-12-16 10:58:38
已绑定手机

1

主题

43

回帖

171

积分

注册会员

积分
171
发表于 2025-11-29 18:14:53 | 显示全部楼层
王*** 发表于 2025-11-28 22:21
已更新,可以试试,空闲电平逻辑通过PWMA_OISR设置实现
文档内有详细的操作说明 ...

好的,谢谢王工。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:640
  • 最近打卡:2025-12-13 14:46:56
已绑定手机
已实名认证

123

主题

3277

回帖

8312

积分

版主

积分
8312
发表于 2025-11-29 18:29:15 | 显示全部楼层
ct1*** 发表于 2025-11-29 12:52
2025-11-28版本的有几个问题,P36,37打开上拉电阻后开环不能启动,在闭环里转有顿挫现象,串口输出转速和 ...

已更新,请尝试新版本程序
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2025-12-05 09:51:04
已绑定手机

0

主题

28

回帖

264

积分

中级会员

积分
264
发表于 2025-11-29 20:54:29 | 显示全部楼层
王*** 发表于 2025-11-29 18:29
已更新,请尝试新版本程序

  王工,我更新了29号的程序,串口打印问题解决了,在闭环转动也不会顿挫了,但是我调到1000占空比时,在高速转动下按P54键停止,会导致有一相中的上下管都击穿了,我在220v中串了一个100W的灯泡进行限流的,是什么原因引起击穿呢,上下驱动管的用的6A XNM6N60T ITBG管


        if(P54 == 0){if(B_Timer3_OverFlow>Ref_OVER_TIME){ReStart_Moto();}//启动/停止控制
        //else{Fast_Stop_Moto();while(P54==0);}}//可选快速刹车
        else{Stop_Moto();while(P54==0);}}//可选慢速刹车(自由滑行刹停)

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:640
  • 最近打卡:2025-12-13 14:46:56
已绑定手机
已实名认证

123

主题

3277

回帖

8312

积分

版主

积分
8312
发表于 2025-11-29 21:15:58 | 显示全部楼层
ct1*** 发表于 2025-11-29 20:54
王工,我更新了29号的程序,串口打印问题解决了,在闭环转动也不会顿挫了,但是我调到1000占空比时,在 ...

考虑是耐压不足导致的问题?
较高速度下停止按道理讲没有问题
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2025-12-05 09:51:04
已绑定手机

0

主题

28

回帖

264

积分

中级会员

积分
264
发表于 2025-11-29 21:24:16 | 显示全部楼层
王*** 发表于 2025-11-29 21:15
考虑是耐压不足导致的问题?
较高速度下停止按道理讲没有问题

程序默认P54是做启动/停止,

        if(P54 == 0){if(B_Timer3_OverFlow>Ref_OVER_TIME){ReStart_Moto();}//启动/停止控制
        //else{Fast_Stop_Moto();while(P54==0);}}//可选快速刹车
        else{Stop_Moto();while(P54==0);}}//可选慢速刹车(自由滑行刹停)

   XNM6N60T我用其它方案的FOC上,不会有击穿的情况,用在STC32方案上调试时已经出现击穿几次了,它是上下同时击穿的,是不是死区设置不对?

高速转动时电流在0.2A 左右,你在循环程序里放上10ms的延时,会影响上下管的关断时序吗

点评

或者你可以试试快速刹车 这个方式会通过打开全部的下管强制刹车 如果还不行,我可以考虑增加一个同步整流刹车的代码 或者,可以在刹车前先降低占空比,到一个较小的占空比后再执行刹车 我这里使用12V,大功率版,测  详情 回复 发表于 2025-11-30 00:21
循环程序并不会影响操作,所有的操作均是通过pwm硬件控制的 如果上下管同时击穿,确实可以考虑一下增大死区时间,高电压下mos管的导通和关断时间可能没有那么迅速  详情 回复 发表于 2025-11-30 00:15
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:640
  • 最近打卡:2025-12-13 14:46:56
已绑定手机
已实名认证

123

主题

3277

回帖

8312

积分

版主

积分
8312
发表于 2025-11-30 00:15:42 | 显示全部楼层
ct1*** 发表于 2025-11-29 21:24
程序默认P54是做启动/停止,

        if(P54 == 0){if(B_Timer3_OverFlow>Ref_OVER_TIME){ReStart_Moto() ...

循环程序并不会影响操作,所有的操作均是通过pwm硬件控制的
如果上下管同时击穿,确实可以考虑一下增大死区时间,高电压下mos管的导通和关断时间可能没有那么迅速
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:640
  • 最近打卡:2025-12-13 14:46:56
已绑定手机
已实名认证

123

主题

3277

回帖

8312

积分

版主

积分
8312
发表于 2025-11-30 00:21:05 | 显示全部楼层
ct1*** 发表于 2025-11-29 21:24
程序默认P54是做启动/停止,

        if(P54 == 0){if(B_Timer3_OverFlow>Ref_OVER_TIME){ReStart_Moto() ...

或者你可以试试快速刹车
这个方式会通过打开全部的下管强制刹车
如果还不行,我可以考虑增加一个同步整流刹车的代码
或者,可以在刹车前先降低占空比,到一个较小的占空比后再执行刹车
我这里使用12V,大功率版,测试电机在满占空比下直接刹车确实没什么问题
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-17 00:49 , Processed in 0.135506 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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