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.

[参考译文] TM4C1294NCZAD:通过 USB 传输文件

Guru**** 2486295 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/734482/tm4c1294nczad-file-transfer-via-usb

器件型号:TM4C1294NCZAD

你好

在我们的项目中、我们需要将 USB 用作串行端口(已经实现并正常工作的 CDC 类)以及从外部闪存传输介质。 我们不想实施文件系统、因为它看起来成本很高... 我们尝试实施 MSC 类、PC 主机将设备识别为外部磁盘、但要求格式化。  

是否有任何方法可以使用此类传输数据,而无需文件系统?

否则、我们考虑将器件配置为 USB 大容量器件。 使用 USB_DEV_BULK 示例、我们可以与 PC 主机通信、但我们看不到与 CDC 实现的区别... 它与虚拟端口非常相似! 使用此类而不是 MSC 有哪些优势? 我们看到它对大量传输数据很有用、但它能达到多大的传输速率?

谢谢你

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

    我不认为没有某种文件系统就可以使用 MSC、因为 Windows 和其他操作系统会将任何 MSC 设备视为数据存储、例如硬盘。 我没有听说过使用 MSC 是如何描述它的。

    对于传输介质、是仅传输数据、然后再访问、还是需要稳定的流、如播放音频?

    批量器件示例或多或少是 CDC、但该示例仅使用简单的端点传输、而不支持 ACM、ACM 是 CDC 差异化的一部分。

    假设您在所有传输中使用最大数据包大小、理论上最大速率为1.216Mb/s 或仅低于10Mbit/s、但如果 MCU (包括 TivaWare)产生开销、则不可能这么快。

    另外一位先前用户建议使用双缓冲器来帮助 TivaWare 传输速度接近该最大值、但这也可能像文件系统那样昂贵、不确定: e2e.ti.com/.../1535533
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你 Ralph
    我们需要在外部闪存上写入数据(即外设传感器的定期读数)、稍后我们将对其进行访问(即每天一次)。 一旦数据被读取、我们将擦除它、闪存就准备好存储新数据了。
    我们希望实施一个文件系统、以便将所有这些数据拆分为单个文件。 您是否对在外部 NAND 闪存上实现文件系统有任何参考?
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mirco、

    如果要写入外部闪存、则不应为此使用 USB、而应使用器件上提供的 EPI 总线、该总线用于与 NAND 闪存等外部存储器连接。

    我们没有专门针对 NAND 闪存的设计、但我建议您查看此 TI 设计、以查看基于 EPI 的系统示例: www.ti.com/.../TIDM-TM4C129SDRAMNVM

    就文件系统而言、最好的示例是 FAT 格式的 SD 卡。 此示例可在 TivaWare 中的[安装路径]\TivaWare_C_Series-2.1.4.178\examples\boards\dk-tm4c129x\sd_card 下找到
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你 Ralph

    我不想通过 USB 与 NAND 闪存进行通信、而是希望与 SPI 进行通信。
    在我的电路板上、Tiva MCU 通过 EPI 连接到外部 RAM、并将 QSSI 连接到 NAND 闪存。 从 SD 卡示例开始、将 EPI 接口替换为 SPI 驱动器(与 NAND 闪存的接口)是否有意义? 或者可能需要其他接口层?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mirco、

    QSSI 到闪存是我实际链接的 TI 设计的一部分、因此您无需更换 EPI 接口、实际上比我想象的更容易实现 EPI 来与 NAND 闪存通信。 从说明中:

    "通过使用微控制器的 EPI 接口、以60MHz 的频率连接256Mbit SDRAM、以60MHz 的频率连接 QSSI 接口、从而实现非易失性存储器、例如 SD 卡和四路串行闪存、这使开发人员能够将代码和数据空间扩展到最大内部存储器以上 微控制器的功能。"

    我建议从那里开始、如果需要、则在该示例项目上实现您的文件系统需求。 请注意、TivaWare 在[安装路径]\TivaWare_C_Series-2.1.4.178\third_party\fatfs 下具有第三方对 fatfs 的支持