本人在做DSP的EMIFA的实验的时候遇到下面的问题,DSP6748的外部存储器接在CS2上面,默认的其实地址是0x60000000,但是本人在外部CPLD里面编写了一个译码威廉希尔官方网站
,用EMIFA_ADDR13作为译码,即当EMIFA_ADDR13为1的时候,存储器片选使能,为0的时候不使能,这样就把存储器的地址译码倒了其实地址为0x60002000的地址处了。。。。。但是这只是我的想法,实验中发现,在dsp中往0x60002000的地址处的存储空间写入数据的时候却怎么也写不进去,没办法,只好在外面捕捉一下EMIFA的相关信号了,见图2,当图1中的地址为0x60002000的时候,发现EMIFA_ADDR13一直都是低电平,低电平当然外部存储没有片选了,所有写不进去也是正常的。后来我改了一下地址发现把地址线的EMIFA_ADDR15拉高的时候,即地址为0x60008000的时候,发现外部存储器却意外片选上了; 我所不解的是:1.地址0x60002000,明明就是把EMIFA_ADDR13拉高了,为什么外部捕捉到的EMIFA_ADDR13却一直是低电平
2. 地址0x60008000,明明就是把EMIFA_ADDR15拉高了,为什么外部捕捉到的EMIFA_ADDR13却一直是高电平,这究竟是为什么呢
另外,本人再次基础上还有一个地方不懂的,0x60008000才是外部存储的起始地址,但程序对0x60008000地址处写入数据的时候,用ccs的memory browner观察的时候,发现0x60000000地址处的数据居然也有变化!例如,我往0x60008000处写入0xAAAA,发现0x60000000处的数据也变成0xAAAA,向0x60008002处写入0xBBBB,发现0x60000002处的数据也相应的编程0xBBBB;同样,向0x60000000处写入数据的时候,0x60008000处的数据也发生变化(时基实验中发现数据确实写进去了),这个到底是怎么回事呢?
希望各位大牛不吝赐教!!
但是输出的时候,在外部捕捉到的结果却是这样的