请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:C2000WARE-MOTORCONTROL-SDKThread 中讨论的其他器件:BOOSTXL-DRV8323RS、 LAUNCHXL-F280025C
工具/软件:
您好:
我遵循 “用户指南 电机控制 SDK 通用工程和实验“文档中的“3.2.10 BOOSTXL-DRV8323RS 设置“来设置 LAUNCHXL-F280025C 和 BOOSTXL-DRV8323RS。
为了验证 LAUNCHXL-F280025C 是否通过 SPI 与 BOOSTXL-DRV8323RS 成功通信、我执行了以下步骤:
-
我修改了源代码、如下所示。 用途:将数据写入 DRV8323RS 的控制寄存器后、我读回这个相同的控制寄存器。
bool HAL_MTR_setGateDriver(HAL_MTR_Handle handle) { ... ... drvicVars_M1.ctrlReg02.bit.OTW_REP = true; drvicVars_M1.ctrlReg02.bit.PWM_MODE = DRV8323_PWMMODE_6; drvicVars_M1.ctrlReg05.bit.VDS_LVL = DRV8323_VDS_LEVEL_1P700_V; drvicVars_M1.ctrlReg05.bit.OCP_MODE = DRV8323_AUTOMATIC_RETRY; drvicVars_M1.ctrlReg05.bit.DEAD_TIME = DRV8323_DEADTIME_100_NS; drvicVars_M1.ctrlReg06.bit.CSA_GAIN = DRV8323_Gain_10VpV; // ADC_FULL_SCALE_CURRENT = 47.14285714A // drvicVars_M1.ctrlReg06.bit.CSA_GAIN = DRV8323_Gain_20VpV; // ADC_FULL_SCALE_CURRENT = 23.57142857A drvicVars_M1.ctrlReg06.bit.LS_REF = false; drvicVars_M1.ctrlReg06.bit.VREF_DIV = true; drvicVars_M1.ctrlReg06.bit.CSA_FET = false; drvicVars_M1.writeCmd = 1; HAL_writeDRVData(handle, &drvicVars_M1); SysCtl_delay(1000U); drvicVars_M1.writeCmd = 1; HAL_writeDRVData(handle, &drvicVars_M1); SysCtl_delay(1000U); // My code to read control register after write data drvicVars_M1.readCmd = 1; HAL_readDRVData(handle, &drvicVars_M1); SysCtl_delay(1000U); ... ... } -
我在调试模式下运行程序。
结果: BOOSTXL-DRV8323RS 的所有控制寄存器返回值零! (如下图所示)

因此、我的问题是:
如果所有寄存器值总是读回为零、是否存在任何问题?
如何验证对 DRV8323RS 控制寄存器的写入操作实际上是否成功?