打印
[活动专区]

【AT-START-M412测评】+ 无刷电机控制3-pwm异常+foc优化

[复制链接]
343|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 穿西装的强子 于 2025-6-13 23:09 编辑

发现个问题,timer4配置10k的PWM时,按workbench进行配置





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

  /* configure counter settings */
  tmr_cnt_dir_set(TMR4, TMR_COUNT_TWO_WAY_1);
  tmr_clock_source_div_set(TMR4, TMR_CLOCK_DIV1);
  tmr_period_buffer_enable(TMR4, FALSE);
  tmr_base_init(TMR4, 999, 8);


在移植好foc后进行检验,在仿真后观看foc运行时间

t1 = 0.000257 = 257us
这个时间已经超过了10khz的周期,因此需要继续优化

使用-o2优化后时间有改善

t1 = 0.0001623 = 162.3us
已经有很大的优化了,还需要更进一步的优化。
不知道为什么foc运算会占用这么多时间,有些是加法和乘法,也很占用时间。
后续会进一步优化foc运算时间,保证在100us以内。------------------------------ 后续 -------------------------------------------

这块测试的时间有问题,没配置对,在debug的时候要将该时钟按自己芯片的主频来处理,不然计算的时间不准

用一个延时函数进行验证,时间比较准了,然后再测试foc的时间

t1 = 0.00001513s = 15.13ns了完全能满足要求

明后2天将继续验证foc控制算法,现在使用的simple的驱动板,完全能满足foc控制的需求,还有个问题是驱动板虽然是ardunio的接口,但是pwm接口不匹配,因此还得飞线才能控制驱动芯片。。

板子上没预留定时器三通道的接口,只有飞杜邦线了。




使用特权

评论回复
沙发
chenqianqian| | 2025-6-11 08:22 | 只看该作者
不敢随便开启优化,不知道会不会因为代码问题反而优化后出问题了。

使用特权

评论回复
评论
穿西装的强子 2025-6-11 09:49 回复TA
是的,但是新工程按优化运行找Bug就行 - _ -!! 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

225

帖子

3

粉丝