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.

[参考译文] TIDM-DC-DC-BUCK:适应 F28P55x 的解决方案

Guru**** 2805225 points

Other Parts Discussed in Thread: TIDM-DC-DC-BUCK, C2000WARE, SFRA

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598967/tidm-dc-dc-buck-adapting-solution-to-f28p55x

部件号:TIDM-DC-DC-BUCK
主题中讨论的其他器件: C2000WARESFRA

我遇到的 CCS 工程中的一些未定义标识符问题。 总结一下我目前的工作情况、我正在尝试将 TIDM-DC-DC-BUCK 工程从 F28004x 迁移到 F28P55x。 我是嵌入式系统新手、通过试用和错误了解了很多。

在开始迁移时、我对 F28P55x 使用了通用工程、然后引用了 F28004x 的原始工程、复制了几乎所有内容都完全相同的工程。 此 PowerPoint pdf 文件: 20251216_TI_E2E _Prompt.pdf 中显示了此过程的详细信息。  

现在、我被困在一些未定义的标识符上:

image.png

我认为这些标识符存在问题、因为 F28P55x 的引脚名称与 F28004x 略有不同。 我不知道如何继续修复这些标识符。 值得注意的是、“CMPSS_DACREF_VDDA"在“在 F28P55x 版本的代码中似乎甚至没有一个功能。 我是否只从“buck_hal.c"中“中删除这一行? 看起来不太可靠。

