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-F2800137:LAUNCHXL-F2800137和 DRV8353RS-EVM 之间的 SPI

Guru**** 2540720 points
Other Parts Discussed in Thread: LAUNCHXL-F2800137, DRV8353RS-EVM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1270449/launchxl-f2800137-spi-between-launchxl-f2800137-and-drv8353rs-evm

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

尊敬的所有人:

我将使用 LAUNCHXL-F2800137和 DRV8353RS-EVM 进行一些测试。

使用了 Universal _motorcontrol_lab、即 SDK 5。

控制板的设置在 LAUNCHXL-F280025上复制(开关、用于在控制和电源之间断开连接的引脚等)。

DAC128未被使用(预先定义的符号 DAC128S_ENABLE_N)。

我的问题是我无法更改 DRV8353RS 的增益、即使我在软件中更改配置、也会应用默认值(20)。

如果执行读取命令、则所有数据都设置为逻辑位1。

 在过去使用  LAUNCHXL-F280025时、它具有功能。 您能否告诉我是否需要更改硬件设置?

您是否还能确认 DAC128评估板的功能是否正常、因为如果我回答正确、则会共享相同的 SPI。

此致。

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

    我可以确认、使用 LAUNCHXL-F280025时使用的是相同的 DRV8353RS-EVM 板、因此不包括电源板上的任何硬件问题。

    此致。

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

    尊敬的 Manu:

    我认为用于  LAUNCHXL-F2800137和 DRV8353RS-EVM 的 SPI_STE 引脚略有不同。 我认为您需要 将 J2-12连接到 J2-13、而不是 像 F28002x 器件那样将 J2-12连接到 J2-19。 您可以通过在软件中检查 SPI 相关的 GPIO 配置进行确认。

    我们计划更新用户指南、以便在将来对此进行说明。

    此致!

    凯文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为用于  LAUNCHXL-F2800137和 DRV8353RS-EVM 的 SPI_STE 引脚略有不同。 我认为您需要 将 J2-12连接到 J2-13、而不是 像 F28002x 器件那样将 J2-12连接到 J2-19。 您可以通过检查软件中与 SPI 相关的 GPIO 配置进行确认。

    你是对的。

    现在可以正常写入 DRV8353RS。 阅读会产生奇怪的结果、似乎功能不完全正常、但  LAUNCHXL-F280025可能是相同的。

    此致。

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

    尊敬的 Manu:

     当尝试读取时、您会看到什么行为? 如果有时间、您可以确定 SPI 信号的范围并进一步对其进行调试。

    我最近还没有使用 DRV8353RS 进行测试、但过去从其他 DRV (如8316)读取数据是可以的。

    此致!

    凯文

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

    您好!

    从我可以看到的情况来看、 LAUNCHXL-F280025和 LAUNCHXL-F2800137 的行为是相同的:

    写入 DRV 似乎可以、但似乎在启动时没有自动写入、需要执行手动写入。

    -如果我执行2次连续读取、则 CSA 控制寄存器的所有位在第二次读取时读回0 (我没有检查其他寄存器)。

    此致。

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

    尊敬的 Manu:

    -向 DRV 写入似乎没问题,但似乎启动时没有自动写入,需要执行手动写入。

    我曾认为需要根据某些#define (至少为 CSA 增益)初始写入来配置寄存器、但我需要重新检查代码。

    -如果我连续执行2次读取,CSA 控制寄存器的所有位在第二次读取时读回0 (我没有检查其他寄存器)。

    但是、第一次读数正确吗? 我不知道为什么会出现这种情况、除非寄存器以某种方式写入0。

    此致!

    凯文

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

    尊敬的 Manu:

    很抱歉我的延迟。

    我检查了代码、确实看到 hal.c 文件中 HAL_MTR_setParams ()函数中有一个 DRV8353RS 寄存器写入/初始化。

        // initialize the DRV8353RS interface
        HAL_setupDRVSPI(handle, &drvicVars_M1);
    
        drvicVars_M1.ctrlReg03.bit.IDRIVEP_HS = DRV8353_ISOUR_HS_0P820_A;
        drvicVars_M1.ctrlReg03.bit.IDRIVEN_HS = DRV8353_ISINK_HS_1P640_A;
    
        drvicVars_M1.ctrlReg04.bit.IDRIVEP_LS = DRV8353_ISOUR_LS_0P820_A;
        drvicVars_M1.ctrlReg04.bit.IDRIVEN_LS = DRV8353_ISINK_LS_1P640_A;
    
        drvicVars_M1.ctrlReg05.bit.VDS_LVL = DRV8353_VDS_LEVEL_1P500_V;
        drvicVars_M1.ctrlReg05.bit.OCP_MODE = DRV8353_LATCHED_SHUTDOWN;
        drvicVars_M1.ctrlReg05.bit.DEAD_TIME = DRV8353_DEADTIME_100_NS;
        drvicVars_M1.ctrlReg06.bit.CSA_GAIN = DRV8353_Gain_10VpV;
    
        drvicVars_M1.ctrlReg06.bit.LS_REF = false;
        drvicVars_M1.ctrlReg06.bit.VREF_DIV = true;
        drvicVars_M1.ctrlReg06.bit.CSA_FET = false;
    
        // write DRV8353RS control registers
        drvicVars_M1.writeCmd = 1;
        HAL_writeDRVData(handle, &drvicVars_M1);

    此致!

    凯文