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.

[参考译文] tm4c129x 以及批量传输和设备

Guru**** 2589245 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1017323/tm4c129x-and-bulk-transfer-and-device

Thread 中讨论的其他器件:EK-TM4C1294XL

我需要在两个处理器之间创建批量传输。USB_DEV_BULK 中的示例适用于 Windows;但是、我需要连接两个 tm4c129x 一个主机和其他器件。 它是否像使用 eUSBModeHost +几个其他更改配置 USBDBulkInit 一样简单? 如果有一个很好的示例。 我想、当我获得 mirco USB 转 micro USB 电缆时、我会提出这个问题。

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

    您好!

      我认为这很有可能。 但是、我们没有针对主机的批量传输示例、而只是针对器件。 请告诉我们您是否可以让它正常工作、并与社区分享您的建议。 如果您需要进一步的帮助、我将需要将您的问题转交给我们的 USB 专家、但直到下周可能才会收到回复。    

     下面的帖子也可能有用。  

    https://e2e.ti.com/support/microcontrollers/other-microcontrollers-group/other/f/other-microcontrollers-forum/854577/tm4c1294kcpdt-does-tivaware-support-host-cdc-driver/3161179?tisearch=e2e-sitesearch&keymatch=usb%2525252520host%2525252520cdc#3161179

    https://e2e.ti.com/support/microcontrollers/other-microcontrollers-group/other/f/other-microcontrollers-forum/734482/tm4c1294nczad-file-transfer-via-usb/2711940?tisearch=e2e-sitesearch&keymatch=usb%25252525252525252520host%25252525252525252520bulk%25252525252525252520transfer#2711940

    https://e2e.ti.com/support/microcontrollers/other-microcontrollers-group/other/f/other-microcontrollers-forum/992166/ek-tm4c1294xl-ek-tm4c1294xl-usb-msc-host/3665225?tisearch=e2e-sitesearch&keymatch=usb%2525252525252520host%2525252525252520bulk%2525252525252520transfer#3665225

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

    感谢您提供信息。 问、如果可以、有很多不同的模型被定义。 我有一项特殊要求、可能需要两个 Tm4c129x 才能以高速率共享数据。 处理器位于同一电路板上并控制不同的器件(不是通过 USB、需要占用空间小)。 因此、DPM/RAM 是一种方法、但需要更多布板空间。 USB 提供12Mbs 的简单数据共享。 我在 USB 数据传输方面没有太多经验。 批量还是 CDC 是使用 DMA 共享数据的更好方法? 有什么想法或示例需要指出的起点?   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="49816" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1017323/tm4c129x-and-bulk-transfer-and-device/3759784 #3759784"]因此,DPM/RAM 是一种方法,但需要更多的电路板空间。

    抱歉、什么是 DPM?

    [引用 userid="49816" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1017323/tm4c129x-and-bulk-transfer-and-device/3759784 #3759784"]批量或 CDC 是否是使用 DMA 共享数据的更好方法?

     CDC 类还使用批量传输。 USB 端点可配置为4种不同类型的传输:控制、等时传输、中断传输和批量传输。 CDC 类使用批量传输。  

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

    DPM"双端口存储器"..  CDC 我看到了这一点、但对它不够仔细。 是否有主机/器件示例? 因为我所做的只是数据的兆欧传输。 我在主机和设备端都使用了 msc。 我目前正在重新配置块的大小和数量、以便在两端(X len 的字节或固定传输大小的字节)将其缩小。 简单地说、使器件端看不到闪存芯片、而是指向处理器中的存储器位置。 到目前为止、从连接到断开的一切都看起来都很好。 但是、仍然需要研究块/扇区的硬定义在哪里、大小位于库文件中。  

    简单了解应用(仍在使用单个 tm4c129x 处理器方法、其中两个是备份计划):

    我需要一个处理器以非常高的速率(SPI 9Mhz)收集数据并将其存储在本地。 完成后、将其传输到第二个处理器并恢复收集、第二个处理器  会收集其他数据(非高数据速率) 、然后将其置于网络上。 存储器共享或 DPM 是一种更好的方法、但电路板尺寸必须较小。 与 两个 TM4C129x 相比、高速处理器需要更多的外部空间+它们可以共享电源、clk 和 rst 逻辑……

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

    问题:我知道 CDC 示例似乎指向一个 UART/串行示例。 其中波特率设置为115.2K。 我需要以12Mbits (USB 1.1 、全速)运行数据流

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

     忘记问题-串行应用程序能否以快速数据速率运行、我对 CDC 示例的理解是否正确?

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

    您好、Robert、

     我会将您的问题转交给我们的 USB 专家。  

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

    谢谢! 非常感谢

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

    您好、Robert、

    我将尝试在明天为大家提供一些有关通用 USB 吞吐量的信息、我记得有一些文档介绍了不同接口的预期结果。

    此致、
    Ralph Jacobi

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

    谢谢。。。 任何帮助都很好、任何主机代码也会提供帮助

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

    是否有收集 USB 信息的更新?

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

    您好、Robert、

    我无法找到资源、因此让我后退一步、回到这里的根本问题。  通常、CDC 被视为突发数据传输的最快选项、 往往是通过 USB 进行高速数据传输的首选。 有些人尝试定义自定义协议、以便对较大的数据包大小使用等时传输、但我尚未看到在 TM4C 上执行的操作。 通常使用等时传输来定期发送大数据包、例如用于音频的数据包。

    虽然它不会进入 USB 模式、但它概述了可用的不同传输类型: https://www.beyondlogic.org/usbnutshell/usb4.shtml

    现在、我尝试找到吞吐量资源的原因之一是、它实际上根据12Mbs 接口计算出最大理论吞吐量、同时考虑协议开销。 我将要从这里的记忆中汲取数据、所以不要把它视为福音、但我记得实际有效数据速率最高为~8Mbs。

    对于我们的 TM4C 微控制 器、在器件模式下、我们通常看到600-800kb/s (请注意、现在的字节不是位)、但我没有看到任何主机模式规格。 我不希望在该前端的任一方向上出现较大的增量。

    [引用 userid="49816" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1017323/tm4c129x-and-bulk-transfer-and-device/3760024 #3760024">问题:我知道 CDC 示例似乎指向一个 UART/串行示例。 其中波特率设置为115.2K。 我需要以12Mbits 的速度运行数据流(USB 1.1、 全速)[/quot]

    这就是我们的演示如何设置 TivaWare 以创建简单的示例程序的方法。 不需要这样做、 几乎每个应用都通过 USB 转 USB 来获得更高的速度。

    [引用 userid="49816" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1017323/tm4c129x-and-bulk-transfer-and-device/3761740 #3761740"]任何帮助都将非常有用,任何主机代码也将提供帮助[/quot]

    我有一个适用于 EK-TM4C1294XL LaunchPad 的 USB 主机 CDC 示例、但尚未完全完成。 我可以看到有关提供该功能的信息、但现在可以清楚地看到它"按原样"。 我们的计划是在今年晚些时候完成并发布、但我尚未重新开始该活动、并且在接下来的几周内无法重新开始。

    很遗憾、我一直在努力抽出时间来测试这一点、这就是为什么我在这里的回复如此延迟的原因、但让我看看我明天可以做些什么来完成这项工作、以便我为您提供帮助、以便您开始尝试。 我需要查看我是否让 LaunchPad 到 LaunchPad 的传输也正常工作、或者它只是 LaunchPad 到 PC。

    此致、

    Ralph

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

    谢谢 Ralph。。  我不需要传输大数据(仅3K)、只需要快速传输和 在数据收集中断之间传输。 您可以共享的任何代码都很棒。 我之前看的是批量存储、但该示例仅用于器件、创建批量主机示例似乎需要大量工作(看起来需要更改库以支持它)。 这就是 为什么要切换到 MSC、似乎我只需要更改扇区/批量和字节即可使其正常工作(库更改-我认为很小)。

    有什么想法吗?

    Rob

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

    您好、Robert、

    [引用 userid="49816" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1017323/tm4c129x-and-bulk-transfer-and-device/3766330 #3766330"]快速和 数据收集中断之间[/quot]

    如果您希望像这样驱动它、则可以使用 CDC。

    我将提供的 USB CDC 主机示例将附带生成的新 usblib 文件以支持该文件。 今天下午、我花了一些时间来做这项工作。

    此致、
    Ralph

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

    非常感谢您的观看、真的很喜欢

    Rob

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

    您好、Robert、

    当枚举工作时、我现在无法在示例之间进行数据传输。 我需要在星期一对此进行进一步的调试。 我知道它已经出现在某一点、因此应该很快解决、但需要连接 USB 分析仪并重新熟悉协议。

    此致、

    Ralph

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

    甜蜜! 再次感谢您的帮助!

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

    您好、Robert、

    我今天无法解决问题。 我可能需要一周的大部分时间来解决这个问题、因为我长时间没有深入研究该协议、我希望确保它正确完成。 期待星期四晚些时候的下次更新-任何更早的更新都可能意味着我解决了。

    此致、

    Ralph

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

    没问题。。。 任何帮助都很棒

    谢谢

    Rob

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

    您好、Robert、

    我附加的软件包将启用 TivaWare 2.2.0.295的 USB 主机演示:

    e2e.ti.com/.../USB_5F00_Host_5F00_CDC_5F00_Example.zip

    此文件包含三个文件夹:

    1. 器件
      1. 将 TivaWare_C_Series-2.2.0.295\usblib\device 下的文件替换为此文件夹中的版本。
      2. 这解决了 USB 器件 CDC 驱动程序在数据输出端点的默认端点分配方面的问题。
    2. 主机
      1. 使用 此文件夹中的版本替换/添加 TivaWare_C_Series-2.2.0.295\usblib\host 下的文件。
      2. 这会将 USB 主机 CDC 功能添加到主主机堆栈、并为 USB 主机应用提供驱动程序。
    3. USB_host_serial
      1. 这是可以加载到 EK-TM4C1294XL LaunchPad 上的全新 TivaWare 应用。

    将文件复制到 TivaWare 安装中后、您需要重新构建 usblib 以反映 USB 器件驱动程序的更新。

    按照我们入门指南第4.2节中的步骤来重建 TivaWare usblib: https://www.ti.com/lit/pdf/spmu373

    完成后、您可以将以下项目上传到 LaunchPad:

    • 我上传的文件夹中删除了 USB_host_serial
    •  TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\USB_dev_cdcserial 中的 USB_device_cdcserial
      • 重要! 必须在重建 usblib 后将其加载到 CCS 中、然后重新编译工程。 默认的.bin 文件将不起作用。

    完成所有这些操作后、您只需将两个 LaunchPad 的目标 USB 端口连接在一起即可运行示例。

    在每个 LaunchPad 上将 USB 电缆连接到 PC 的情况下、为每个 LaunchPad 打开一个 UART 终端。 对于主机 LaunchPad、您应该会收到一条关于它是 HCDC 串行应用的消息。 正确连接并枚举器件 LaunchPad 后、器件会显示"CDC 器件已连接"。

    此时、您可以开始测试传输。 从设备端到主机端、您有两个选项:

    • 通过发送任何 附加了 CR+LF 的字符串来回显数据。 如果没有 CR+LF 附加、则不会发生回波。 主机代码使用它来标识数据包的末尾。
    • 消息中的任意位置键入 Z 以触发 USB 主机向 CDC 器件发送64包数据。

    主机示例不包含任何 UART 终端输入功能、因此当前仅通过'Z'数据包驱动来自主机的传输。 但是、这应该足以让您为应用程序使用和运行。

    此致、

    Ralph

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

    谢谢 Ralph!  我将于今天晚些时候开始!!

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

    谢谢拉尔夫!! 我今天的一切都在工作 需要测量时序、但除此之外、两个电路板都通过 USB 进行通信。