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.

[参考译文] DRV8353RS-EVM:通过 SPI 查询和编程寄存器来选择 IDRIVE 和 CSA_GAIN

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1164121/drv8353rs-evm-spi-query-and-programming-of-registers-to-select-idrive-and-csa_gain

器件型号:DRV8353RS-EVM
主题中讨论的其他器件:TMS320F28379DDRV8353C2000WAREDRV8252

我知道有人这样做,但到目前为止,我还没有。 我需要通过 SPI 端口对 DRV8353中的一些寄存器进行查询和编程。 对于 EVM 器件、我有一个笔记本电脑串行端口用于执行此操作(CoolTerm);对于8353SRTAT 器件、我使用其 SPI_A 端口和 DRV 器件的引脚27-30连接到 TMS320F28379D DSP。 请告诉我(通过示例)用于查询和设置值(也包括波特率、停止位、数据位和奇偶校验)的串行命令的格式。 最后、我想使用 Matlab / Simulink SPI 模块来执行配置。

Steve Abel

可配置控制

480.209.3344

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

    您好、Steve、  

    感谢您发帖到 e2e 论坛。 我已将该主题分配给一名团队成员、以获得进一步的支持。  

    有关 SPI 格式化的信息、请参阅 DRV8353的数据表- https://www.ti.com/lit/ds/symlink/drv8350r.pdf

    请参阅以下片段。  

    此致、
    Andrew  

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

    刘宏发。 谢谢你。 说明和图都很有用。 我现在已经监视了 TMS3208F28379D (GPIO58-61)和 DRV8353SRTAT (引脚27-30)[SDO、SDI、CLK、SCS]之间的四个信号接口上的流量。 这里是我看到的好的和坏的。 芯片选择 SCS 与图54一样、它在16个时钟周期内保持 LO 状态。 CLK 实际上向下脉冲16次、而图中脉冲为 HI。 到目前为止都很好。 来自 TMS 的数据是以多种方式制作的。 我的 MSB 是左侧读取的1 (高电平)。 接下来的4个位从0循环到7个十进制(1 =高电平)。 我观察到这些-样本请见附件。 我在早些时候将11个数据位设置为零。 DRV 的返回信号在串行窗口中或在示波器上读取时始终处于高电平"FFF"状态、如图所示。 我不知道 DRV 是否无法发送任何内容、或者它是否正在按目的发送所有1s。 它可以锁定为1。 我已尝试为第一个位发送 W (0)。 我还在寄存器地址位上尝试将1s 反相为0。 我尝试为数据位发送各种值。 但返回 SDO 信号永远不会改变-始终为高电平。 我希望 SDO 告诉我读命令(1)的寄存器中有什么内容、或者告诉我刚刚为写命令(0)写入了什么内容。 是否有如何继续的想法?

    Yel= CLK (10MHz 时为16个下行脉冲)

    VIO = SCS、STE  

    Blu = SDI  (R 表示1 MSB、值5表示接下来的4位地址、0数据-如图所示、完成11位)

    GRN = SDO  始终为高电平

    C:\Users\Steve\Desktop\cF_photes\IMG_4762.jpg  

    显示了我与 DRV 的连接。 SDO 具有10k 上拉电阻、其他 SDO 具有10k 下拉电阻

    C:\Users\Steve\Desktop\cF_photes\Circuit_TMS_DRV.jpg  

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

     尊敬的 Andrew:

    我正在帮助客户附加这些图像。 我将在客户的贝拉尔夫(Steve)中发布此信息

    这是以上第一个问题的延续。

    C:\Users\Steve\Desktop\cF_photes\IMG_4762.jpg  

    C:\Users\Steve\Desktop\cF_photes\Circuit_TMS_DRV.jpg  

    此致、

    Jonathan

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

    你好、Jonathan、

    我的目标是在本周结束前提供反馈。

    此致、

    Akshay

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

    好消息。 现在、我看到 DRV 板的 SDO 输出、以响应来自 TMS320板的 SPI 通信。 我添加了半周期延迟时钟相位以改善捕获窗口、更重要的是将 DRV 板的 ENBLE 设置为高电平(3p3v)。 我还看到、0h 至7h 寄存器中的默认值在 ENABLE 变为 LO 时恢复为默认值。 Yel = CSC、VIO = CLK、Blu = SDI、ADDR = 7h 且 R/W = 0、GRN = SDO。 LOCK 位是否可用于冻结值?

    Steve

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

    您好、Steve、

    我的目标是在本周结束前提供反馈。

    此致、

    Akshay

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

    我仍然有问题。

    如上所述、只要 ENABLE 为高电平(进入 DRV)、我现在就可以从 TMS320F28379D 开发板读取和写入 DRV8353RS-EVM 板。 当 ENABLE 变为 LO 时、写入的数据丢失。 我尝试通过将3h (地址) B10锁定位设置为高电平来克服恢复默认寄存器数据的问题。 该位拒绝变为高电平、数据无法锁定。

    我还有一个更令人厌烦的第二个问题。 当尝试从 TMS320F28379D (同一 DSP)读取和写入定制板上的 DRV8353SRTAT 时、我无法写入任何数据、实际上数据始终冻结在0000hex。 我已验证使能引脚是否为高电平。 DRV8353SRTAT 上的默认数据是否应为全0000s? DRV8353RSEVM 上的默认数据如下(最后11位)。 请帮助。

    '1000000000000000'
    '1000100000000000'
    '1000000000000'
    '00011011111111111111'
    '001001111111111111'
    '0010100101101101101101'
    '0011001010000011'
    '1011100000000000'

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

    您好、Steve、

    我的目标是在本周结束前提供反馈。

    此致、

    Akshay

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

    您好、Steve、

    只是想提供一些有关使能引脚的信息。

    使能引脚管理 DRV835x 系列器件的状态。 当 ENABLE 引脚为低电平时、器件进入低功耗睡眠模式。 在睡眠模式下、禁用所有栅极驱动器、禁用所有外部 MOSFET、禁用 VCP 电荷泵和 VGLS 稳压器、禁用 DVDD 稳压器、禁用检测放大器、并禁用 SPI 总线。 在睡眠模式下、所有器件寄存器将复位为其默认值。 在器件进入睡眠模式之前、必须在使能引脚上的下降沿之后经过 tSLEEP 时间。 如果将使能引脚拉至高电平、器件会自动退出睡眠模式。

    目的是进一步回顾并提供反馈。

    此致、

    Akshay

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

    当前的 MCSDK 中提供了通用电机控制实验室、该实验室可支持  具有 DRV8353Rx-EVM 的 LAUNCHXL-F280025C。 您可以在此项目中引用 SPI 配置和控制代码、这些代码可在包括  TMS320F28379D 的其他 C2000器件上实现。

    https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK

    文件夹中的示例实验项目:C:\ti\c2000\C2000Ware_MotorControl_SDK_ \solutions\universal_motorcontrol_lab\f28002x

    可以在 hal.c 中的 HAL_setupSPI()中找到 SPI 配置代码,如下所示

    void HAL_setupSPI (HAL_MTR_Handle handle)

    HAL_MTR_Obj *对象=(HAL_MTR_Obj *)句柄;

    //必须在配置 SPI 之前将其复位
    SPI_disableModule (obj->spiHandle);

    // SPI 配置。 使用500kHz SPICLK 和16位字大小、25MHz LSPCLK
    SPI_setConfig (obj->spiHandle、device_LSPCLK_FREQ、SPI_PROT_POL0PHA0、
    SPI_MODE_MASTER、400000、16);

    spi_disableLoopback (obj->spiHandle);

    SPI_setEmulationMode (obj->spiHandle、SPI_emulation_free_run);

    spi_enableFIFO (obj->spiHandle);
    SPI_setTxFifoTransmitDelay (obj->spiHandle、0x04);

    SPI_clearInterruptStatus (obj->spiHandle、SPI_INT_TXFF);

    //配置完成。 启用模块。
    spi_enableModule (obj->spiHandle);

    返回;
    }// HAL_setupSPI()函数结束

    DRV8353读取和写入函数可在此 项目的 drv8353s.c 文件中找到。

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

    我相信我已经解决了这个问题。 由于我在 TMS320的 CLK 和 DRV8252输入引脚29之间有一个冷焊点、这似乎是一个机械问题。 当我用铜垫片将其跳线时、SDO 就会变为现实。 我正在制造一个新的电路板。 这个太难返工了。 感谢大家的参与。

    Steve