下面是猜测。 当我按住 Ctrl 键点击每个标识符并一直到 C2000Ware 的最低级别的时候、我发现了 F28004x 的“pin_map_legacy.h",“,这、这似乎是值得关注的问题。 此文件的用途是什么? 这似乎只是为了我的问题。 我还认为应该进入“buck_user_settings.h"手动“手动更改引脚分配、以匹配 F28P55x 的这些标识符。 有些事情不适合我来手动更改标识符 — 它似乎不是很强大。 例如、我在重新编译工程时可能会链接或更新这些文件、因此这没有什么帮助。

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

    Zachary、

    这看起来像是在 user_settings.h 中定义了相关问题

    您可以检查在此处使用 F28P55x 中的哪些引脚并相应地更新这些定义。 首先尝试解决这些简单的修复问题、然后让我知道您面临的其他问题。

    此致、

    Sumit

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

    您好 Sumit、

    我遇到的第一个问题与解决这些定义相关的问题有关。 我能够轻松解决“EPWM"问题“问题、因为它们的标识符只略有变化。

    F28P55x 的功能中不存在“CMPSS_DACREF_VDDA"。“。 我不知道如何在不影响工程性能的情况下正确编辑显示的代码。 它在函数“BUCK_HAL_setupOverCurrentCMPTrip"中“中的“BUCK_hal.c"中“中显示为:  

      //
      //使用 VDDA 作为比较器 DAC 的基准
      //
      dacConfig = CMPSS_DACVAL_SYSCLK |
          CMPSS_DACREF_VDDA;//需要更改此值

    我希望您能提供一些关于如何更改此设置的见解。

    此外、我无法在 F28004x 技术参考手册 (TRM) 中找到“GPIO_28_SCIRXDA"和“和“GPIO_29_SCITXDA",“,因此、因此我不确定如何继续。 我在 F28004x TRM 的第 8.6 节中找到了“SCIA_RX"和“和“SCIA_TX",“,但、但我不确定它们是否是相同的。

    假设这两组引脚确实匹配、我在 F28P55x TRM 中找到了第 10.9 节中的“SCIA_RX"和“和“SCIA_TX"。“。

    请告诉我如何继续使用 VDDA 引脚和这些 SCI 引脚、谢谢!

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

    Zachary、

    您可以通过 Ctrl+H 搜索该函数的工程、您可以找到以下 P55x 的定义 CMPSS_configDAC。 您可以通过查看注释来选择选项。 您可以搜索高侧和低侧 CMPSS 的其他函数以及 CMPSS_configDACHigh 和   CMPSS_configDACLow。 您可以参考带 P55x 的 TIDA010062 CCS 工程来了解如何设置这些基准。 搜索这些函数、您将看到可以引用和复制的用例。

    关于 GPIO_28_SCIRXDA 和 GPIO_29_SCITXDA、定义了与 API 一起使用。 但是、在这种情况下、他们的引脚分配是相同的。 通常我们会尝试将其保持在 GPUI28 和 29。

    此致、

    Sumit

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

    您好 Sumit、  

    我现在已解决这些错误。 感谢您的帮助。 现在、当我构建工程时、我收到了大量新错误、我对如何继续没有好的想法。 这些错误可能与警告有关? 我将在下面粘贴错误的屏幕截图。

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

    不知道最后一个帖子。 我想我能明白。 这是因为我有两个包含源文件的文件夹、其中一个是从 04x 参考设计复制过来的、另一个是在默认情况下位于新工程中。 所以事情被分配了,分配内存等两次。

    现在我陷入了一个相对简单的错误。 我发现 55x 和 04x 的 driverlib 文件夹 (C:\ti\C2000Ware_6_00_01_00\driverlib\f28p55x\driverlib) 略有不同。 55x driverlib 文件夹不包含“can.c/.h"源“源文件。  

    我在 55x 上找到了 MCAN、我将尝试将 can.h/.c 替换为该器件、看看它是如何实现的。

    编辑:我意识到这个错误、更像是出现在“device"文件夹“文件夹中、我直接从 F28004x 参考设计复制了该文件夹。 所以我现在很清楚为什么会出现所有这些错误。 我正在学习! 我删除了“device"文件夹“文件夹、这些类型的错误(我认为是编译器错误)已经解决。

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

    现在我遇到了链接器错误。 请参阅“ “控制台输出如下:

    构建目标:“Universal Project_F28P55x_v2.out“
    调用:C2000 链接器
    “c:/ti/ccs1281/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 /ti/ccs1281/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib /Users/zachm/w_ccs_v12_workspaces/Universal -v28 -ml -mt --cla_support=cla2 -float_support=fpu32 --tmu_support=tmu1 -VCU_support=vcrc -Ooff -advice /ti/C2000Ware_6_00_01_00:performance=all /ti/ccs1281/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include /syscfg/board.obj /syscfg/device.obj /syscfg/device_cmd.obj /syscfg/c2000ware_libraries.obj /libraries/DCL/DCL_DF22_L2L3.obj /libraries/DCL/DCL_clamp_L1.obj /libraries/DCL/DCL_error.obj /libraries/sfra/sfra_gui_scicomms_driverlib.obj /libraries/CLAmath/cla2_math_library_fpu32_eabi.lib /libraries/FPUfastRTS/rts2800_fpu32_fast_supplement_eabi.lib /libraries/SFO/SFO_v8_fpu_lib_build_c28_driverlib_eabi.lib /libraries/sfra/sfra_f32_tmu_eabi.lib   

    错误#16004-D:文件“../libraries/SFO/SFO_v8_fpu_lib_build_c28_driverlib_eabi.lib “的 Tag_VCU 属性值为“1",“,不同于、不同于之前看到的值(“3")“);请组合不兼容的文件
    警告#10247-D:创建不带 SECTIONS 规范的输出段“dclfuncs"</s>“
    警告#10247-D:创建不带 SECTIONS 规范的输出段“ramfuncs"</s>“
    警告#10247-D:创建不带 SECTIONS 规范的输出段“isrcodefuncs"</s>“
    警告#10247-D:创建不带段规范的输出段“SFRA_F32_Data"</s>“
    “SYSCFG/device_cmd.cmd",“,第、第 117 行:错误#10099-D:程序将无法放入可用的存储器中、或者该段包含一个需要蹦床函数的调用点、但该调用点无法为该段生成蹦床函数。 对于段“.bss"大小“大小 0x962 PAGE 0、带对齐/分块的运行放置失败。  可用存储器范围:
      RAMLS5    大小:0x800     未使用:0x7b5     最大孔:0x7b5    
    错误#10010:链接期间遇到错误;未构建“Universal Project_F28P55x_v2.out“

    >>编译失败
    Makefile:161:目标“Universal Project_F28P55x_v2.out“的配方失败
    gmake[1]:***[Universal Project_F28P55x_v2.out] Error 1
    Makefile:157:目标“全部“的配方失败
    gmake:***【全部】错误 2.

    ****构建完成****

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

    似乎为 SFRA 和 DCL 数据分配了存储器的特定部分。 您能否参考该示例、方法是从 C2000Ware DPSDK 导入带 P55x 的 TIDA010062 示例代码并参考 lnk.cmd 文件实现该代码。 这样、您可以将 lnk.cmd 与以下部分进行比较。 您可以使用此文件复制设置。

    此致、

    Sumit

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

    我能够成功地将 TIDA010062 示例导入工作区并找到“28p55x_generic_flash_lnk.cmd"文件“文件、没问题。 我对你说的其余部分有点困惑,不过。 你说我应该比较“my lnk.cmd“。 我假设这意味着我应该在我的 F28P55x 通用工程中找到一个以“lnk.cmd"结尾“结尾的类似“.cmd"文件“文件。 但在我的项目中,我不会立即在项目根目录中看到任何这样的文件(请参见下面左侧的屏幕截图)。  

    相反、错误指向隐藏在工程目录(下面中间的屏幕截图)中的一个名为“device_cmd.cmd"的“的“.cmd"文件“文件。 我是否应该将 “28p55x_generic_flash_lnk.cmd"的“的内容复制到“device_cmd.cmd"中“中? 如果是、我会担心、因为当我编辑此文件时、它会警告我它是派生文件(位于右侧下方)。 我完全不知道这意味着什么,但它似乎向我表明,我所做的任何编辑将被其他来源覆盖。

          

    此外、在探索了一小段时间(阅读 F28003x 和 F28P55x 的迁移用户指南)后、第 4.2 节将我定向到包含许多“.cmd"文件“文件的 C2000Ware 目录(下面的屏幕截图)。 我不知道我真的在这里看什么,但我只是包括这个以防它帮助我!

    请告诉我您的想法、谢谢。

    -Zach 英里

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

    您好 Zach:

    您可以使用此处的“28p55x_generic_ram_lnk.cmd"文件“文件。 如果您使用 SFRA、则可能必须从此处的示例代码.cmd 文件分配这些段并进行保存。 我会说、首先尝试、然后根据需要进行编辑。

    如果您不使用 SFRA、则无需编辑此文件并从工程中删除这段代码。

    此致、

    Sumit

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

    您还可以参阅此工程、尤其是.cmd 文件、供您参考、查看这样是否解决了您的问题。 这是相同的 TIDM-DC-DC-BUCK 代码、但使用 P55x 器件。

    /cfs-file/__key/communityserver-discussions-components-files/908/buck_5F00_p55x.zip

    请注意、此代码未发布、只是尝试了一些方法来解决您的问题。 因此、请谨慎使用。

    此致、

    Sumit

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

    您好 Sumit、

    我尝试了两个你最近的帖子,但没有运气。 这是一个详细介绍我所采取的步骤的 pdf。 第 53 页是我展示我的工作这个“.cmd"文件“文件业务。

    e2e.ti.com/.../260116_5F00_TI_5F00_E2E_5F00_prompt.pdf

    请让我知道接下来要尝试什么、谢谢。

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

    Zach、

    问题:您是否尝试了我直接发送的 zip 文件 CCS 工程? 它是否会构建并加载到 LP 上?

    此致、

    Sumit

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

    您好 Sumit、

    我没有试过。 但是、我对这个问题提出了一种不同的办法、我将继续这样做。 我将尝试从头开始编写 Resource Explorer 中的一个简单示例、编写自己的代码。

    从低层面开始、缓慢应对更高的复杂性:从具有 ADC 和/或 ePWM 设置的 F28P55x 示例文件开始(例如:“Resource Explorer/C2000 实时微控制器/嵌入式软件/C2000Ware/English/Devices/F28P559SJ9/examples/driverlib/adc/adc_ex2_soc_epw“)、了解其内部工作原理、制作第二个互补的 PWM、对其进行测试。 制作 ADC、对其进行测试。 等...

    如果我对这种新方法有问题、或者决定回到我们一直在尝试的这种高级别方法、我将在今后再担任一个新职位。

    感谢您的帮助。

    -Zach