TI中文支持网
TI专业的中文技术问题搜集分享网站

BOOSTXL-DRV8323RS: 向f28p65x移植universal motorcontrol lab时,遇到过流保护问题

Part Number:BOOSTXL-DRV8323RS

各位好

由于我们购买了launchxl f28p65x开发板和boostxl drv8323rs模块,但motorcontrol sdk内没有能直接运行的demo,因此我选择了从f28003x系列的universal motorcontrol lab进行移植。

到目前我已经为移植做了:重新编写了内存布局cmd文件,重新配置GPIO,断开可能不兼容的开发板信号并跳线,修改了pwm和时钟树相关的宏定义,尝试向每个pwm管脚都添加了双向的cmpss支持(因为f28p65x的pwm与cmpss的组合与demo中差别较大),并修复了SDK提供的drv8323s驱动中SPI读写命令位的bug。

经过了一段时间的调试,现在使用DMC_LEVEL_1构建工程似乎已经没有问题了,每个通道都输出了15khz 50%占空比的方波,faultMtr内没有错误发生,adc各个偏移量也符合实验文档中的描述。

于是我尝试进行DMC_LEVEL_2级别构建。 在user_mtr1.h中,我在Teknic_M2310PLN04K的基础上,按文档所述进行如下修改:

#define USER_MOTOR1_FREQ_LOW_Hz(5.0f)// Hz
#define USER_MOTOR1_FREQ_HIGH_Hz(40.0f)// Hz
#define USER_MOTOR1_VOLT_MIN_V(7.2f)// Volt
#define USER_MOTOR1_VOLT_MAX_V(48.0f)// Volt

电机铭牌参数如下:

尝试运行时,发现使能demo后,电机转子快速动作了很小的角度后,faultMtr内就会出现ModuleOverCurrent错误。

尝试过降低speedRef_Hz,调整电源到24V,增加motorSetVars_M1.overCurrent_A的值,症状没有变化。

通过示波器捕捉ISENA,ISENC和A相电流,发现触发过流错误时的电流值确实会随着overCurrent_A的设定而变化,但无论设置到2A还是40A都会爬升到过流错误。

对比过流时adcData读数和ISENx上测量到的电压,换算后也大致是一致的。

使能demo之前,各个epwm的TZFLG寄存器值均为0x0004;使能并报错停止时(程序停留在moduleOverCurrent = 1的断点),各个TZFLG的值都为0x002E

请问这可能是哪方面的问题,应该向哪个方向继续排查?

Versenkt Lee:

看起来是因为v/f相关的参数配置有问题,把其它参数还原,仅修改最大电压USER_MOTOR1_VOLT_MAX_V的情况下,已经可以在2级构建下驱动电机旋转了。

这些参数似乎和我理解的有所不同,我以为的电机频率相关定义是根据电机额定转速RPM换算得来的,结果按照这一思路修改MOTOR1_FREQ相关参数后就会导致过流问题。请问sdk中的freq具体指的是什么呢?

,

Versenkt Lee:

我保持上述参数的情况下,尝试了3级构建。电机可以正常运行,且比开环要更平稳一些。

但有一个问题从2级构建保持到了3级构建中:speed_HZ和speedRef_HZ并不那么一致。在2级构建时,speed_HZ大概是Ref的1.5倍(20->30, 30->45),而在3级构建时,又变成了大约1.6倍的关系。目标值比较小的话(比如0-10),speed_HZ则不再遵守这个规律,始终会在10-20的范围。 然而,用示波器直接测量相电流,电流是非常贴近speedRef_Hz设定值频率的稳定的正弦波,无论频率设定的是大或是小。按照文档的说明,构建2和构建3中两个变量的值应该是非常接近的。请问这是什么原因?

还有关于转子角度的生成与估算值,我使用datalog进行观测,发现它们的波形并不像文档中那样是两个非常近似的锯齿波,而是会出现阶跃的,看起来不怎么同步的波形。我不确定这是datalog/ccs的问题还是其它原因,因为无论是电机的转动还是示波器相电流的表现都使我觉得datalog展示的波形并没有反应实际情况。

赞(0)
未经允许不得转载:TI中文支持网 » BOOSTXL-DRV8323RS: 向f28p65x移植universal motorcontrol lab时,遇到过流保护问题
分享到: 更多 (0)