[活动专区] 【AT-START-M412测评】+ 无刷电机控制3-pwm异常+foc优化

[复制链接]
 楼主| 穿西装的强子 发表于 2025-6-10 23:16 | 显示全部楼层 |阅读模式
本帖最后由 穿西装的强子 于 2025-6-13 23:09 编辑

发现个问题,timer4配置10k的PWM时,按workbench进行配置
9962068484a624cf4a.png
4554668484ade126be.png
4154668484aac9b24c.png
6766968484ab6bb208.png

按手册上tmr4的时钟源是APB1是180MHz,按以上的分频系数生成10K的PWM,但是实际上PWM的频率只有5KHZ。
下面是改了分频系数,减半之后输出为10KHz,这个不知道是什么情况导致的。

  1.   /* configure counter settings */
  2.   tmr_cnt_dir_set(TMR4, TMR_COUNT_TWO_WAY_1);
  3.   tmr_clock_source_div_set(TMR4, TMR_CLOCK_DIV1);
  4.   tmr_period_buffer_enable(TMR4, FALSE);
  5.   tmr_base_init(TMR4, 999, 8);


在移植好foc后进行检验,在仿真后观看foc运行时间
1198268484b948c2b3.png
t1 = 0.000257 = 257us
这个时间已经超过了10khz的周期,因此需要继续优化
3409268484c48d84c5.png
使用-o2优化后时间有改善
3709868484be91bbcb.png
t1 = 0.0001623 = 162.3us
已经有很大的优化了,还需要更进一步的优化。
不知道为什么foc运算会占用这么多时间,有些是加法和乘法,也很占用时间。
后续会进一步优化foc运算时间,保证在100us以内。------------------------------ 后续 -------------------------------------------

这块测试的时间有问题,没配置对,在debug的时候要将该时钟按自己芯片的主频来处理,不然计算的时间不准
34156684c3d13719ba.png
用一个延时函数进行验证,时间比较准了,然后再测试foc的时间
77942684c3da570d19.png
t1 = 0.00001513s = 15.13ns了完全能满足要求
98571684c3dd4a2ce0.png
明后2天将继续验证foc控制算法,现在使用的simple的驱动板,完全能满足foc控制的需求,还有个问题是驱动板虽然是ardunio的接口,但是pwm接口不匹配,因此还得飞线才能控制驱动芯片。。
76355684c3efad0d38.png
板子上没预留定时器三通道的接口,只有飞杜邦线了。




chenqianqian 发表于 2025-6-11 08:22 来自手机 | 显示全部楼层
不敢随便开启优化,不知道会不会因为代码问题反而优化后出问题了。

评论

是的,但是新工程按优化运行找Bug就行 - _ -!!  发表于 2025-6-11 09:49
 楼主| 穿西装的强子 发表于 2025-6-15 21:59 | 显示全部楼层
mos搞烧了,没硬件保护就是麻烦,容易烧mos,电机运行还有问题没解决,只有重新换个Mos了
szt1993 发表于 2025-6-15 23:19 | 显示全部楼层
驱动电路硬件MOS保护一定要搞齐全
 楼主| 穿西装的强子 发表于 2025-6-16 09:50 | 显示全部楼层
szt1993 发表于 2025-6-15 23:19
驱动电路硬件MOS保护一定要搞齐全

买的驱动板不带没办法
顶点追寻者 发表于 2025-6-18 11:04 | 显示全部楼层
chenqianqian 发表于 2025-6-11 08:22
不敢随便开启优化,不知道会不会因为代码问题反而优化后出问题了。

是的,现在代码空间都是够的,没必要开优化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

258

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部