This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BOOSTXL-DRV8301:BOOSTXL-DRV8301

Guru**** 2364170 points
Other Parts Discussed in Thread: MOTORWARE, DRV8305
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/627328/boostxl-drv8301-boostxl-drv8301

部件号:BOOSTXL-DRV8301
主题中讨论的其他部件:MOTORWAREDRV8305

您好,

我正在使用Motorware FOC lab05b运行BLDC电机,我的电机为 57HBL74,详情请参阅以下链接。

我们通过导线螺钉和一些传动装置上下移动负载。

负载到达200 kg 时,在上行行程中以大约25 mm /秒的速度移动。

在About 120 kg ,一切都很好,上下下。 速度由PID控制器很好地控制。

由于200 kg 负载处于下冲程,当重力帮助电机发生故障时,软件会发生故障(永远不会恢复),负载基本上会发生波动。

我刚刚注意到这一点,所以我还没有将BOOSTXL电路板连接到Code Composer Studio调试器,以查看实际发生的情况,

这需要等到星期一,但我想我会在这里提出问题,这样我就可以利用周末来思考各种可能性。

祝大家周末愉快,

WBR Kusti

http://www.fullingmotor.com/product/br/129.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Kusti:

    您是否检查了设备中的nFAULT引脚和状态寄存器? 当设备停止时,nFAULT引脚和状态寄存器上的信息是很好的线索。

    重新启动系统需要执行什么操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Rick:

    感谢您的回答。

    没有,我没有机会将系统连接到PC,但我将在星期一进行连接。

    要使其正常工作,我必须重启BOOSTXL板,但这不是
    跟IIRC一样,说明FOC实验室代码在进入时如何重新启动
    错误状态。

    我只是在钓鱼,因为可能或知道在负载时发生的问题
    转动电机,而不是电机移动负载。

    除非有任何已知问题或猜测是可以的,否则我将检查
    更多详情,请在周一回来。

    WBR Kusti
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我连接了CCS调试器,但我看不到任何错误或任何吸引我眼球的东西。

    我抓取了变量表达式视图内容并转储到附加的文本文件。

    运行正常时首先转储,然后再转储失败。

    我应该寻找的是什么,我应该提供哪些信息,以使迭代变慢...

    WBR Kusti

    e2e.ti.com/.../dump-_2800_2_2900_.txt</s>2900

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Kusti:

    您不需要CCS调试器来处理请求的信息。

    您是否监控了nFAULT针脚? 它是否从逻辑零变为低零? 如果是,请读取状态寄存器以确定故障原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哎呀,没有抓住这个。 好的,我明天会检查nFAULT 我需要调试器来读取状态reg;)现在就可以启动并运行了。

    谢谢Kusti
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    首先,我使用的是DRV8305,而不是我错误地说的8301,对此表示抱歉。

    我检查了nFAULT指示灯,它确实在系统出现故障时亮起。

    我试图查看状态寄存器,但没有让它发挥作用(我认为)。

    在CCS表达式选项卡I中,显示gDrvSpi8305Vars变量,但显示所有

    STAT_REG_01 - STAT_REG_04将所有状态位显示为1,与无关  

    我要做的事情,请参阅以下内容:

    我验证了主循环(在proj_lab05b.c中)通过第479行的读/写SPI内容:

    #ifdef DRV8305_SPI
    	DEBU[0]++;
    HAL_writeDrvData(halHandle,&gDrvSpi8305Vars);
    	gDrvSpi8305Vars.ReadCmd = 1;
    HAL_readDrvData(halHandle,&gDrvSpi8305Vars);
    #endif
    

    我可以在“表达式”选项卡中看到,我的debug[0]一直在计数。  

    也尝试了(原)不使用ReadCmd=1。

    我一定错过了一些非常基本的东西,但什么呢?

    WBR Kusti

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,



    首先,我使用的是DRV8305,而不是我错误地说的8301,对此表示抱歉。

    我检查了nFAULT指示灯,它确实在系统出现故障时亮起。

    我试图查看状态寄存器,但没有让它发挥作用(我认为)。

    在CCS表达式选项卡I中,显示gDrvSpi8305Vars变量,但显示所有

    STAT_REG_01 - STAT_REG_04将所有状态位显示为1,与无关

    我的工作,请参见下文


    我验证了主循环(在proj_lab05b.c中)通过第479行的读/写SPI内容:

    #ifdef DRV8305_SPI
    DEBU[0]++;
    HAL_writeDrvData(halHandle,&gDrvSpi8305Vars);
    gDrvSpi8305Vars.ReadCmd = 1;
    HAL_readDrvData(halHandle,&gDrvSpi8305Vars);
    #endif
    我可以在“表达式”选项卡中看到,我的debug[0]一直在计数。

    也尝试了(原)不使用ReadCmd=1。

    我一定错过了一些非常基本的东西,但什么呢?


    WBR Kusti
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    首先,我使用的是DRV8305,而不是我错误地说的8301,对此表示抱歉。

    我检查了nFAULT指示灯,它确实在系统出现故障时亮起。

    我试图查看状态寄存器,但没有让它发挥作用(我认为)。

    在CCS表达式选项卡I中,显示gDrvSpi8305Vars变量,但显示所有

    STAT_REG_01 - STAT_REG_04将所有状态位显示为1,与无关

    我的工作,请参见下文

    我验证了主循环(在proj_lab05b.c中)通过第479行的读/写SPI内容:

    #ifdef DRV8305_SPI

      DEBU[0]++;

        HAL_writeDrvData(halHandle,&gDrvSpi8305Vars);

      gDrvSpi8305Vars.ReadCmd = 1;

        HAL_readDrvData(halHandle,&gDrvSpi8305Vars);

    #endif

    我可以在“表达式”选项卡中看到,我的debug[0]一直在计数。

    也尝试了(原)不使用ReadCmd=1。

    我一定错过了一些非常基本的东西,但什么呢?

    WBR Kusti

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Kusti:

    感谢您的澄清。

    很难确定,但寄存器的读数可能全部为1。 建议在电机运行之前尝试读取寄存器,以确认SPI事务是否正确。

    一旦确认SPI读数正确,就可以在故障后读取寄存器,以确定故障原因。