主题中讨论的其他器件:BOOSTXL-3PHGANINV


工具与软件:
我将 F280039C 微控制器与 BOOSTXL-3PHGANINV 驱动程序配合使用、并打开了 Universal_motorcontrol_lab_f28003x。
我已将其中一个电机的霍尔传感器连接到 BOOSTXL-3PHGANINV (如数据表中所述)、并且我需要进行校准。
我 在通用电机控制实验室中找不到有关此过程的任何信息、仅此文章和此注释:
// Enable MOTOR1_HALL_CAL pre-defined symbols, run the motor with FAST for angle calibration
// Copy hall_M1.thetaCalBuf[] to hallAngleBuf[]
// 1->1, 2->2, 3->3, 4->4, 5->5, 6->6, 6->0
// Disable MOTOR1_HALL_CAL pre-defined symbols after calibration for normal operation
// 6 1 2
// 3 4 5
// 6
1) 我不明白在校准期间是否必须同时激活预定义的符号 HALL_CAL 和 MOTOR1_HALL .. 或者我只需要激活 HALL_CAL。
2) 我应该在哪里写入校准所需的代码? motor1_drive.c 文件中的注释正下方? 占空比是多少?
3) 正确、如果我错了、这是需要编写的代码吗?
float32_t hallAngleBuf[7] = { 0, 0, 0, 0, 0 , 0, 0 };
hallAngleBuf[0] = hall_M1.thetaCalBuff[0];
hallAngleBuf[1] = hall_M1.thetaCalBuff[1];
hallAngleBuf[2] = hall_M1.thetaCalBuff[2];
hallAngleBuf[3] = hall_M1.thetaCalBuff[3];
hallAngleBuf[4] = hall_M1.thetaCalBuff[4];
hallAngleBuf[5] = hall_M1.thetaCalBuff[5];
hallAngleBuf[6] = hall_M1.thetaCalBuff[6];
hallAngleBuf[0] = hall_M1.thetaCalBuff[6];
在 main 中写入上述代码后、我将 HALL_M1.thetaCalBuff 放入 表达式中(调试时)、但一切都保持为0。
研究一个位后、我注意到 HALL_calibrateIndexAngle 函数(我认为是校准)没有变化...也就是说、仅当 motorVars_M1.flagEnableRunAndIdentify = 0但其中没有参数发生变化时才会重复调用它。 一切都是零!
我应该已经上传了一些图片、如果您看到这些图片、请告诉我