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.

[参考译文] TMS320F2800157:如何修改 drv8323rs 代码以应用于 drv8323rh?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1359766/tms320f2800157-how-to-modify-the-drv8323rs-code-to-apply-to-drv8323rh

器件型号:TMS320F2800157
主题中讨论的其他器件:DRV8300BOOSTXL-DRV8323RSLAUNCHXL-F280025C、LAUNCHXL-F2800157

您好!

我需要在最终产品中使用 F280015x+DRV8300。 目前、F280015x 的官方例程仅包括 DRV8323RS 例程。 我认为我应该首先配置 F280015x+DRV8323RH 的情况。 DRV8323RS 和 DRV8323RH 代码有很大的差异、修改配置是一项关键修改、我不知道它的具体作用、您能教我如何修改 F280015x+DRV8323RS 例程、以便用于 F280015x+DRV8323RH 的配置吗?

感谢您的任何帮助!

此致、

约翰尼

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

    你好,约翰尼!

    对不起,我花时间写了一个全面的答案。  当涉及到硬件驱动器的差异时、最简单的方法是查看所驱动器的差异。

    从产品页面 https://www.ti.com/product/DRV8323R 获取 DRV8323Rx 的数据表。第8.3.1.2节 "器件接口模式"介绍了我们的两个选项。 DRV8323RS 使用 SPI、而-H 使用硬件接口。

    请参见图23和24。

    使用硬件接口时、GAIN、Idrive、模式和 VDS 信号 由硬件设置的信号、替换了 SPI 的 SCLK、SDI、SDO 和 nSCS 信号。 当然、 与 DRV 之间也根本没有 SPI 通信。

    那么、这对我们的固件意味着什么呢?

    必须禁用和/或删除到 DRV 的所有 SPI 通信(读取或写入)实例、因为这已经不存在。

    1. 使用 CCS 的 Ctrl+H C 代码搜索功能、搜索"* DRV*"

    2. 大部分情况下、这都是项目中与 DRV 相关的固件。 只要看到"read"或"write"这两个字、就可以确定是否需要将其删除。
      1. 例如、在 sys_main.c 中、会对"HAL_readDRVData (...)"进行函数调用 。 应禁用和/或删除此调用。

    3. 专门搜索"*DRVIC*"
      1. 这些都是 DRV 固件的函数调用。 只要这些通信利用 SPI 通信、就应禁用或删除 SPI 通信。

    4. 必须禁用和/或删除为 DRV 通信配置 SPI 的所有实例。
      1. 使用搜索功能搜索"*SPI*"
      2. 这是项目中所有与 SPI 配置相关的代码。  这是  两者皆可  DRV 配置和 DAC 配置。 不使用 DAC 配置!
        1. 应具体查看以下功能:
          1. HAL_setupDRVSPI (...) 将 SPI 配置为 DRV 模式。
          2. HAL_setupSPI (...) 只需要调用  单次触发模式 ,在 HAL_MTR_setParams (...)中。 可以删除 sys_main.c 中的调用。
        2. 查看其他搜索结果并确定与 DRV 和 DAC 相关的内容、通常根据命名惯例即可区分。

    5. 必须禁用和/或消除与 DRV 的 SPI 通信的所有副作用(例如、如果存在基于 SPI 的故障读取)。

    6. SPI 的 GPIO 配置设置为在 DRV 和 DAC 之间交替进行。 可以消除此问题、转而只允许 DAC 通信。

    希望这是合理的!

    此致、
    杰森·奥斯博尔恩

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

    Johnny、

    如果当前偏移参数正确、但电压偏移参数显示不正确、我的第一个本能是硬件连接可能有问题。

    1. 仔细检查从电压检测电路到 C2000的物理连接
    2.  在启动期间探测 VSENx 引脚。  他们读的是什么?
    3. 确保所有 IO 配置对物理设备都是准确的。
      1. F280015x 和 F280013x 是引脚对引脚兼容的、因此我不认为这是问题的根源。

    此致、
    杰森·奥斯博尔恩

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

    尊敬的 Jason Osborn:

    感谢你的帮助。

    1.我遵循通用电机控制实验室用户 指南进行连接。

    2.I 在启动期间检测到 VSENx 引脚。 它们都在0.7附近。

    VSENVM=0.68

    VSENA=0.71

    VSENB=0.71

    VSENC=0.71

    此致

    约翰尼

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

    Johnny、

    查看您的设置、应该移除绿色跳线- BOOSTXL-DRV8323RS J4-4和 J4-18之间的连接用于启用 SPI 控制。 对于-rh 版本、这是不必要的。

    请让我知道在没有此跳线的情况下问题是否仍然存在!

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    我删除了连接 J4-4和 J4-18、但电压偏移参数仍然大于1。我看到改进的是电流偏移、它接近2048。

    此致、

    约翰尼

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

    Johnny、

    C9/C10/C11是否为用户指南所示的正确值?

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    我根据用户指南为 C9/C10/C11连接了一个47nF 电容器。

    此致、

    约翰尼

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

    Johnny、

    • C2000上 VSENA/B/C 的 ADC 读数是多少?
    • 检查正在使用的任何 ADC 输入是否为 AIO/AGPIO 引脚、是否需要根据器件 TRM 显式配置为模拟输入。

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    我不知道从何处读取 VSENA/B/C。 我要解释 ADCDate、看看是否有。

    此致、

    约翰尼

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

    Johnny、adcData 是使用偏移计算进行计算的、因此很遗憾、调试错误的偏移计算数据会更难使用。

    将以下内容添加到"Expressions"窗口:

    • ADC X 复位寄存器 适应 y
      • 其中、"x"代表 ADC 外设(A/B/C)、而"y"代表 SOC #
      • 例如、ADCC SOC 3结果寄存器为:AdccResultsRegs。 ADCRESULT3

    这将使您能够实时监控 ADC 结果。

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    您能帮助我了解一下有什么问题吗?

    此致、

    约翰尼

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

    Johnny、

    粗体字指不同的调试步骤。

    首先、  您何时切换到使用 LAUNCHXL-F280025C? 知道您正在使用这个平台、我强烈建议您在修改后的 DRV8323RS->H 代码与内置 F28002x DRV8323RH 源代码之间进行直接的差异。 假设内置 DRV8323RH 代码按预期工作(您还应验证该代码)、那么问题的根源就在那里。

    第二、  此外、对于调试、我无法从提供的图像中辨别与每个 ADC 通道关联的 SOC #是什么。 该映射可在 hal.h 文件中的以下#define 值中找到:

    • MTR1_Vx_ADC_SOC_NUM
      • 其中"x"表示 U、V、W

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    第一个, 很抱歉我拿到的电路板不正确, LAUNCHXL-F280025C 调试目前没有问题。 就像我的标题一样、LAUNCHXL-F2800157驱动器配置有问题。

    第二、 #define 的值如下:

    此致、

    约翰尼

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

    Johnny、

    感谢您的澄清。 我看不出任何突出的来源。

    请告诉我 LAUNCHXL-F2800157上所有物理开关的状态?

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    S2为1:1、S3为0:1、S4为0、S5为0:0。

    此致、

    约翰尼

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

    这些看起来是正确的。

    我已经深入研究了这一点、如果未正确设置电机使能引脚、似乎通常无法正确计算失调电压。

    例如、查看 DRV8323RH 模式下的 F28002x 实验、使用 CTRL+H 'C/C++搜索'功能查找所有已启用的"gateEnableGPIO"实例。

    您是否遗漏了这些内容?

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    我已经比较了 F280013x+DRV8323RH 的例程、似乎什么都没有遗漏:

    in the Hai.c:

    #elif defined(BSXL8323RH_REVB)
        obj->gateModeGPIO = MTR1_GATE_MODE_GPIO;
        obj->gateGainGPIO = MTR1_GATE_GAIN_GPIO;
        obj->gateCalGPIO = MTR1_GATE_CAL_GPIO;
        obj->gateEnableGPIO = MTR1_GATE_EN_GPIO;
        // BSXL8323RH_REVB
        
        
        
    #elif defined(BSXL8323RH_REVB)
    void HAL_enableDRV(HAL_MTR_Handle handle)
    {
        HAL_MTR_Obj *obj = (HAL_MTR_Obj *)handle;
    
        // Set EN_GATE to high for enabling the DRV
        GPIO_writePin(obj->gateEnableGPIO, 1);
    
        // Set MODE to low for setting 6-PWM mode
        GPIO_writePin(obj->gateModeGPIO, 0);
    
        // disable calibrate mode
        GPIO_writePin(obj->gateCalGPIO, 0);
    
        return;
    } // HAL_setupGate() function
    // BSXL8323RH_REVB

    在 CCS 中修改 DRV 配置时、将在 Project Explorer 工程中自动生成相关文件夹。 由于 F280015x 的官方例程只具有 DRV8323RS 选项、而不具有 DRV8323RH 选项、因此我仅修改了程序代码、无法使用此文件夹中的内容。 请问这是否有影响?

    此致、

    约翰尼

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

    Johnny、

    很抱歉响应出现延迟。

    FLASH_lib_DRV8323RS_3Sc 仅用于存储 编译期间根据工程设置生成的文件。 命名方案由构建配置自动给出:

    在本例中、您可以看到激活编译配置为 Flash_lib_DRV8323RS_3Sc、因此我生成的文件夹将共享该名称。 理想情况下、您将为您的项目创建并使用一个名为 Flash_lib_DRV8323RH_3Sc 的定制构建配置。

    查看您的设置。 在您的活动编译配置中、所用的预定义符号中是否存在突出显示的值?

    如果是、请将 RS 更改为"RH"。

    此致、
    杰森·奥斯博尔恩

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

    尊敬的  Jason Osborn:

    我更改了属性中的配置名称。 编译后、生成闪存库 DRV8323RS 3Sc 文件夹、请告诉我 Flash_lib_DRV8323RS_3Sc 文件夹中的文件目前是否与8323RS 或8323RH 相关。

    此致、

    约翰尼

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

    Johnny、"Flash_lib_DRV8323RS_3Sc"文件夹中的文件与名为"Flash_lib_DRV8323RS_3Sc"的构建配置相关。 根据您的屏幕截图、您已修改构建配置以引用-rh 器件。 基于此、该文件夹应与-rh 器件相关。

    此致、
    杰森·奥斯博尔恩