Microchip
直播中

李淇淇

7年用户 218经验值
私信 关注
[问答]

怎么使控制器可以访问大容量存储设备?

嘿,伙计们,我想创建一个USB设备,它有两个接口,一个是大容量存储设备。我想使用MSD接口,因为驱动程序已经存在,用于将数据发送到设备。虽然这些数据是我想在设备的操作中使用的,所以它需要程序的访问。是否有一种方法可以使用MSD接口将数据大块(不超过10K)传输到设备以便程序能够读取和利用它?我正在看使用I2C串行EEPROM或闪存来存储数据。听起来我需要弄清楚数据是从哪里来的?谢谢大家。任何帮助都是值得赞赏的。

回帖(6)

杨伟

2019-9-20 09:24:41
正如达里奥注意到的,当你使用MSD时,主机将文件系统保存在内存中,所以你的PIC不能本地访问它。我记得读过一些人已经断开MSD,然后PIC可以使用微芯片Fsio.c或FATFS来安装内存,但是你必须确保主机刷新。文件系统在断开之前。只有当设备偶尔插入主机时,这才是真正有效的。
举报

h1654155275.5724

2019-9-20 09:36:59
有趣…你会有什么其他的想法,我如何可以读取和写入数据通过PIC和USB已经存在的驱动程序?也许我可以写一个不同类型的接口到USB管?我希望能够得到至少8Kbps,这应该不是问题,并且不需要驱动程序开发。程序可以写入USB管道(在Windows上,我知道HID驱动程序将文件io操作锁定在管道上,因此希望使用另一个速度合理的接口),PIC上的程序可以读取并存储它。MSD,还有另一个可以读取MSD的芯片吗?或者,我可以让PC认为它正在与MSD通信,但取而代之的是截取传下来的USB数据包,并做其他事情,而不是将信息存储在MSD中(如程序存储器中的高速缓存)?我不需要一次超过10K的空间,那么也许有一个64K程序内存的芯片?
举报

h1654155275.5724

2019-9-20 09:42:53
顺便说一句,我注意到你们两个都很积极,都愿意在这里的董事会上提供帮助,我想让你们知道你们过去发表的评论非常有帮助,我很感激这个时间。好像没有人愿意帮助你,很多项目就不存在了!
举报

李维嘉

2019-9-20 10:02:44
如果带宽允许,使用USB CDC,所有OS都有内置驱动程序(Windows、Linux、MAC)。看起来像一个串口UART到应用程序。Windows具有比其他OS更大的带宽限制,但在10K字节以内。大多数微处理器都存在示例代码。I2C是慢的,可能需要SPI外部闪存。16位“E”系列具有大部分较小的引脚数32 MX的内存。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分