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.

[参考译文] TMS320F280049C:C2000上实时调试的采样率

Guru**** 2468460 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE, LAUNCHXL-F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1476412/tms320f280049c-sampling-rate-of-real-time-debugging-on-c2000

器件型号:TMS320F280049C
主题中讨论的其他器件:SysConfigC2000WARELAUNCHXL-F280049C

工具与软件:

您好!

我目前使用的是 C2000 (F280049C)、想询问其实时调试功能的采样率功能。

具体而言、我想了解使用基于 JTAG 的调试工具(例如 XDS110、XDS200和 XDS560v2)进行实时监控和调试时可实现的最大采样率。
您能否提供以下方面的详细信息:

  1. Code Composer Studio (CCS)中实时变量监控的最大采样率。
  2. 使用不同调试器(例如 XDS110、XDS200、XDS560v2)时、基于 JTAG 的实时调试之间的采样率差异。

该问题的背景是、借助其他公司的 MCU、可以使用 J-Link 实现几 MHz 的实时调试。 由于我们的应用需要对变量进行高速监控调试、因此可以在 C2000中实现此函数非常重要。

谢谢!

Conor

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

    尊敬的 Conor:

    Code Composer Studio (CCS)中实时变量监控的最大采样率。

    视图的默认刷新率为500 ms。 最大数据速率被 SW 限制为100ms、但这仅发生在理想条件下(快速调试探针、轻量级 PC 负载等)。 有关更多详细信息、请参阅此图形工具指南。

    [报价 userid="465179" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1476412/tms320f280049c-sampling-rate-of-real-time-debugging-on-c2000 "]使用不同调试器(例如 XDS110、XDS200、XDS560v2)时基于 JTAG 的实时调试之间采样率的性能差异。

    此页面 可以帮助您提供一些有关仿真器速度的具体数字、特别是在 F280049C 上进行的测试用例。

    大多数/所有这些指标关注的是代码下载速度以及单步执行。 我认为阶跃数与实时性能有一定相关性。

    此致!

    Matt

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

    尊敬的 Matt:

    实时调试功能只能以10Hz 的最大速率采集数据、因此不适合在 KHz 或 MHz 范围内进行数据收集。

    我们目前正在研究使用 C2000的高速数据记录方法。

    您有什么想法或建议吗?

    谢谢!

    Conor

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

    尊敬的 Conor:

    有几个选项可供选择:

    • 调试服务器脚本编写(DSS): http://software-dl.ti.com/ccs/esd/documents/ccs_automated-testing.html  
    • 使用 SysConfig 中的数据传输模块(目前为 C2000Ware 5.03的 Beta 版、或更新版)通过通信外设(SCI、SPI、UART、FSI 或 USB)对数据进行采样和记录。 最大速度取决于通信外设(但肯定比 JTAG 快)、您可以 查看 TRM 了解最大传输速率。 如果您对该选项感兴趣、我可以提供更多详细信息、因为这里提供了示例代码。

    此致!

    Matt

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

    尊敬的 Matt:

    调试服务器脚本编写(DSS)

    我查看此页面时发现其中解释了如何使用 CCS 执行自动测试、但我找不到任何高速数据记录的特定方法或实现示例。 通过使用 CCS 中内置的脚本工具和 API、我们可以实现预期目标吗?

    • 如果您对该选项感兴趣、我可以提供更多详细信息、因为这里提供了示例代码。

    [报价]

    是的、我有兴趣。 您能否说明一下使用示例代码和各个外设时的最大数据速率?

    谢谢!

    Conor

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

    尊敬的 Conor:

    对于 F28004x、每个(可用)外设的最大通信速度如下:

    SCI (UART):6.25 MHz

    SPI:25 MHz

    FSI:100 MHz

    为了将 PC 上的数据传输模块导出的数据可视化、需要一个桥接设备将每个通信协议转换为 USB。 如果使用 TI Launchpad 或 controlCARD、则电路板上具有内置的 UART 转 USB 桥接器。 例如、如果您要使用 FSI、则需要连接另一个桥接器件、以将 FSI 转换为 USB。 您可以使用 SysConfig 中的传输桥接模块也轻松生成桥接器件所需的软件。

    示例代码可在 C2000ware 路径中找到:[C2000ware install]/driverlib/f28p65x/examples/c28x/transfer/transfer_customlog_export_sci. 我不知道为什么 F28004x 文件夹中缺少传输示例、但两个器件上的 SCI 模块是相同的、因此您应该能够使用相同的代码。

    此致、

    Delaney

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

    尊敬的 Delaney:

    我根据您的注释检查了示例代码。

    系统配置

    定制 F280049C 板(变送器)

    实现与 TRANSFER_RAW_FSI_TX.c 类似的代码、通过 FSI (快速串行接口)传输可变数据。

    LAUNCHXL-F280049C (桥接器件)

    使用 transfer_comslogger_export_sci.c 通过 FSI 接收数据并通过 SCI (UART)将其转发到 PC。

    PC (可视化)

    通过 UART (USB)接收数据并使用 GUI Composer 或其他工具实时显示数据。

    问题

    问题1。 确认系统设置

    对于此设置、我们假设连接将为:

    "F280049C (定制电路板)→LAUNCHXL-F280049C→PC"

    上述理解是否正确?

    问题2: 如何在 PC GUI 上查看数据?

    我们想了解在 PC GUI 上直观显示通过 UART 发送的数据所需的具体步骤。

    您能否提供以下方面的详细信息?

    • SysConfig 设置过程
    • 在 GUI Composer 中实现可视化所需的处理步骤
    • 推荐的数据格式(二进制/ASCII/JSON 等)以获得最佳性能

    问题3。 不带 FSI 的高速监控

    如果我对 Q1的理解是正确的、在定制电路板上实现 FSI 需要更改布局。

    但是、由于定制电路板已经具有 SCI (UART)和 JTAG、我们想探讨是否可以在不添加 FSI 的情况下实时监视变量。

    您能否建议任何替代方法、例如:

    • 仅使用 SCI (UART)进行高速数据传输
    • 利用 JTAG (DSS:调试服务器脚本编写)进行实时变量监控

    谢谢!

    Conor

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

    尊敬的 Conor:

    [报价 userid="465179" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1476412/tms320f280049c-sampling-rate-of-real-time-debugging-on-c2000/5677554 #5677554"]

    对于此设置、我们假设连接将为:

    "F280049C (定制电路板)→LAUNCHXL-F280049C→PC"

    上述理解是否正确?

    [报价]

    没错、这是正确的设置。 您只需通过导线将 FSI 引脚从定制板连接到 F28004x Launchpad、然后可以将 Launchpad 插入 PC。

    [报价 userid="465179" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1476412/tms320f280049c-sampling-rate-of-real-time-debugging-on-c2000/5677554 #5677554"]

    我们想了解在 PC GUI 上直观显示通过 UART 发送的数据所需的具体步骤。

    您能否提供以下方面的详细信息?

    • SysConfig 设置过程
    • 在 GUI Composer 中实现可视化所需的处理步骤
    • 推荐的数据格式(二进制/ASCII/JSON 等)以获得最佳性能
    [报价]

    要使用此 GUI、您应该能够将桥接项目(Launchpad)中的 gui_support 项目属性设置为1、然后在 CCS 中构建项目。 之后、您可以在器件上运行项目(通过连接调试器+运行或刷写项目本身)、然后从"View"->"GUI Composer "->"Applications"->"transfer_comslogger_export_sci"启动 GUI、查看记录的数据。

    另外、让我与另一位专家讨论这一问题、看看我们是否可以向您提供为 F28004x 制作的示例、以便您无需任何进一步步骤即可运行示例。 我不确定 C2000ware 包中遗漏 F28004x 示例的原因是什么。

    为了获得理想性能、您可能需要使用开始/结束包模式(在 Exporter SysConfig 模块中设置)、但我会先使用 JSON 以使其工作、以便您可以根据需要调试 COM 端口中的消息(JSON 格式更便于人类阅读)。  

    示例正常工作后、将此支持添加到现有工程(已包含 SysConfig)的步骤如下:

    1. 添加 SysConfig 中与每个器件工程示例中所做的相同选择
    2. 在发送器器件上:将要传输的数据写入 FSI TX 缓冲区、然后开始传输(这基本上可以在应用中的任何位置完成、因为 FSI 传输速度非常快、所以不会对性能产生影响)。
    3. 在桥接器件上:启用 GUI 支持的构建配置并编译/刷写示例代码
    [报价 userid="465179" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1476412/tms320f280049c-sampling-rate-of-real-time-debugging-on-c2000/5677554 #5677554"]

    如果我对 Q1的理解是正确的、在定制电路板上实现 FSI 需要更改布局。

    但是、由于定制电路板已经具有 SCI (UART)和 JTAG、我们想探讨是否可以在不添加 FSI 的情况下实时监视变量。

    您能否建议任何替代方法、例如:

    • 仅使用 SCI (UART)进行高速数据传输
    • 利用 JTAG (DSS:调试服务器脚本编写)进行实时变量监控
    [报价]

    如果您想在定制电路板上将此工具与 SCI 一起使用、只需通过一个 UART 转 USB 桥接器连接 SCI 引脚(例如、可以使用一个简单的 FTDI 芯片)。 对于此方法、您可以改用 transfer_customlog_export_sci 示例/。

    据我所知、JTAG 的速度不够高、无法实时监控大多数应用中的变量。

    此致、

    Delaney

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

    尊敬的  Delaney:

    感谢您发送编修。

    此外、让我与另一位专家讨论这一问题、看看我们是否可以向您提供针对 F28004x 制作的示例、以便您无需任何进一步步骤即可运行示例。 我不确定 C2000ware 包中遗漏 F28004x 示例的原因是什么。

    我期待着听取您与专家的讨论结果。

    谢谢!

    Conor

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

    尊敬的 Conor:

    C2000ware 好像误遗漏了此示例。 有一点我忘记要说明、示例都是通用项目格式、这意味着您应该能够在 SysConfig 中在器件系列之间轻松转换每个示例。 您是否可以尝试以下操作:

    1. 将其中一个示例导入另一个器件的传输/文件夹
    2. 启动 SysConfig 文件(.syscfg)
    3. 点击右上角的三个圆点-> Preferences & Actions
    4. 单击开关按钮
    5. 在"Device"下拉列表中选择您的 F28004x 器件并确认
    6. 现在、应该将该工程转换为 F28004x

    如果您对此有任何问题、我还可以尝试为 C2000ware 添加一个补丁以及 F28004x 示例。

    此致、

    Delaney

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

    尊敬的 Delaney:

    我总结了你们的看法。

    ==========================================================================================================
    -要在定制板上实时监控 F280049C 上的变量,可以使用 SysConfig 中的转移工具。

    -传输工具中的调试约束取决于外设。 例如、SCI (UART):6.25MHz、SPI:25MHz、FSI:100MHz。

    -硬件设置为定制板→LAUNCHXL-F280049C→PC 上的 F280049C。

    -如果您想通过 SCI 进行通信,您可以参考 transfer_customlog_export_sci 示例代码进行设置。

    -要在 C28x 器件上启用数据记录功能,请转到 Build -> Variables 并将 gui_support 的值设置为1。

    在示例代码中,"日志记录条目1"通过 UART (SCI)发送,如下所示,日志每秒发送一次。 通过更改此代码中的 DEVICE_DELAY_US()、可实现高达数 MHz 的实时监控。 不过、这意味着 CPU 资源集中在 UART 中、因此是否可以将其合并到当前应用程序代码中尚有疑问。 此外、考虑到 EVM 晶体的精度、调试的实际速度有多快?

    -------

    while (1)

    DEVICE_DELAY_US (1000000);//等待1秒

    //使用 UART (SCI)发送日志
    exportlog_log ("日志记录条目1");
    exportlog_log ("下一个日志条目2");
    exportlog_log ("最后条目3");
    }
    -------

    这允许您在定制板上实时调试 F280049C 的变量。
    ==========================================================================================================

    我的理解是否正确? 我想让您特别详细地解释一下红色的部件。

    谢谢!

    Conor

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

    尊敬的  Delaney:

    您有更新吗?

    谢谢!

    Conor

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

    尊敬的 Conor:

    很抱歉我的响应延迟了。  此代码只是您可以调用以通过 SCI 导出数据的函数的一个示例。 在正常应用中、不会有延迟;您可以在  应用中任何所需的位置直接将数据发送出去。  

    您能解释一下您的应用吗? 大部分的执行是在主程序循环还是在中断中完成的?

    此示例主要用于对高优先级代码使用中断驱动方法并在主循环中执行低优先级代码的代码。 根据调用  exportlog_log()函数的位置/频率、CPU 可能被阻止在 SCI FIFO 中的空间上等待、这将是主要的 CPU 性能问题。 通常、可以在主循环中调用函数、使其不会干扰任何高优先级执行。  

    调试消息的速度取决于设置的 SCI 波特率、您可以在 SysConfig 中修改该波特率。 对于此示例、它不一定是"实时"导出。 FSI 示例将更接近于"实时"性能。 我们仍在努力对工具进行一些基准测试、以便为每种配置提供准确的性能数字。  

    此致、

    Delaney