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**** 2601915 points
Other Parts Discussed in Thread: TM4C1294NCZAD

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/743745/tm4c1294nczad-usb-mass-storage-device-with-different-sector-size

器件型号:TM4C1294NCZAD

你好

我们正在使用 Tivaware 2.1.4.178开发 Tiva MCU TM4C1294NCZAD、尝试使用外部 NAND 闪存在 USB 上实现 MSC 类。 我们从 USB_DEV_msc 示例开始、该示例使用 mx66l51235f EEPROM。  

目前、我们的 PC 在连接时会看到外部设备(但即使在板上安装了文件系统、也不会将其识别为格式化)、但一段时间后、它会消失。

NAND 闪存(其驱动程序用于写入和读取操作)的秒大小 为2048字节、而原始示例中使用的 EEPROM 中的秒大小为4096字节。 是否可以使用具有此扇区大小的 USB 库? 我们应该如何调整 USB 库或 USB_DEV_msc 文件以适应这种大小?  

谢谢你

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

    我不认为您需要做任何事情、比如调整 USB 库来处理它。

    您所引用的示例使用 TivaWare 提供的 mx66l51235f.c/.h 文件、该文件将 MX66L51235F_BLOCK_SIZE 定义为0x1000或4096字节、然后使用 SPIFlashRad/SPIFlashWrite API 与 EEPROM 进行通信。 如果您需要查看此文件、此文件位于[Install Path]\TivaWare_C_Series-2.1.4.178\examples\boards\dk-tm4c129x\drivers。

    因此、您需要为 NAND 闪存创建自己的驱动程序文件来处理相同的操作、然后确保 API 被添加到 USB 器件的描述符中、对于 USB_dev_msc 示例、该描述符位于 USB_msc_structs.c 中并被标记为 g_sMSCDevice。

    最简单的方法是从 usbdspiflash.c 中获取并修改这些现有 API、以便与 NAND 闪存配合使用。 这基于 usbdmc.h 中定义的 tMSCDMedia 结构 现有 API 包括:

    USBDMSCStorageOpen、
    USBDMSCStorageClose、
    USBDMSCStorageRead、
    USBDMSCStorageWrite、
    USBDMSCStorageNumBlocks、
    USBDMSCStorageBlockSize

    作为对上述 API 进行等效运算的一部分、您可以确保将扇区大小视为2048字节、而不是4096字节、因为它在决定 USB 库如何处理 EEPROM 扇区大小的 API 中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我向前迈出了几步。 现在、我的 PC 将 NAND 闪存视为256MB 大小的外部器件、但其中没有文件... 我在"USB properties->Events"中查看了内容、其中最后一个是"未迁移的设备"。 如何使迁移工作? 我不知道信息是在交换的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mirco、

    我以前没有听说过该错误、但从读取它的一些内容来看、似乎设备驱动程序无法正常工作。 对我来说、这意味着两点之一。

    1)(不太可能)您的 PC 上的驱动程序是较旧的 TivaWare 驱动程序、您应该从 software-dl.ti.com/.../SW-TM4C-2.1.4.178.PATCH-1.0.zip 更新到最新版本 -如果问题纯粹是由 TivaWare 驱动程序引起的、则可能可以解决该问题、但我希望它无法从一开始就解决。

    2) 2)描述符的更新方式导致了器件枚举中的错误、这也是错误的来源、因此您需要比较 TivaWare 示例中的工作枚举与您自己的枚举、看看可能会缺少什么。