主题 : mini2440 128M nand(K9F1G08U0B)读写的疑问 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 10162
精华: 0
发帖: 47
金钱: 365 两
威望: 151 点
贡献值: 0 点
综合积分: 94 分
注册时间: 2009-10-26
最后登录: 2013-09-07
楼主  发表于: 2009-11-28 19:42

 mini2440 128M nand(K9F1G08U0B)读写的疑问

管理提醒: 本帖被 qq2440 从 Linux技术交流专区 移动到本区(2010-02-08)
(Update: 关于这一问题的进一步讨论,看http://www.aiothome.net/read.php?tid-5088.html
K9F1G08U0B这个手册上地址时序是四个周期(第6页),不太明白mini2440为什么用五个周期?

参考Tekkaman的移植uboot代码中int nand_read_llb(unsigned char *buf, unsigned long start_addr, int size) 函数 
(此函数在 ……/u-boot-2009.08/board/tekkamanninja/mini2440/nand_read.c中)
  (http://www.aiothome.net/read.php?tid-3539.html
  
        NFADDR = 0;
        NFADDR = 0;
        NFADDR = (i >> 11) & 0xff;
        NFADDR = (i >> 19) & 0xff;
        NFADDR = (i >> 27) & 0xff;

确实是五个周期,但是也不太明白。为什么不是这样呢:
                    
        NFADDR = 0;
        NFADDR = 0;
        NFADDR = (i >> 12) & 0xff;
        NFADDR = (i >> 20) & 0xff;
四个周期不就结束了?        
[ 此帖被kasim在2010-03-11 13:52重新编辑 ]
级别: 新手上路
UID: 10162
精华: 0
发帖: 47
金钱: 365 两
威望: 151 点
贡献值: 0 点
综合积分: 94 分
注册时间: 2009-10-26
最后登录: 2013-09-07
1楼  发表于: 2009-11-29 20:47
非常感谢版主的悉心教导!

还有点疑问:那个row地址版主是不是想写:A11~A26,这样刚好就是65536。也就是说datasheet第六页上最后那个图A12和A20的起始地址写错了?而且A27应该再开一个周期?

那个27是做什么用的?应该有用吧,不然直接4个周期结束不是更省事了?
级别: 新手上路
UID: 10162
精华: 0
发帖: 47
金钱: 365 两
威望: 151 点
贡献值: 0 点
综合积分: 94 分
注册时间: 2009-10-26
最后登录: 2013-09-07
2楼  发表于: 2009-12-01 09:21
恩,我也试过了,4K也没什么问题。