4986|10

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

PPC下NAND FLASH问题 [复制链接]

有没有在ppc8248(8272系列)环境下进行NAND FLASH开发?NAND FLASH用GPCM模式是否满足NAND FLASH时序?有没有大侠发表一下见解。

最新回复

没有人懂upm吗 就是说upm时序通过gpl2拉低nand的re,拉低一次,可以读取一个字节。但是我怎么去判断哪个时刻gpl2拉低了re呢?  详情 回复 发表于 2009-10-16 10:18
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
呵呵,我也在做nand flash,正在找资料呢
考虑用upm模式。
因为我想read的是时候,powerpc应该拉低nand的re#,但是upm的gpl2这个引脚不知道应该如何驱动。
郁闷中
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 


1 新的问题又出现了,请问一下upm word中last bit是什么意思?

2 假如写入命令的upm mad=0x8用的是64个word中的一个,
  那么mxmr【op】=11的时候,是不是就只产生0x8这个word的时序?
  会自动顺序运行下一个word的时序,直到一个word的last位为1呢?

请教,谢谢!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
没必要上upm来驱动nand。只要给一个io口来驱动cs即可。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

5
 
参考设计当中建议使用upm模式,但是我们的硬件工程师在设计初期采用GPCM模式,RE,WE,CE,由CPLD逻辑来模拟,CLE和ALE通过IO地址线来给出。但是我觉着片选信号CPLD逻辑不好给出。看三星的手册上读FLASH ID时它需要CE信号一直为低,直到读完为止。在实际的硬件设计当中CPLD逻辑没有处理CPU给出的CS信号。

我的建议是使用UPM模式。

last bit为设置为1表示由UPM产生的时序结束标志。mxmr【op】=11的时候,你可以通过MAMR[MAD]设置产生哪个时序,例如:MAMR[MAD]=0x10,然后通过MAR设置命令或者地址。
example:
MAMR[OP]=11,MAMR[MAD]=0X10,MAR=Column address1
相当于:写列地址1
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
有问题咱们邮件沟通:jason_sun2008cn@hotmail.com
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
在ARM系统中,一般使用IO端口来模拟。它的设计比较简单。

在ppc当中这些都取决于硬件如何设计。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

8
 
关键是你用IO口的话,确实能读写nand,但是考虑到要把nand做成块设备,上面移植文件系统。
那么还是需要硬件驱动,而且ppc本身提供很好的硬件驱动,在时序上非常紧凑。

在gpcm,cs的信号都是可以通过bank的cs来确定的。你的nand不是连接到ppc的一个bank上吗,直接采用访问bank的对应地址就可以了。

但是假如你用upm的话,你可以通过ram word控制cs在一个周期的4中变化,很强悍。

example:
MAMR[OP]=11,MAMR[MAD]=0X10,MAR=Column address1
相当于:写列地址1

这个example我知道,我想问的是example中的0x10对应的word中的last位,如果是0,那么是不是ppc的引脚继续产生同样的时序?如果是1,那么ppc的引脚生成时候后就停止生成了?



 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
是这样的。理解正确。如果是1,那么PPC时序停止。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

10
 
好的,现在又出现一个问题,关于GPL2/OE这个引脚。
对nand进行读数据的时候,先发送命令,然后地址,然后读结束命令。然后polling R/B的状态为ready后,GPL2需要拉低nand的RE引脚,然后数据从数据线IO(0-7)输出了。

d0 = *(volatile unsigned char *)NAND_BASE;
d1 = *(volatile unsigned char *)NAND_BASE;
d2 = *(volatile unsigned char *)NAND_BASE;
d3 = *(volatile unsigned char *)NAND_BASE;
但是GPL2拉低nand的RE引脚一次,然后数据从数据线IO(0-7)读出
这个过程应该是ram word重复的,那么如何判断当前读的是哪次GPL2拉低的?


GPL2/OE在GPCM模式下,应该只要读取ppc的bank就能触发GPL2/OE为低的。
GPL2/OE在UMP模式下,通过ram word触发GPL2/OE为低,但是读取数据的时候如何控制呢?
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

11
 
没有人懂upm吗

就是说upm时序通过gpl2拉低nand的re,拉低一次,可以读取一个字节。但是我怎么去判断哪个时刻gpl2拉低了re呢?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表