大家好,我的项目中使用了AM3505,其中 GPMC挂接了NAND和FPGA,NAND工作正常,在驱动程序中配置了GPMC后,GPMC和FPGA不能正常通信,用示波器察看片选、nADV等信号,片选信号一直为高,nADV一直为低,不知道问题在哪里,请大家帮忙。我是按照如下步骤配置的:
1 配置片选ncsx的基地址和空间大小
2 将相应地址映射后,对该地址进行读写操作
BlackSword(三寸丁):
请问是裸机使用,还是在操作系统中使用的?
zhiqiang ren:
回复 BlackSword(三寸丁):
Black Sword,感谢你的回复。
我在linux系统下的驱动程序中和裸机下都试过,结果是一样的。
GPMC和FPGA通信采用异步的方式,8位数据位。
在裸机下,我按照如下步骤配置的:
首先配置CONFIG1,指定DEVICE TYPE、DEVICE SIZE,SINGLE ACCESS等等,然后配置CONFIG2~CONFIG6来指定时间参数,最后配置CONFIG7指定nCSX的基地址和空间大小,使能片选。
然后从基地址+偏移地址去读取数据,读出的数据是错误的。
用示波器测片选和nADV信号,发现片选一直是高电平,nADV一直是低电平。
zhiqiang ren:
回复 zhiqiang ren:
我的项目中共用到nCS2,nCS4,nCS5,nCS6,nCS7五个片选,每个片选空间128M,基地址分别为0x10000000,0x20000000,0x28000000,0x30000000,0x38000000,对任一个片选空间进行读写操作结果都是错的,示波器上察看nOE,nWE,nCS,nADV,nOE,nWE,nCS一直为高电平,nADV一直是低电平。
我是在CCS下调试的,对这个问题不知道如何去调试了,迷茫中。。。。。。
不知道还有没有什么调试方法,请ti expert给点意见,谢谢
zhiqiang ren:
回复 zhiqiang ren:
GPMC_nADV_ALE,nADV ALE共用一个引脚,电平是相反的,对NAND来讲,没有操作时,ALE应是低电平,对数据总线和地址总线复用的外设来讲,没有操作时,nADV应是高电平,是否存在冲突呢?
zhiqiang ren:
回复 zhiqiang ren:
1 配置复用的引脚,指定为GPMC_A1~GPMC_A10,GPMC_D0~GPMC_D15, GPMC_NCS0~GPMC_NCS7,GPMC_NOE,GPMC_NWE, GPMC_nADV_ALE,
2 配置相应片选空间的CONFIG1~CONFIG7
3 对相应片选空间的地址进行读写操作
根据技术参考,按照这个步骤配置是可以的,我是这样做的,为什么不行呢?
Zhifeng Zhang:
回复 zhiqiang ren:
请问你的问题解决了吗?我遇到了这样的问题
xin liu1:
回复 zhiqiang ren:
请问配置CONFIG2~CONFIG6来指定时间参数,是如何计算的。
Yaoming Qin:
回复 xin liu1:
我也看过这一块,不过这部分一般是不够用改的,所以当时没有深入研究。有没有看过linux中相应的代码?
ye wang:
回复 Yaoming Qin:
楼主的问题解决了吗?我也关心GPMC这一部分。
jams lebulang:
回复 zhiqiang ren:
楼主你好,我在做GPMC模块时候遇到一个问题,想请教下你,就是配置GPMC寄存器7的时候怎样确定基地址啊?
谢谢!