Foc讲解,电机控制,odrive源码分析移植速成系列(HAL库,CUBEMXSTM32) 二,CUBEMX的配置(usb虚拟串口,dsp库,ADC,定时器)

一,MOS的栅极驱动配置

mos驱动一般都是利用定时器的互补pwm通道, 使得上下mos管不会同时导通,需要根据自己的驱动电路的AH BH CH AL BL CL来选择对应的定时器引脚

通道四的选取是用来触发ADC采样的,只有固定的时候,mos的下管才是全部打开的,这样对于低端采样,才可以正确的采集到电流,记得打开比较中断和更新中断。然后关于PWM的模式选择,就不在细说了,可以自行查阅。同时要注意自己的栅极驱动芯片有没有要求,比如说drv8301就需要spi配置一下,并且使能EN_GATE引脚,而FD8266就不需要初始化和使能引脚,具体需要看自己使用的电驱硬件。

二,ADC电流采样的配置

关于ADC采样,我喜欢用注入采样,因为我师父就是用的注入采样组,其他模式也是可以的,比如可以采样DMA,这样还可以非常方便的滤掉一些电流尖峰。

关于用几个定时器,在我看来还是多几个比较好,双电阻采样可以用两个ADC分别采样一个,据说这样比较快, 三电阻就可以开三个ADC,然后将我们采集的电压模拟值转换为实际电压值,再计算出实际的电流值,用于pid计算中,采样时间可以根据硬件情况适当调整,一般3cycle都是没问题的

三,编码器的配置

 获取角度的方式,现在常用的有两种,spi通信获取,或者abz读取脉冲数

spi获取:

注意spi的配置要根据编码器来配置,比如我用的就是as5047p ,根据数据手册,他的通讯速率最大为10M,但是我实际使用10.5M也没事,所以我就使用了,然后一般都是高位在前,16位。而mt6816最大速率可以达到18M,具体的要根据自己的数据手册,毕竟越快越好。

abz获取:

现在用HAL库非常方便,只需要调用定时器编码器模式即可,比如我这个配置,就是电机转一圈定时器的CNT会有4000个数,选择的是上升下降都计数,abz不像spi那样,数据包,地址都有很大区别,更加方便。对了我当时用mt6816的时候没注意spi和abz的切换是需要拉高拉低电平的,所以一定要细心地注意看看数据手册。

四,虚拟串口的配置

然后最好要配置一下usb虚拟串口,因为普通串口发送是在是太慢了,发送太多,foc计算频率要求又很高,所以还是很有必要的

直接在connectivity里面勾选usb

然后在下面勾选usb设备

里面选择虚拟串口模式即可。

5,DSP库的配置

配置dsp库可以调用arm_math的函数,可以加快数学运算速率,毕竟对于程序来说,速率越快越好

首先要在softwa packs里面勾选dsp、

然后在里面勾选即可。注意先开启,要不勾选不上,配置完成之后还要引用链接一下库,我用的clion,不同的有不同的方式,网上搜索一下即可

刚刚跑完,有错误请指正,持续更新。

FOC讲解电机控制速成教程,三环嵌套,可拓展力矩环(基于CUBEMX,STM32HAL库,包含odrive代码分析讲解)一,简单概述,分析电流环-CSDN博客

Foc讲解,电机控制,odrive源码分析移植速成系列(HAL库,CUBEMXSTM32) 三,(1)代码编写(大体框架。drv8301配置,编码器校准)-CSDN博客 

 

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值