nandflash 驱动 碰到奇怪问题? 那位大虾帮忙看看

chenjianbin   2010-1-26 15:55 楼主
nandflash用的是 K9F1G08
每个页是2K ,写一个页,然后再读这个页,发现只有前512是一样的

没办法!只能先确定是 写有问题还是读有问题

用烧录工具(此工具没有问题)将一个文件,写入nand的一个固定地址, 然后再用我自己的代码去读这个地址的一个页,
用读出来的值和这个文件想比较
拿前16个字节来举例

错误的
0x45  0x1b  0x20  0x2b  0x24  0xfe  0x10  0x9  0x8e  0x11  0x80  0x1  0xff  0xff  0xff  0xff

正确的
0x45  0x0  0x0  0xea  0x1b  0x0  0x0  0xea  0x20  0x0  0x0  0xea  0x2b  0x0  0x0  0xea

以此类推
就是每4个字节,后3个都丢了,
高人快现身吧,

回复评论 (9)

详细看一下FLASH的DATASHEET,看下写整个页的时序到底是什么。
要想测试读是否有问题的话你可以先把FLASH擦了,或者是拿个空FLASH,然后把一个缓冲区的数据全设置成0xAA之类的非0和非FF的数据,然后将FLASH的整页读到这个缓冲区,看看读出来的是不是FF,如果是FF的话估计就是读成功了。然后再去试写。
点赞  2010-1-26 16:01
数据类型要定义为Byte,不能用char
点赞  2010-1-26 16:05
你用的CPU是什么型号?
点赞  2010-1-26 16:31
SAMSUNG 2440
点赞  2010-1-26 16:54
估计是数据类型搞错了  4字节的和单字节的
lz好好检查一下
点赞  2010-1-26 18:10
先擦除FLASH,再用你的代码去读出来看看是否是全FF。另外要注意一下FLASH的位宽是多少,每页真的是2K?
点赞  2010-1-27 08:59
1. 检查数据类型是否正确
2. 确定MCU的nandflash controler读写数据格式和字节数是否正确
点赞  2010-1-27 09:12
你的问题很可能是数据类型的错误,我用的K9f1208的,读写都是一个字节一个字节进行的,所以你最好看下你程序,再就是操作命令是否正确。
如还有疑问,可与我联系,很乐意帮人
点赞  2010-1-27 21:17
三星的2440,我们也用过啊,有Nand Flash控制器,写命令、写地址、写数据、读数据都是操作寄存器的,不用直接控制IO,应该很好操作啊,不应该有这样的情况啊。
楼主你仔细看看你的代码,看是否有上面各位大侠说的用错数据类型的问题。
点赞  2010-1-27 22:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复