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.

[参考译文] TMS570LS1227:初始化 UART

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/571341/tms570ls1227-initialising-uart

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

您好!

我正在尝试从 TMS570LS12x HDK 开始 UART 通信、以便将数据发送到计算机终端。 我已按照 SCI2教程(www.youtube.com/watch  )进行操作。 但是、我正在尝试在现有应用中实现 UART 通信。 在创建新项目时、通过 HALCoGen 生成代码很好、但在没有 HALCoGen 的情况下、如何继续生成代码时遇到了问题...  

我已经尝试过 www.ti.com/.../spna124a.pdf 上的代码、CCS 无法识别 SciREG1或 SciReg1命令。

我要做的是通过计算机发送我在现有代码中生成的一些数据。 UART。 我认为我不需要 UART 中断、因为它是由事件驱动的、我不会向 TMS570发送任何信息。

您是否有任何有关如何继续使用此功能的指南? 我对 TI MCU 系列和 CCS 非常陌生。

此致
Markus  

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

    如果您尝试在现有代码中实现此目的、则现有代码是在哪里生成的? 它是在 HalCoGen 之外生成的、还是由 Halcogen 制造的、由于兼容性问题或由于不能进行定制而无法重新引入。

    现有代码是否已经为其他 SCI 端口准备了 SCI 驱动程序? 如果是这样、由于可能的冲突、这使得它更加复杂、但是你仍然可以使用 HalCoGen 来生成代码。 因此、如果您已经完成了基于 SCI2教程创建驱动程序的练习、您只需将 SCI 驱动程序从 Halcogen 复制到现有项目中、并将用于 init 的相同函数调用添加到 main 中。 之后、只需在需要的位置添加调用即可传输数据函数。 正确的做法是、您不需要添加任何中断。 在您需要的时间进行简单传输应该可以。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、

    现有代码来自为 TMS570LS31提供的 FlexRay 示例代码... 节点 A 和节点 B 运行的一个示例。我必须通过 UART 发送 FlexRay 消息。 processors.wiki.ti.com/.../FlexRay_Communication_CCSv5.zip

    HalCoGen 不支持 FlexRay 驱动程序、因此我假设这不是在 HalCoGen 中生成的。

    导入 SCI 驱动程序时。 include 文件夹中的所有.h 文件是这样吗? 因为 sci.h 包含 reg_sci.h,它包含 reg_gio.h,它... 等等。

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

    我已经看过这个项目、你应该能够通过打开文件 LS31_FlexRay_test1.hcg 将它导入 HalCoGen。 Halcogen 将打开项目、并且您将能够通过 Halcogen 更新 SCI 外设的配置、而不会干扰"用户代码"部分或 FlexRay 相关驱动程序文件中的自定义内容。 由于项目的运行在其中一个部分的 main 中并且 FlexRay 驱动程序位于它们自己的文件中、因此 Halcogen 不应覆盖对您重要的任何内容。 打开项目后、您将按照配置 SCI 示例时所执行的步骤设置 SCI/UART。

    与往常一样、在尝试备份您的工作 FlexRay 代码之前、如果发生故障、请务必备份此代码;但原则上、此方法不应出现任何问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、

    因此、我现在尝试的是:

    1) 1)在 CCS/新项目中制作了一个代码副本以测试 SCI。

    2)在 HalCoGen 中:打开-项目-(项目副本)- LS31x_Flexray test1.hcg。 然后、我按照视频的步骤进行了操作。 (我仅在视频中启用了 SCI2驱动程序)、然后生成代码。

    3) 3)然后、我启动 CCS 并尝试为工程编译 Debug。 发生26个错误,主要是#1965 "Cant open source file ".h"和"gmake:**]错误1"

    4) 4)然后、我转到工程的属性- include 选项并包含/include 文件夹。 然后、我遇到83个错误:

    #10010链接期间遇到错误;"FR_NODEA_SCI.OUT"未构建 FR_NODEA_SCI C/C++问题
    #10264 FLASH0存储器范围与 SYS_LINK_cmd /FR_NODEA_SCI/源代码行58 C/C++问题重叠

    还有很多其他的…  

    我还尝试将/source 文件夹包含在工程中、但这并没有什么不同。 你在这里有什么建议吗?

    此致
    Markus

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

    结果听起来很令人失望。 我将尝试其他一些方法、并在找到工作的方法时发布该项目。 这可能会带我在下周二或周三进行讲解。 完成。 当我有分享结果时、我会与您分享。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、

    有点失望,是的:)谢谢,这将会很有帮助!  

    期待收到您的回复。

    此致

    Markus

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

    Markus、您好!

    很抱歉耽误你的时间。

    我已附加一个节点 A 项目、其中集成了 SCI 驱动程序。 还有一些警告、但我认为这将为您提供一个良好的起点示例。 主函数中的 SCI 代码处于 while 环路中、因为我没有 FlexRay 设置。 基本上、我使用 HalCoGen 配置了一个 SCI 配置(请见帮助菜单下 halcogen 示例中的示例)、然后将 SCI 相关文件复制到节点 A 项目中。 由于 Halcogen 多年来的更新已经迁移到对全局定义进行分区的另一种方法、我不得不做一些仔细的更新来引入较大 HalCoGen 项目中的一些#defines、但我只能用一些警告进行编译。 尝试一下、看看您是否可以获得所需的输出。

    e2e.ti.com/.../6011.Antares_5F00_FlexRay_5F00_CCSv5_5F00_example_5F00_code_5F00_nodeA.zip

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

    你好,Chuck!

    我一直在处理其他一些问题,很抱歉我迟到了!

    我运行了该项目,UART 通信工作正常,并打印到终端,谢谢:)

    当我移除 while 循环以便为每个 transmit 检查节点_a 进行打印时、我没有使项目运行、实际上、即使没有 UART 打印、我也没有使您的项目使用 FlexRay 运行、这是否是一些已更改的端口设置? 该项目能够编译和调试、但 MCU 一直等待来自 FlexRay 控制器的中断。

    为了了解这个项目中的 SCI 设置、我将尝试在这里进行一些更多的调试。

    此致
    Markus

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

    如果删除我添加的 UART 代码、FlexRay 通信是否会再次开始工作? 还是从不真正开始工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、

    谢谢、

    我已从您的代码中删除以下内容:

    // while (1) /*持续失动作 *
    //{
    // sciDisplayText (UART、&text1[0]、TISIZEE1);//发送文本代码1 *
    // sciDisplayText (UART、&text2[0]、TIZE2);//发送文本代码2 *
    // sciDisplayText (UART、&text3[0]、TMIZE3);//发送文本代码3 *
    //等待(200);
    //};

    当在 TMS570LS1227上运行代码时、它在这里被存根:

    在 Flexray.c 中
    while (((Fray_PST->SIR_UN.SIR_UL & 0x4)= 0x0);//等待 CYC 中断标志。

    这与我在仅连接到网络的一个节点开始通信时出现的问题相同。 原始代码时、它会被关闭。

    我还尝试在激活以下所有组合的情况下运行它:
    gioInit();
    sciInit();

    但是、通信将不会开始运行您的代码。

    在原始代码中、FlexRay 通信正常运行。 我还在使用分析仪来验证这一点。
    我通过此测试在节点 B 上运行原始代码。

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

    我只需添加对 sci init 函数和 sci send 数据函数的调用。 我没有对您的原始代码进行任何更改。 可能是与添加的头文件相关的问题、导致某些类型定义损坏。 您能否恢复到旧项目并尝试实施新文件和代码段 b 段行以隔离可能引入的任何错误?