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.

[参考译文] LAUNCHXL-F280049C:在 Launch XL F280049C 和 DRV8320-BOOSTXL 中与 DRV8320共享 SPI

Guru**** 2538955 points
Other Parts Discussed in Thread: DRV8320

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/942567/launchxl-f280049c-sharing-spi-with-drv8320-in-launch-xl-f280049c-and-drv8320-boostxl

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:DRV8320

您好!

我需要与其他一些外设共享 连接到 DRV8320的 SPIA。

但是、只要我对 SPIA_STE 引脚执行任何操作(以防止从器件选择到 DRV8320)、Instaspin FOC 就会停止执行任何操作。

如果我将这两条指令添加到 is07_speed_control.c 主循环的主循环中、电机将不再运行:

   GPIO_setPinConfig (GPIO_57_GPIO57);//这应该会阻止 STE 信号

//在这里,我将添加代码,以便与我的外设通信

   GPIO_setPinConfig (GPIO_57_SPISTEA);//这应该会恢复 STE/SPI 功能

这种"技巧"适用于 F28027。

但对于 F28049C、似乎没有任何东西可以恢复 FOC 功能。

即使使用 HAL 层方法重新初始化 SPI 也会阻止 FOC 执行其任务。

即使上述内容不在循环中、即使在我进入主循环之前执行一次、也会出现问题。

我不是很好。

WBR Kusti

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

    GPIO 应设置为高电平、如下所示。

    GPIO_setPinConfig (GPIO_57_GPIO57);
    GPIO_writePin (57、1);
    GPIO_setDirectionMode (57、GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig (57、GPIO_PIN_TYPE_PULLUP);

    如果 SPIA_STE 配置为 GPIO 以禁用 DRV8320的选择、则无法调用 DRV8320的所有相关函数。

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

    您好!

    谢谢你。

    正如我试图解释的那样,以上内容不起作用。

    只需在 Instaspin 实验中'is07_speed_control.c'的主循环之前(下面)执行一次此操作即可阻止 FOC 工作。

    我复制粘贴您的建议、并复制粘贴的初始化、从 hal.c 中恢复引脚功能

    因此、人们会认为它是有效的。 但没有。

    因此、我不会去任何地方...

    //禁用 SPISTEA
    
    GPIO_setPinConfig (GPIO_57_GPIO57);
    
    GPIO_writePin (57、1);
    
    GPIO_setDirectionMode (57、GPIO_DIR_MODE_OUT);
    
    GPIO_setPadConfig (57、GPIO_PIN_TYPE_PULLUP);
    
    
    
    
    
    
    
    //恢复 SPISTEA
    
    // GPIO57->SPIA-CS 用于 J1/J2连接
    
    GPIO_setMasterCore (57、GPIO_CORE_CPU1);
    
    GPIO_setPinConfig (GPIO_57_SPISTEA);
    
    GPIO_setDirectionMode (57、GPIO_DIR_MODE_OUT);
    
    GPIO_setPadConfig (57、GPIO_PIN_TYPE_STD);
    

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

    您好 Kusta、

    为何不简单地为您的其他外设业务免费使用 SPI-B Booster 标头。

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

    尊敬的 GL:

    感谢您的建议。

    两个原因:

    A)它需要更换硬件(不是大问题、而是门槛)

    b)在下一阶段保留用于主机通信、因此我必须在一两周内返回 SPI、以解决问题

    但是! 我找到了实际的问题!

    当我们从 LAUNCHXL F28027转向 F280049C 时、我们没有发现我们用来选择的 GPIO 引脚之一

    其中一个 SPI 不再用作输出、因此基本上是悬空的、因此其中一个的从器件选择

    SPI 器件有时处于活动状态、具体取决于导致 SPI 数据损坏并因此被防止的时序

    DRV8320的正常功能。

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

    实际上、DRV8320器 件并不总是占用 SPI、而是在示例实验中初始化其接口期间使用 SPI 来配置控制寄存器。 如果您使用的是控制寄存器的默认值、即使是 DRV8320也不需要使用 SPI。

      您是否在初始化期间只调用 HAL_enableDRV 一次? 如果您禁用 DRV8320的 SPI、您能否监控使能引脚和 nFAULT 引脚以查看是否会发生这种情况?

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

    是的、DRV8320仅初始化一次、但由于其他 SPI 器件的浮动 CS、因此失败。  

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

    如果您使用 DRV8320RS 的默认控制参数并删除其所有相关功能、即使您不使用 SPI 配置其控制寄存器、Launchpad F28-49上的 DRV8320RS 也可以正常工作。 您可以检查是否更改了 DRV8320RS 的其他 GPIO、例如 EN_GATE 引脚。