打印

俺郁闷啊郁闷,郁闷到崩溃了...我们DIY U盘上的LASH是打磨过的

[复制链接]
4387|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
computer00|  楼主 | 2009-3-22 19:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本来很想打算用DIY U盘上的128MB FLASH做U盘啊,可是调试了很久,当地址A11为1时,读回的数据
就是不对啊...当A11为1时,读出的数据中有一部分就是不正确……当A11为0时,就一切正确。
这个芯片的A0~A11为页内地址。因此圈圈怀疑是不是这个芯片每个页只有1K,总容量为64MB。
莫非古道热肠买的是假货?郁闷了俺一天之久啊,最后还是放弃了,搞不定啊...真是想不
通哪里出了问题了...暂时只当它是64MB的用算了...哎,就这样白白少了一半啊……

读其ID号,为EC F1 00 95 30。看数据手册,128MB的芯片最后一个字节应该是40才对。
但是从倒数第二字节95来看,数据手册中对应的又是每页2KB,崩溃……

神啊,救救俺吧...时间不多了...玩过的出来说句话啊……

相关帖子

沙发
xwj| | 2009-3-22 19:53 | 只看该作者

我觉得还是你自己的问题,最好仔细看看是不是少了一个圈

使用特权

评论回复
板凳
taoest| | 2009-3-22 23:21 | 只看该作者

nand

有些nand是mcp封装的,里面有两个chip,有两个独立的CE脚。你看datasheet,会不会是MCP的,每个DIE 64M。

使用特权

评论回复
地板
computer00|  楼主 | 2009-3-22 23:49 | 只看该作者

谢谢楼上提醒.可是我仔细看了看这个芯片的数据手册,没发

而且如果是CE的问题话,读回来应该是FF才对。

我把扇区0擦除,然后我读地址0x800时,前64字节是0xFF,64~128字节是0x0F,不知道咋回事?
每当A11为1时,就会出现这种情况。我怀疑是不是我的FLASH坏掉了?晕...应该不至于吧?

谁手头上有板子?麻烦帮我测试下这个程序看行不。这个程序是将扇区0擦除,然后显示62、63、64、65这四字节的。
如果显示全FF,则说明正确。如果显示FF FF 0F 0F,那么说明跟我的情况一样,是我程序的问题。
https://bbs.21ic.com/upfiles/img/20093/2009322234732710.rar

郁闷一天了,还是没有解决啊。

使用特权

评论回复
5
xwj| | 2009-3-23 00:01 | 只看该作者

嗯,明天测试下

使用特权

评论回复
6
computer00|  楼主 | 2009-3-23 00:05 | 只看该作者

还等明天干啥...

使用特权

评论回复
7
huangqi412| | 2009-3-23 08:22 | 只看该作者

干流口水...

使用特权

评论回复
8
wangkj| | 2009-3-23 12:05 | 只看该作者

nand貌似有2,3字节两种命令。大容量的用3字节命令。

只是看别人调试过,没动手,提醒一下。

使用特权

评论回复
9
古道热肠| | 2009-3-23 12:19 | 只看该作者

呵呵,遇事不惊,方能成大气候,俺得去看看ID,应该不会是假货

小容量的NandFlash没必要玩假,不是大容量的,商家造假得不偿失,成本太高.

使用特权

评论回复
10
古道热肠| | 2009-3-23 12:59 | 只看该作者

回圈圈,用您的程序测试过了.结果与您的一样

LCD显示的是FF FF 0F 0F

使用特权

评论回复
11
computer00|  楼主 | 2009-3-23 13:03 | 只看该作者

俺晕...那你读的ID号呢?多少?

要不你写个最简单的读地址0x840附近的数据的程序看看结果是多少?俺已经崩溃了,先放一放。

使用特权

评论回复
12
古道热肠| | 2009-3-23 17:04 | 只看该作者

俺用俺过去的驱动例程测试了一下读ID

读取到的ID为:EC F1 00 95 40

使用特权

评论回复
13
古道热肠| | 2009-3-23 17:09 | 只看该作者

有板的朋友看到后都来帮圈圈测试一下,贴上可下载的测试文

源程序老早在本版已发表.
直接烧到开发板中,开机LCD就显示测试结果.

