打印
[技术相关]

34s的usb设备

[复制链接]
628|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
caigang13| | 2023-2-7 07:34 | 只看该作者
你应该开启了插入格式化功能

使用特权

评论回复
板凳
zbx1981|  楼主 | 2023-2-7 08:09 | 只看该作者
这个是设备端配置的吗?

使用特权

评论回复
地板
XIVN1987| | 2023-2-7 10:50 | 只看该作者
USB MassStorage 例程从功能上可以划分成两个比较独立的部分:
USB通信部分,对应 MassStorage.c 中代码
Flash读写部分,对应 FlashDisk.c 中代码

现在现象是每次重启都要求格式化,那可能是 Flash 读写部分有问题,,

可以先不管 USB 通信部分,,按照“SFC_ReadJEDEC()、校验读回ID、SFC_Erase()、SFC_Read()、校验读回数据、SFC_Write()、SFC_Read()、校验读回数据”的流程,先验证一下SFC读写SPI Flash部分是否工作正常。。另外这部分调试可配合逻辑分析仪抓取通信过程,,查看SFC发出的命令 SPI Flash 是否支持、SPI Flash 是否被写保护等问题

使用特权

评论回复
5
XIVN1987| | 2023-2-7 11:02 | 只看该作者

补充一个我之前使用 SPI Flash W25Q64JV 遇到的问题,,

W25Q64JV 的 Status Register-2 有个 CMP (Complement Protect) 位,,当它为 1 的时候,,整个 SPI Flash 可能会被写保护,,如果遇到这种情况,,需要调用 SFC_ReadStatusReg、SFC_WriteStatusReg 把它清零



使用特权

评论回复
6
zbx1981|  楼主 | 2023-2-7 11:11 | 只看该作者
嗯嗯,好的,我先试试,非常感谢,有结果我随时发上来

使用特权

评论回复
7
zbx1981|  楼主 | 2023-2-7 11:14 | 只看该作者
本帖最后由 zbx1981 于 2023-2-7 12:56 编辑

刚试了下,是例子和我用的flash接法有差异,改完ok了,非常感谢

使用特权

评论回复
8
zbx1981|  楼主 | 2023-2-7 12:18 | 只看该作者
现在遇到个新问题,拷贝文件很慢怎么能够优化下呢

使用特权

评论回复
9
XIVN1987| | 2023-2-7 14:00 | 只看该作者
zbx1981 发表于 2023-2-7 12:18
现在遇到个新问题,拷贝文件很慢怎么能够优化下呢



以 W25Q64JV 为存储介质为例说明:

USBFS 传输速度是 12Mbps,即 1500KB/s,传输 4KB 数据最少需要 3ms,,W25Q64JV 擦除一个扇区需要 45~400ms,写入一个页需要 0.8~3ms,写入整个 4KB 需要 0.8~3ms * (4KB / 256) = 12.8~48ms,,因此写入4KB数据总共需要 3ms + 45~400ms + 12.8~48ms = 60.8~451ms,,按100ms计算,,使用 W25Q64JV 为存储介质时写入速度最快 40KB/s

另外可以发现,,整个操作过程中最耗时的是擦除操作,,SDNAND没有擦除操作,,可以直接写,,因此如果把存储介质从SPI Flash改成SDNAND,,写入速度应该会大幅提升。。


使用特权

评论回复
10
WoodData| | 2023-2-7 15:20 | 只看该作者
每次格式化就是存储的数据没写进去。每当读存储器第一个page的数据不对就会格式化。就是MBR记录

使用特权

评论回复
11
zbx1981|  楼主 | 2023-2-7 17:23 | 只看该作者
WoodData 发表于 2023-2-7 15:20
每次格式化就是存储的数据没写进去。每当读存储器第一个page的数据不对就会格式化。就是MBR记录 ...

嗯嗯,是的,是接口模式没有配对,例子和我自己的设计的板子不匹配导致的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

93

帖子

5

粉丝