主题 : 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: 11942
精华: 1
发帖: 144
金钱: 775 两
威望: 155 点
贡献值: 1 点
综合积分: 308 分
注册时间: 2009-12-25
最后登录: 2022-01-16
1楼  发表于: 2010-01-12 09:54

 回 6楼(kasim) 的帖子

我也在这个问题上困扰了很久,看到kasim的解释,真是豁然开朗,但还有一事不明:
SpareField不计入地址吗?若计入的话每页是2112个字节,那么11位地址就不够了啊
级别: 骑士
UID: 11942
精华: 1
发帖: 144
金钱: 775 两
威望: 155 点
贡献值: 1 点
综合积分: 308 分
注册时间: 2009-12-25
最后登录: 2022-01-16
2楼  发表于: 2010-01-12 12:16

 回 10楼(kasim) 的帖子

哦,原来如此啊,谢谢版主,呵呵