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.

[参考译文] LAUNCHXL-F28379D:Simulink 外部模式下的 SCI 连接

Guru**** 2609895 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/687441/launchxl-f28379d-sci-connection-in-simulink-external-mode

器件型号:LAUNCHXL-F28379D

嗨、大家好、

我想使用 Simulink 外部模式在我的目标(Launchpad F28379D)上运行的控制算法中进行在线参数调整(例如、增益块)。

此外、我希望在以正常模式运行的另一个模型(主机模型)中范围和记录数据、以便我可以将数据记录到 Matlab 的工作区中。

我还知道、与 Launchpad 的外部模式通信通过 SCI_A 通信工作。

我的问题是:是否可以通过 SCI_A 通信和在外部模式下在 Launchpad 上运行 MCU 算法  

也通过 SCI_A 通道通过 SCI 发送块向计算机发送数据、并在正常模式下运行主机模型以接收发送的数据? 如果不是、是否可以使用 SCI_B 将数据发送到主机模型?

我的 Launchpad 通过一根 USB 电缆连接到计算机的 XDS100 USB 类串行端口(COM10)。 此物理 USB 连接是否仅提供一个 SCI 连接、或者例如 SCI_A 和 SCI_B 连接、我是否可以同时在 Simulink 中用于上述目的。

非常感谢您的参与。 你们会帮我很多!

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

    Johannes、您好!

    我有一些来自我的开发团队的信息、我可以分享:

    • SCI-A 用于外部模式、因此不能用于数据传输。 由于需要 USB 仿真、外部模式不能被切换到 SCI-B、并且只能与 SCI-A 一起工作
    • SCI-B 可用于数据传输、但您需要通过 Rx/Tx 块设置自己的连接。 在主机 PC 上使用 COM POST 以目标 SCI-B 读取数据。

    我不确定如何完全设置 SCI-B、但在模型中设置 Rx/Tx 块很容易。 我怀疑 SCI-B 会在正确的引脚上传输、这需要通过 COM 端口发送回 PC、您可能需要使用某种 MATLAB 脚本来从 COM 端口读取、您将在模型中调用该脚本。

    如果我获得有关如何使 SCI-B 正常工作的任何其他建议、我将把它们添加到这个线程中。

    与往常一样、您可以 联系 MathWorks 技术支持 以获得即时帮助。 他们可能会有更多的资源和关于如何进行的想法。

    谢谢、

    -Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有关 Matlab / Simulink 的相关问题、请联系 Mathworks 技术支持。
    对于 SCI/JTAG、有人会很快回来与您联系
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、

    非常感谢您的快速回复和提供的信息。
    是否也可以通过同一 USB 连接同时使用 SCI_A (外部模式)和 SCI_B (用于向主机 PC 发送信号)?
    这意味着我将在外部模式(用于在线参数调优)下的目标上运行 MCU 模型、并且在该模型中、通过 SCI_B 连接到我的主机 PC、使用 SCI 发送 Simulink 块发送数据? 这实际上是我想要做的、但现在不工作。

    或者、您是否建议通过 SCI_A 连接(而不是 SCI_B)将数据传输到我的主机模型、并在每次使用外部模式(通过 SCI_A 连接)进行在线参数调优时在 Simulink 中注释此块? 我只需要主机模型来保存 PC 上的内部信号。

    此外、如何在开发 PC 上记录 MCU 的内部信号以进行后处理?

    最棒的

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

    我期待您提供有关 SCI/JTAG 的信息。 谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Johannes、您好!

    根据您的描述、使用 SCI_B 的需要是用于主机模型中的信号记录。 对吧? 这实际上是通过同一串行连接上的外部模式来完成的、您使用该外部模式进行参数调整。  因此、在同一连接中、我们支持这两种功能。 因此、您实际上不需要研究使用 SCI_B 在主机模型中记录数据的问题。 以下链接概述了数据记录过程:

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

    首先、感谢您付出的时间和努力。 非常感谢您的宝贵建议。
    问题实际上是、我是否可以使用默认通过 Simulink 中的 SCI_A 和相同 MCU 模型中的 SCI_B 运行的外部模式来向主机模型发送一些信号。 另外、我必须在主机模型中进行哪些配置才能在 SCI_A 和 SCI_B 之间分离、以便能够对传入信号进行范围控制?

    我已经知道 Mathworks 提供的这个示例、并且我已经与 Mathworks 讨论过这个示例。 此示例的问题是、我非常限于在外部模式下记录数据(每个文件最多20个样本)、因为这取决于我的 Launchpad F28379D 的内部存储能力。 此外、当我按照此过程操作时、我必须通过 Simulink 的外部模式控制面板将数据直接写入我的 PC 上的文件、这会导致在我的开发 PC 上仅一次测量就有大量的数据存储。 由于我只能保存每个文件20个样本、因此 Simulink 生成大约1000个 mat 文件、并在我希望每1ms 采样一次并模拟20秒时将其保存在我的 PC 上。 这不是记录数据的好方法、因为我还必须在之后读取所有文件并按顺序将数据行在一起! 您是否看到了我面临的问题? 您是否曾尝试在外部模式下或通过主机模型将内部 C2000信号记录到 Simulink 中? 也许您知道更好的方法、或者您有一个有关如何正确实现这一点的工作示例。

    这就是我现在要通过主机模型记录数据的原因。

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

    请考虑这一点、C2000支持包中提供的 SCI Tx 和 Rx 块仅与目标方一起工作。 您无法使用这些块在主机上接收数据、因为这些块从目标内部工作。 但是、我们有串行模块、这些模块应用于主机侧、为此、您可能需要使用2种模型方法。 第一个模型是将在目标上以外部模式运行的目标模型、第二个模型是在主机上以正常模式运行的主机模型。 您需要一个外部 FTDI 芯片 USB 转串行转换器、以便从目标连接 SCI_B Rx 和 Tx 线路、并在主机上为相同的线路创建一个 COM 端口。 在主机模式中、您可以为该 COM 端口配置串行块(特定于主机的块)、以接收目标从目标 SCI_B 端口发送的数据。
    请参阅示例中相同的示例和型号 C2000_host_read_12M.slx。
    www.mathworks.com/.../texasinstrumentsc2000-ex78245720-dc-dc-buck-converter

    您还可以考虑通过为目标中的堆分配更多内存来增加持续时间。 下面的链接给出了相同的想法。

    in.mathworks.com/.../388466-how-to-resolve-error-not-enough-memory-on-the-target-to-process-the-packet-while-working-on-ti-c20