想用STM32+NAND128做大容量存储

diablozyr   2009-5-6 16:19 楼主
想在英蓓特EM-STM3210E的开发板上用STM32+NAND128+SD卡做大容量存储,但用官方的例程只能对SD卡操作,对NAND不行,总是提示要格式化,但格式化不成功。

NAND和SD卡用的同样的USB程序,只是根据不CBW命令中不同的逻辑块来选择memory是SD还是NAND,能操作SD说明USB程序应该是没问题的,那为什么操作NAND不行。

NAND128单独用程序测试过,读写扇区正常。  

用BUSHound监测USB数据,发现在格式化过程中USB写入和读到的数据不一样,格式化SD的时候写入和读出的数据是一样,但NAND的就是不行。

不知道问题出在哪?有没有哪位做过的例程,借我参考学习一下,谢谢。

回复评论 (11)

如果是这样,可能是你处理地址出了问题?读和写时的地址

                                 也可能还是你的FLASH读、写扇区函数错误。可以参考一下我在21IC DIY U盘上做的128M FLASH扇区读写函数,移植过去应该就可以了。
点赞  2009-5-6 16:22

补充一下

                                 大容量存储是指U盘。。。
点赞  2009-5-6 16:25

圈圈的NAND接口时序是用IO模拟的吧。。。

                                  
点赞  2009-5-6 16:27

是的。那是底层的东西,自己修改下。

                                  
点赞  2009-5-6 16:31

光有NAND的底层驱动,做NAND上的U盘

还需要坏块管理层操作吧,还有逻辑块号到物理块号的转换。。。

ST跑在官方Eval-board上的USB例程中对mass storage的实现,又对它板子上小页NAND的LUT管理。可以参考一下。
点赞  2009-5-6 16:32

ST跑在官方Eval-board上的USB例程中对mass storage的实现

                                 我参考的就是mass storage的例程,但只能对SD卡操作。
点赞  2009-5-6 16:39
stm32 nand flash做U盘时,老是格式化不行,跟踪程序执行,在格式化命令处设置断点,好像STM32一直没有收到格式化命令,这个不知道怎么回事,望各个高人指点。
风雨同舟
点赞  2012-4-5 14:42
引用: 原帖由 heyinhe 于 2012-4-5 14:42 发表 stm32 nand flash做U盘时,老是格式化不行,跟踪程序执行,在格式化命令处设置断点,好像STM32一直没有收到格式化命令,这个不知道怎么回事,望各个高人指点。


对stm32进行格式化时不会发送格式化命令的, 
SCSI的格式化命令是会将每个block擦除的,但是windows格式化对U盘格式化时,只是往第一个block写入数据,而不会考虑其他数据
点赞  2012-4-5 15:06
谢谢楼上的高人指点!
难怪一直没有收到初始化命令呢,那有可能是我的写FLASH部分有问题,我再看看这部分代码。
由于这部分我是移植圈圈的那段程序,不知有哪位移植成功了的。可以上传一分给我参考下么?
风雨同舟
点赞  2012-4-5 15:59

回复 楼主 diablozyr 的帖子

和你相同的问题,挂载完,成功,然后用f_mkfs(0,1,2048); geshihua 128Mde 三星的nandflash,不成功,返回“格式化失败”,怎么解决哈,谢谢
点赞  2012-11-14 10:24
我用三星k9f2gu0a,用winhex读写nand flash都正确,格式化就出错。都没有办法
了。那位大神指点指点。
点赞  2012-12-21 22:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复