Part Number:LAUNCHXL-F28379DOther Parts Discussed in Thread: SFRA, DRV8305, DRV8301, CONTROLSUITE
我想用LAUNCHXL-F28379D和DRV8305EVM学习FCL_SFRA_XL_DualServo例子。
硬件方面,LAUNCHXL-F28379D上JP1至5都断开了,JP6联通;我目前只有一块DRV8305EVM 安装在了LAUNCHXL-F28379D的J1至J4接口,并且接入40V直流电,暂未连接电机。
代码方面,在FCL_379XL的样例中,FCL_SFRA_XL_DualServo-Settings.h中只更改了
#define MOTOR1_DRV DRV8305以及
#define SAMPLING_METHOD SINGLE_SAMPLING
其余均为更改。
当我运行FCL_LEVEL1时,主函数总会停在下面这段代码的地方,所以我并不能观测到IsrTicker++
#if (MOTOR1_DRV == DRV8301)
InitDRV8301Regs(&motor1, DRV1_GAIN); // Init DRV regs' mirror variables
// motor1.drv8301.cntrl_reg1.bit.PWM_MODE = drv8301_pwmMode_6;
InitDRV8301(&motor1);
while (motor1.drv8301.DRV_fault) ; // hang on if drv init is faulty
#elif (MOTOR1_DRV == DRV8305)
InitDRV8305Regs(&motor1, DRV1_GAIN);
// motor1.drv8305.cntrl7_gd.bit.PWM_MODE = drv8305_PWM_mode_6;
InitDRV8305(&motor1);
while (motor1.drv8305.DRV_fault) ; // hang on if drv init is faulty
#endif
请问是什么问题造成的初始化DRV8305失败呢?
Green Deng:
你好,能提供一下你的例程打开路径吗?看上去这应该是一个宏定义的问题
,
JINGJING LIU:
你好,例子是从这导入到CCS的C:\ti\controlSUITE\libs\app_libs\motor_control\libs\FCL_SFRA\v01_00_00_00\Examples
,
Green Deng:
宏定义更改完之后,编译的时候会切换到#elif (MOTOR1_DRV == DRV8305)吗?
你的DRV8305是接在MOTOR1还是MOTOR2的位置?
很遗憾我这边没有8305的板子,没办法实际测试,不知道是否跟连接的motor数量有关
,
JINGJING LIU:
你好,编译的时候会切换到了DRV8305状态。我目前是接到了motor1的位置,motor2的位置空着。看样例的文档里,我感觉和电机数量应该没有关系,至少在这第一步只是验证PWM产生,而且我尝试删除掉关于Motor2的代码同样会初始化失败
,
Green Deng:
你好,抱歉漏贴了。
很遗憾的是如上所述,我这边没有这款驱动板,没办法实际测试代码,而且你的操作在我看来也没有什么问题。
如果你的问题没有解决的话建议发布到英文E2E去咨询一下,那边有电机控制方面的专家可以为你解答:
https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum