您好!
我正在使用 TM4C123GH6ZRB、并尝试实现一个复合器件、该复合器件包含一个批量接口0和一个 MSC 接口1。 当两个接口不在复合器件中时、它们都可以独立工作、但一旦我尝试将它们组合在一起、我就会看到 MSC 传输速度的极度下降。 例如、当我仅运行 MSC 设备时、我可以获得~64kbps。 但是、一旦切换到复合器件、同一个接口将难以获得~8KB 的数据。
我使用的是 TI Tiva MSC 库和 MSC 示例(usblib\device\usbdmsc.c 和 USB_DE_msc)、还使用 TI 的 SPI_FLASH 驱动程序(utils\spi_flash.h)与 SPI 闪存部件相结合。 在我尝试使用 MX25L51245G 时、SPI_FLASH 驱动程序与示例驱动程序 MX66I51235f 的略微修改版本连接。
我正在将 复合设备初始化为:
//Force USB Device mode with no VBUS/ID monitoring. USBStackModeSet(0, eUSBModeForceDevice, 0); //Initialize our custom BULK interface g_sCompDevice.psDevices[0].pvInstance = USBDBulkCompositeInit(0, &g_sBulkDevice, &g_psCompEntries[0]); //Initialize a generic MSC interface g_sCompDevice.psDevices[1].pvInstance = USBDMSCCompositeInit(0, &g_sMSCDevice, &g_psCompEntries[1]); //Initialize USB device as a COMP device with BULK and MSC interfaces defined above USBDCompositeInit(0, &g_sCompDevice, COMPOSITE_DBULK_SIZE + COMPOSITE_DMSC_SIZE, (uint8_t *)pucDesciptorData);
这两个接口本身工作正常(只需调用 USBDBulkInit 或 USBDMSCInit)是否有原因、但一旦我尝试将它们置于复合配置中、我就会释放 MSC 接口上的大量吞吐量? 我是否缺少某种配置、或者应该使用某种方法来更好地处理 MSC 传输?