使用特权

评论回复
14
computer00|  楼主 | 2009-3-23 18:18 | 只看该作者

俺晕...用古斑的测试果然是40...我再调戏一下...

使用特权

评论回复
15
computer00|  楼主 | 2009-3-23 18:37 | 只看该作者

晕...俺的程序读出来也是40没错呀...

原来读出来是30,是因为俺读它出来之后,没有再去访问这个变量,所以被编译器优化掉了,
显示的是30,我晕死...我现在访问一下这个变量,结果就是40。

那个读出来是0x0F的问题依然没有解决...到底哪里错了呀...晕...再仔细检查一遍吧,
受不了了...

使用特权

评论回复
16
wangkj| | 2009-3-23 21:52 | 只看该作者

volitate变量,就可以防止优化了。

使用特权

评论回复
17
computer00|  楼主 | 2009-3-23 22:46 | 只看该作者

那个只是临时测试一下。真正的问题还是没有解决啊...

哪位朋友有空写个最简单的读操作的例子给俺试试吧...

使用特权

评论回复
18
computer00|  楼主 | 2009-3-24 10:14 | 只看该作者

哎,终于想到问题在哪了...是圈圈傻到了极点...

今天早上一觉醒来,还在想那个FLASH的问题……突然灵感一来,这0x800,不是已经是2048了么?
这明显已经超出了页内地址了!因为一页是2K字节的。怎么以前一直没想到这个问题?一方面是因为
太相信数据手册了,另一方面是连续调了几天,没休息好,脑袋晕晕的……把它放了一段时间(事实
上心里一直没放下),好好休息了一下,突然想到了这个问题。严重被数据手册误导啊!可这么低级的
问题,圈圈都没想到,实在是不应该……而且还明确定位到A11为1时就出错,已经明显越界了还没意识到……
面壁三分钟……可能是人老了就变得迟钝了吧……

再来看看数据手册是如何误导圈圈的吧……有图片和文字描述:




数据手册中说,每一页是2KB,但是图中给出的页内地址却是A0~A11,我晕,这明显是4K的寻址范围才对……
这个问题圈圈没细想,就直接傻傻的把实际地址的A0~A11给塞了进去……再来看文字描述,
“128M字节的物理空间需要28位地址”,圈圈也很傻很天真,没去算,28位很明显是256M字节
的寻址空间啊!(10bit就是1K,20bit就是1M,前面8bit为256,所以是256M)。
因此这个数据手册是错的!实际上只需要27位地址,将A11移到A16,原来的高16位全部
左移一位,丢掉最高位A27,这样就对了。

这么明显的错误,为啥圈圈在网上搜索时居然没人提到?晕死。圈圈下了几个版本的数据
手册,都是同样的描述……
该数据手册可以去下面网站下:http://www.ic-cn.com.cn/pdf.php?keyword=K9F1G08&Submit=%B2%E9%D1%AF

http://www.alldatasheet.com/view.jsp?Searchword=K9F1G8&q=K9F1G8

总算是找到一个可以让人信服的原因了……中午回去试验一下,我想肯定就是这个原因引起的了……
开始还一直在哪调试低层的东西,真是很晕很傻很天真……

这几天都是遇到这么让人郁闷的数据手册错误的问题,哎...前几天调试USB时是
ARM芯片数据手册几处含糊和出错,现在又遇到NAND FLASH数据手册出错,人品真是越来越差了……

使用特权

评论回复
19
xwj| | 2009-3-24 10:31 | 只看该作者

呵呵,不是因为人品差,而是因为你学的、做的越来月深入

^_^

使用特权

评论回复
20
computer00|  楼主 | 2009-3-24 10:37 | 只看该作者

俺快被整疯了...

这已经是这个学习板上遇到的第四次数据手册出错了……
不知道古道热肠兄咋选的片子,尽选些数据手册有错的芯片,这不是害死圈圈么……

要是在前两年,圈圈遇到这样的地址出错的问题,应该能很敏感地察觉到它不对,可是这次,
似乎真的是没感觉了...也许玩电子就像爱情,时间长了就没感觉了吧...

使用特权

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

本版积分规则

246

主题

14693

帖子

210

粉丝