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.

[参考译文] TMS320F28069:比较器块和斜率补偿实现的示例代码

Guru**** 2542340 points
Other Parts Discussed in Thread: TIDM-02000

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1159182/tms320f28069-example-code-for-comparator-block-and-slope-compensation-implemetation

器件型号:TMS320F28069
主题中讨论的其他器件:TIDM-02000

大家好

我想知道是否有任何资源可供参考、以帮助实现峰值电流模式控制。  
我发现只有两个资源、完全不可读。 其中一个是毫无 理由地写在 I assembly 中的。  
另一个也用直接访问寄存器的行写入、这些行也不可读。 一次写入整个寄存器、无法了解如何配置斜率补偿和比较器块  
 其中之一是 TIDM-02000。  
请参阅以下用于比较器配置的代码片段。  

    ASSERT(CMPSS_isBaseValid(base));

    //
    // Write the high comparator configuration to the appropriate register.
    //
    EALLOW;

    HWREGH(base + CMPSS_O_COMPCTL) =
        (HWREGH(base + CMPSS_O_COMPCTL) & ~CMPSS_HICMP_CTL_M) | config;

    EDIS;
}

这一点完全不可读。 当 TI 为每个注册表访问定义了一个完美的注册表结构时、他们为什么使用此原始数据访问。

您能不能建议我如何为这个比较器块和斜率补偿硬件找到一个可读代码。

此开发示例未使用单个注册表结构。
开发任何人都无法读取的代码的含义是什么、尤其是在参考设计方面。  
为什么 TI 工程师不再像过去那样使用方便的注册表外设结构。  

此致
Damith

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

    尊敬的 Damith:

    了解它与基于位字段的原始解决方案略有不同。 我们在解决方案文件和 driverlib 文件中添加了注释、以帮助提高可读性。  

    您提到的代码实际上位于 driverlib 库(cmpss.h)中、这就是 TI 现在用于所有新参考设计(包括 TIDM-02000)的方式。 以下 doc 包含 driverlib vs bit 字段的介绍(假设您正在申请)。  希望这有助于回答您的部分问题。

    https://software-dl.ti.com/C2000/docs/software_guide/_static/pdf/C2000_Software_Guide.pdf

    如果 您想使用位字段代码、我们仍然需要对其提供软件支持。

    如果您有任何其他意见或问题、请告知我们。

    此致、

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

    尊敬的 Chen

    非常感谢您提到的参考文献。 这很有帮助。  
    很抱歉、但我无法理解编写整个注册表是多么容易、当我们想从技术指南中找到特定的位说明时会遇到问题。 因为在位字段样式中、我们可以轻松参考技术指南并调试正确配置硬件时遗漏的内容。 但在这种所谓的更高级别模式中、很难找到哪个位是错误的、因为该特定注册表的所有配置都包含在一个字节中。  
    在码采用 Arduino 样式的情况下、以位字段样式提供技术指南的意义是什么。
    当然、这将简化入门级编程、例如在 Arduino 中照明 LED、但仅此而已。  
    在高级原型设计方面、这将在技术 Gulde 和代码之间产生大量不必要的问题。  
    例如、如果我要为电源转换器创建复杂的 PWM 波形、在位域模式下非常容易、因为我可以轻松地操纵 ePWM 模块的各个位来获取我的 PWM。 但这种"较高级别"使得很难理解每一位的功能。 这种位域样式 是使 TI 参考设计易于阅读并为新器件提供快速学习曲线的主要原因、但 似乎不再如此。  
    参考设计 已成为即插即用项目。 不容易调整解决方案。  

    此致
    Damith

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

    尊敬的 Damith:

    [引用 userid="358431" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1159182/tms320f28069-example-code-for-comparator-block-and-slope-compensation-implemetation/4362657 #4362657)]我无法理解编写整个注册表是如何更容易的,当我们想从技术指南中找到特定的位说明时会遇到问题。 因为在位字段样式中、我们可以轻松参考技术指南并调试正确配置硬件时遗漏的内容。 但在这种所谓的更高级别模式中、很难找到哪个位是错误的、因为该特定注册表的所有配置都包含在一个字节中。

    我明白你的观点。 我实际上已经考虑了这一点、并在 TRM 中添加了查找表。 例如下面、您可以轻松找到与所需寄存器相关的函数。 由于函数为使用的参数(易于读取)提供了选项、因此您不必考虑有时确切的位。 请务必了解、这与您过去的做法不同。  

    www.ti.com/.../sprui33e.pdf

    第1658页:12.15.4

    确实、对于对寄存器的每个位都有很强的了解的人来说、这并不是那么简单、因为他们可以直接更改所需的位。  

    此致、

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

    你(们)好

    感谢您的解释。
    您能告诉我下表为我们提供了哪些信息、adc.h 文件中不包括这些函数。?
    该表如何使查找哪些函数设置哪些位更容易。 我可以看到、本指南还添加了位字段说明。  

    谢谢你