准备用AM3354的板子和FPGA通过GPMC总线通信,FPGA作为norflash设备,使用了CS1 ,采用的是Synchronous Burst Read Access,通过cs和oe来控制数据读取,用示波器也能看出来GPMC总线上是有数据发送的,但是FPGA上对应片选的地址空间数据都是零,GPMC的配置参数如下,
GPMC_CONFIG1_1 0x78001200
GPMC_CONFIG2_1 0x00000B00
GPMC_CONFIG3_1 0x00000200
GPMC_CONFIG4_1 0x00000B03
GPMC_CONFIG5_1 0x010A000B
GPMC_CONFIG6_1 0x00000080
GPMC_CONFIG7_1 0x00000840
请问这可能是什么问题导致的?谢谢
Jian Zhou:
请问您的测试是在U-boot下做的还是Linux下做的?
bin lu:
回复 Jian Zhou:
ucos下做的
Jian Zhou:
回复 bin lu:
这个OS里面访问的地址是实际物理地址还是MMU映射的虚拟地址。
通过你的寄存器我看CS1选择的是0x0为起始地址空间,但是实际上这段地址理论上应该已经分配给CS0了,你看下你CS0占用的是哪段地址空间,CS1应该是CS0之后的一段地址空间。
bin lu:
回复 Jian Zhou:
访问的地址是MMU映射的虚拟地址,其实也是与实际物理地址一一对应的。
我没有用到CS0,尝试把CS1的起始地址设成0x10000000,GPMC_CONFIG7_1 变成0x00000850,读到的还是0
Jian Zhou:
回复 bin lu:
其实我建议你参考下starterware的代码,这是non-OS的驱动,里面的NAND驱动有GPMC的配置:http://processors.wiki.ti.com/index.php/StarterWare_02.00.01.01_User_Guide#NAND
另外我们有个NorFalsh的设计总结也请参考下:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/30869.aspx
leo chen:
回复 Jian Zhou:
数据线是共用的啊,可能其它地方在使用
你可以查看一下cs是不是还在不断的被拉低
bin lu:
回复 leo chen:
问题已经解决,谢谢啊
Jian Zhou:
回复 bin lu:
请问最后怎么解决的?能否分享下
bin lu:
回复 Jian Zhou:
就是发现GPMC的clk信号的pin没有Receiver enabled,在mux的时候enable这个就可以收到了
Donghong Hu:
回复 bin lu:
你好,对于这个解决问题能否详细点说明吗?