我尝试了 atmel 的 ASF 在 USB 大容量存储主机上提供的示例,以将文件发送/读取到 USB 闪存设备。读取文件时,我获得了 1.7 MB/s 的速度,我尝试了很多解决方案,其中包括:
- 确保它在高速模式下运行,并且板在 300 mhz 上运行
- 尝试增加 F_read 函数的缓冲区大小,我设法将其增加到 2.2 MB/s
- 我测试了它自己的文件系统,它是虚拟内存示例上的 FAT32,并在读取操作上获得了 30MB/s(不确定这是否有助于速度调试)
- 我尝试使用相同的程序,除了从 SD 卡读取,它给了我 1 MB/s 的输出
- 我还在全速模式下对其进行了测试,它给了我 0.66 MB/s 的输出。
- 我测试的一个极端想法是运行两块板,一个在主机模式下,另一个在设备模式下,然后我测试了 USB 的传输速度,它在批量模式下给了我 1.66 MB/s 的输出。(在 HS 上运行)
尝试了 Keil 示例,它给我的结果比 Atmel 的最差。
有人可以提出解决方案吗?我已阅读 Atmel 和 Keil 提供的有关 USB 通信的所有文档。