OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4564|回复: 7

W25Q128挂载文件系统和模拟U盘失败

[复制链接]

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2018-11-6
在线时间
58 小时
发表于 2021-3-18 20:54:18 | 显示全部楼层 |阅读模式
50金钱
求大神,我使用W25Q128扩展存储,之前使用的是SPI接口,这种模式下可以正常挂载fatfs,也可以模拟成U盘,但是由于SPI接口速度太慢(要一次性读取10MB左右的数据),所以改用4线QSPI模式,改用这个模式后,最底层的函数W25QXX_Read和W25QXX_Write这两个函数可以正常读取或者写入数据,反复校验都是能够正确读写的,但是在使用f_mount函数挂载时,这个函数返回值是0x0D,大概了解了一下这个返回值,网上说要格式化,但是反复尝试均不能成功,然后在模拟U盘时,PC端能找到U盘,但是不能操作,目前分析应该是底层驱动有问题,因为fatfs挂载时会调用W25QXX_Read函数,模拟U盘时也会调用W25QXX_Read和W25QXX_Write这两个底层驱动,所以去找这两个函数的原因,目前没有找到,因为这两个函数可以正常对W25Q128进行读写,写入指定地址的数据在掉电后重新上电是可以正确读出来的,那么说明这两个底层驱动是没有问题的,现在一头雾水,没有方向,不知道该从哪里下手找了,求大神帮忙分析一下,感激不尽!

最佳答案

查看完整内容[请看2#楼]

搞定了,目前使用的寄存器操作可以完成,使用HAL库不行,我这里做的功能是读取字库数据,用EMWIN生成了三种sif格式字体,一共约10M,然后把W25Q128分了15M出来做文件系统,把sif格式的字库文件放到W25Q128里面,设备开机时把字库数据一次性全部读出,使用QSPI4线,大概2秒左右,这样直接就可以使用三种字体的全字库了,非常方便。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2018-11-6
在线时间
58 小时
 楼主| 发表于 2021-3-18 20:54:19 | 显示全部楼层

搞定了,目前使用的寄存器操作可以完成,使用HAL库不行,我这里做的功能是读取字库数据,用EMWIN生成了三种sif格式字体,一共约10M,然后把W25Q128分了15M出来做文件系统,把sif格式的字库文件放到W25Q128里面,设备开机时把字库数据一次性全部读出,使用QSPI4线,大概2秒左右,这样直接就可以使用三种字体的全字库了,非常方便。
回复

使用道具 举报

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2018-11-6
在线时间
58 小时
 楼主| 发表于 2021-3-18 20:59:11 | 显示全部楼层
之前一直使用普通SPI接口,无论是挂载文件系统,还是模拟U盘,都能够成功,现在唯一不一样的就是改了接口类型,换成4线QSPI了,一直觉得是驱动没做好,但是读芯片ID,以及读写函数都能正常且正确的,实在想不到问题出在哪里了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-3-19 02:04:10 | 显示全部楼层
先不管文件系统,你4线模式,读写数据确定正常么?比如一次读取多一点,别只是一个扇区。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2018-11-6
在线时间
58 小时
 楼主| 发表于 2021-3-19 08:41:31 | 显示全部楼层
正点原子 发表于 2021-3-19 02:04
先不管文件系统,你4线模式,读写数据确定正常么?比如一次读取多一点,别只是一个扇区。

谢谢原子哥回复,正是因为4线读和写都正常,所以我才纳闷了,W25Q128是3字节地址模式的没错吧,但是实际可用地址为0x000000~0xFFFF00也没错吧,我是这样测试读写是否正常的,分别在每个地址,写10字节数据,写入后,掉电,再读取,读取出来的数据和写入的数据一模一样
回复

使用道具 举报

19

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2018-11-6
在线时间
58 小时
 楼主| 发表于 2021-3-19 08:44:16 | 显示全部楼层
谢谢原子哥,4线模式,能够正常读写
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-3-21 01:38:52 | 显示全部楼层
Samson123 发表于 2021-3-19 08:44
谢谢原子哥,4线模式,能够正常读写

全部搞定了吗?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2020-8-24
在线时间
50 小时
发表于 2021-3-27 17:43:33 | 显示全部楼层
问下 spi 和qspi 读写u盘速度分别可以到多少呀  ?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 07:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表