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.

[参考译文] CCS/TMDSDOCK28335:实现 DF22控制器

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/708580/ccs-tmdsdock28335-implementing-df22-controller

器件型号:TMDSDOCK28335
主题中讨论的其他器件:C2000WARETMS320F28335controlSUITE

工具/软件:Code Composer Studio

主席先生,

我正在为升压转换器的闭环应用实施 DF22控制器。 我在 z 域中有传递函数(即系数 a0、A1、A2、B1、B1、B1、 B2)。 我 已经设置了默认变量。 现在、我尝试分配系数的值、但在保存项目时发现错误。 如何编写分配 代码?

如果 可能、请建议我使用任何示例代码来实现它。

是否需要使用预计算项? 因为我在线路中也会遇到错误  

VK = DCL_runDF22p (&arm2、EK、UK);

我已将 DCL 头文件和.asm 文件包含在项目中。

请帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在、我已经为变量分配了值、其格式如下所示
    arm2.b0 = 0.0xxx;
    等等。
    现在、我了解到 DF22中的预计算项是无效项、因此无需返回任何内容。

    现在、我的代码正在成功运行、但如何确认我的控制器工作正常。
    请帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Soumya、

    很高兴知道您已经解决了先前的问题。 我可以从函数名称中得知您使用的是 DCL 的 v1.0。 这没有什么问题、但您可能希望考虑使用最新的 v3.0、您可以在 C2000Ware 中找到它。 该版本包含一些可能有所帮助的内容:

    -有一个 DF22示例项目,它通过控制器流式传输一系列测试数据。

    -有一个 Simulink Blockset,它包含一个功能精确的 DF22模型。 如果您想使用自己的设置在控制环路中模拟 DF22、还可以将 PID 控制系统的 Simulink 模型用作起点。

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Richard:
    感谢您的建议。
    我下载并安装了您提供的链接、但它仍然是 DCL 的 v1.0。 您能否为我提供包含 DCL v3.0的文件或直接向我发送 DCL v3.0?
    或者为我提供任何工作示例链接。
    此致、
    Soumya
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我找到了 DCL v3.0文件夹、但没有列出28335的示例。 我正在使用 TMS320F28335实验板套件。
    而且、我是通过编码而不是在 Simulink 中执行它。 因此、示例代码将更好地帮助我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Soumya、

    正确:为 F28069准备了大部分 DCL 示例。  实际上、控制器函数并不关心它们在哪个器件上运行、因此您可以按照与器件完全相同的方式声明和调用它们。

    您的最后一个问题是验证您选择的控制器系数、这就是我建议使用 Simulink 模型的原因。  块集未配置为支持自动代码生成。

    此致、

    Richard  

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

    尊敬的 Richard:

    感谢您的建议。

    现在、我已经添加了文件选项并添加了 DF22控制器所需的文件。 但在构建项目时收到错误消息。

    请查看随附的屏幕截图。

    其次、如何检查补偿器是否工作正常?

    请帮帮我。 我被困在这里。

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

    Soumya、

    您能否发布错误消息、以便我可以看到未找到的内容?  谢谢。

    此致、

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主席先生,
    请在我之前附加的屏幕截图中找到错误消息。
    当我将文件 DCL_DF22_C1和 DCL_DF22_C2C3添加到项目中并保存了上述错误时、出现了。 该错误类似于"[E0004]绝对、定义明确"。
    其次、我尚未从工程中删除1.0版的 include 和源文件。 我应该删除它吗? 因为我在使用 v1.0时没有错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主席先生,我已制订了一项新的计划。 此外、每当我从 DCL v3.0添加文件(DCL_DF22_C1、DCL_DF22_C2C3)时、它都会自动显示错误。 屏幕截图还附带了带有说明的错误消息、并突出显示了相应的行。

    DCL v3.0的源文件是否存在任何问题?

    添加 DCL_DF22_C1文件时、

    添加 DCL_DF22_C2_C3文件时、

    主席先生,请帮助我。

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

    我认为这些错误是由错误的头文件引起的。 v1和 v3之间存在一些结构和函数命名更改、因此您需要在项目中包含最新的头文件:"DCLF32.h"和"DCL.h"、并删除旧头文件。 源文件没有问题。

    我建议仔细阅读用户指南中的第2章、以确保没有遗漏任何内容。

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主席先生,
    我已删除所有旧头文件、并将头文件包含在目录"C:\ti\c2000Ware_1_00_05_00\libraries\control\DCL\c28\include"中。
    现在、我必须将源文件 DCL_DF22_C1和 DCL_DF22_C2C3添加到我的项目中。 有两种方法可以实现这一目的
    1) 1)浏览属性中的 Include 选项、并添加"C:\ti\c2000Ware_1_00_05_00\libraries\control\DCL\c28\source "。
    2)直接使用中的"添加文件"选项右键单击项目名称并选择我需要的特定文件(如 DCL_DF22_C1和 DCL_DF22_C2C3)
    当我执行第一个时、没有错误、但在第二个时、同样的错误消息也会出现。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Soumya、

    有趣。 很抱歉您遇到了这个问题。

    第二种方法适用于源文件。 现在发生的情况是无法识别.if 指令中的__TI_EABI。 源文件已损坏或工具版本不支持该文件。 您能否告诉我您的编译器版本?

    要找到此问题、请在 CCS 中选择"Help - About Code Composer Studio"、然后单击"Installation Details"按钮。 查找 C2800编译器工具以查找版本号。

    此外、您能否尝试在最新的 DCL 中打开并运行 DF22示例、并让我知道是否进行了编译? 谢谢。

    此致、

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

    尊敬的先生:

    感谢您对此问题的善意关注。

    我使用的是6.4.6版的 C2800编译器工具。  

    附加屏幕截图以进行确认

    关于运行 DF22示例、我只需创建一个新项目并添加必要的文件、包括 DCL v3.0、然后就必须运行该示例

    将2806x 修改为2833x 或您所说的其他内容、您会说什么呢?

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

    要运行 DF22示例、只需将其导入 CCS:"project -> Import CCS Projects..."、然后浏览
    C:\ti\c2000Ware_1_00_05_00\libraries\control\DCL\c28\examples\F28069_DF22

    它应在不进行修改的情况下构建和运行。 请告诉我。

    此致、

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

    主席先生,

    我刚刚从 DCL v3.0导入了示例 F28069_DF22。 并发现这些错误。 随函附上屏幕截图。  导入项目后出现错误、我还没有进行相同的调试。  

    当我使用 TMSDOCK28335实验板套件时、如果我对项目进行任何更改或修改、

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

    谢谢。 我认为这与您使用的工具版本有关。 我会回来的。

    同时、如果您需要使用代码、您应该能够通过注释掉出现错误的行及其后面的两行来继续操作。 在汇编中、您可以通过在行的开头放置一个";"字符来注释出一行、正如文件顶部的注释字段中所做的那样。 您必须在添加的所有 DCL 汇编文件中执行此操作。

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    早上好、先生、
    由于我使用的是 TMSDOCK28335实验板套件、并且在导入示例 DF22项目时、我遇到了很多错误。
    我已经开始构建一个新项目来运行 DF22的示例文件、因此请告诉我应该包含哪些文件并添加哪些文件来在器件中运行示例代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Soumya、

    您是否说您刚刚 打开了项目并生成了项目并出错了?  或者您是否修改了代码或项目设置?  您遇到了什么错误?

    我可以确认您之前看到的[E0004]和[E0300]错误是由您使用的工具版本引起的、并且按照我所描述的那样修改汇编代码将会绕过它。  这样、您就可以使用 DCLv3编译自己的项目。  请告诉我。

    此致、

    Richard

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

    尊敬的先生:

    我刚刚将示例文件 F28069_DF22 (从 C:\ti\c2000Ware_1_00_05_00\libraries\control\DCL\c28\examples\F28069_DF22)导入到 CCS。 出现以下错误。  随附的屏幕截图显示了错误详细信息。 我没有修改任何内容。

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

    嗯、我可以看到头文件已更改。 我只是想构建原始项目、以了解代码还是工具是问题所在。

    无论如何、问题肯定是工具版本。 修改.asm 文件后、这些问题就会消失。

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的先生:
    我应该从 C2000ware 中获取所有头文件(include 文件夹)和源文件、还是应该照常从 C2000ware 中获取 DCL (头文件和源文件)以及控制套件中获取其余文件?
    此致、
    Soumya。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主席先生,
    感谢您建议在.asm 文件中注释掉内容。
    现在工作正常。
    但是、当我调试项目时、错误如所示
    #include "F2833x_Device.h"行。
    我再次对这些行进行注释
    (#include "F2833x_Device.h"
    #include "F2833x_examples.h"
    #include "F2833x_GlobalPrototypes.h")、现在我在中遇到错误
    #include 行,位于 DCLF32.h 文件中。
    请帮助。
    此致、

    Soumya。

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

    很抱歉您遇到了这个问题。 您的计算机上似乎没有该文件。

    从先前的帖子中、我可以看到您指定了 CG 工具目录、因此我怀疑它可能是您使用的工具版本。 不过、这很奇怪。 您能否在机器的以下目录中搜索以查看"complex.h"文件是否实际存在? 从您发布的早期屏幕截图中、您应该看到:
    C:\ti\ccsv6\tools\compiler\ti-cgt-C2000_6.4.6\include

    谢谢。

    此致、

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

    早上好、先生、

    感谢你的答复。

    我搜索了您告诉过的目录、我在那里找不到文件 complex.h。 附带屏幕截图。

    但我在以下目录中找到了文件 complex.h

    C:\ti\ccsv6\tools\compiler\ti-cgt-C6000_8.1.0\include

    C:\ti\ccsv6\tools\compiler\c6000_7.4.14\include

    C:\ti\ccsv6\tools\compiler\ti-cgt-C6000_8.1.0\include

    和 SIR #include "F2833x_Device.h"中的错误是什么?

    急切地等待您的回复。

    此致、

    Soumya。

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

    Soumya、

    我认为、升级到更新版本的工具没有可行的替代方案。 我们需要复杂的支持(最好是 EABI 支持)才能使用 DCLv3。 您是否能够升级到最新的 CCS?

    此致、

    Richard

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

    尊敬的先生:

    我已经升级到 CCS v.v.v.v.v.v.v.v.v.v.v.v.

    我需要有关添加头文件(包括)和源文件的说明。 这些文件

    C:\ti\c2000Ware_1_00_05_00\device_support\f2833x 或 C:\ti\controlSUITE\device_support\f2833x\v142。

    到目前为止、我已经从 C:\ti\c2000\C2000Ware_1_00_05_00\device_support\f2833x 中添加了这些文件(头文件包括和源文件)。 此外、由于行中的错误、我已注释掉了这些文件。  

    现在、main.c 文件中没有任何错误。 但我在调试它时遇到错误。 随附屏幕截图以了解错误详细信息。  

    #include "F2833x_Device.h"
    #include "F2833x_examples.h"
    #include "F2833x_GlobalPrototypes.h"

    等待您的建议。

    此致、

    Soumya。

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

    Soumya、

    很好。  感谢您更新 CCS。

    对于该器件、它可能不会产生任何影响、但总的来说、我建议始终从 C2000Ware 中获取内容、而不是从 controlSUITE 中获取内容。  后者不再进行更新、而您将始终获得 C2000Ware 中的最新材料。   

    您看到的错误是因为在两个不同的源文件中定义了相同的符号。  这是因为您在同一项目中包含了"DefaultIsr"和 SWPrioritedDefaultIsr"源文件。  它们执行类似的操作、但后者允许用户在软件中对中断进行修剪。  如果您不这样做、请删除文件名中带有"SWPriorited"的文件、这些错误将消失。  如果您打开软件优先中断示例项目、则会看到 DefaultIsr.c 文件不在该文件中。

    此致、

    Richard

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

    尊敬的先生:

    非常感谢您的建议。 大多数误差现已消除。 但至今仍然很少。 附加屏幕截图以了解错误的详细信息。

    等待您的建议。

    此致、

    Soumya。

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

    存在未解析的符号错误、因为您需要将源文件"DCL_CLAMP C1.asm"添加到项目中。

    可以通过在链接器命令文件中指定要链接 DCL 函数的位置来避免该错误。 例如、您可以执行以下操作:

    dclfuncs:>RAML0,page = 0

    此致、

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

    主席先生,非常感谢。

    项目现在已成功运行。

    尽管我没有遵循建议#2并进行了试穿、但所有错误都已消除。

    但我正在得到一个警告,这似乎是严重的。

     InitCpuTimer()无法访问该语句;

    屏幕截图随附于此附件。

    还有一件事、我如何检查我的补偿器工作是否正常?

    等待您的指导。

    此致、

    Soumya。

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

    好的、很高兴听到这个消息。

    剩余的问题在代码中、而不是在库中。 “不可达的声明”警告告诉您程序执行永远不会达到该线。 我可以在屏幕快照中看到第219行有一个闭合支架-这是不是一个无限循环了吗?

    SECTIONS 警告是因为代码中包含#pragma、用于指定链接器命令文件中未引用的存储器区域的名称。 我猜您将这些行从 DF22示例代码复制粘贴到 F28335示例中、但没有修改链接器文件。 DF22示例设置了四个缓冲器、用于通过控制器流式传输数据、以验证其是否正常工作。 如果您查看 DF22示例的链接器命令文件、您将看到:

    pDataLogSection:>RAML5,page = 1align(2)
    qDataLogSection:>RAML6,page = 1align(2)
    rDataLogSection:>RAML7,page = 1align(2)
    sDataLogSection:>RAML8,page = 1align(2)

    此外、ramfuncs 段的设置如下所示:

    ramfuncs:>RAML3,page = 0
    load_start (_RamfuncsLoadStart)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    run_size (_RamfuncsRUNSIZE)

    如果您要执行此操作、则需要更改块名称以匹配 F28335上的存储器映射。

    关于如何检查补偿器是否正常工作、您如何选择这些系数?

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的先生:
    关于补偿器的系数、我已经计算了它。
    关于该程序、我从 DF222示例中粘贴了这些行。
    我还向.cmd 文件添加了这些行、您建议这么做。
    但是、警告消息仍然显示为"#10247-D null:创建不带 SECTIONS 规范的输出段"PTdataLogSection"、与 QdataLogSection、RdataLogSection、SdataLogSection 类似。
    为此、我到底需要做什么?
    等待您的指导。

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

    这很可能是因为您对段名的拼写与示例不同。 请注意上下两种情况:"PdataLogSection"与"pDataLogSection"不同。 名称必须完全匹配。 DF22示例工作正常、因此如果您遇到问题、请返回并进行比较。

    关于系数验证、请打开单独的帖子、因为这是一个不同的问题、并且此主题太长。 我会尽力帮助您、但我需要知道您要达到的规格以及您是如何进行计算的。

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主席先生,感谢你在解决这一问题方面一贯和及时的支持。
    正如您所说的、我已经创建了另一个线程、并等待您的解决方案结束
    非常感谢。

    此致、
    Soumya。
x 出现错误。请重试或与管理员联系。