This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6678 EMIF16 16位访问 地址与数据对应的问题

您好,

新做的板子,6678 DSP EMIF16与FPGA相连,16位数据访问时,往CE0连续地址写入线性数,FPGA端抓到EMIF地址与数据情况如下图:

按照EMIF16手册 16位连接图:

地址变化是对的,但为何是两个数据对应一个地址,请问EMIF16 哪个地方配置让数据和地址一一对应

谢谢!

  • 麻烦TI的工程师们给看下哪里出问题了?在寄存器配置上我只看到 Async Config Register 的ASIZE位选择16位或者8位宽。配置8位宽的时候数据和地址是一一对应的,16位的时候就会出现两个数据对应一个地址。按EMIF16手册 16位接法DSP按连续地址访问FPGA挂接的NOR FLASH是不正确的。如果EMIFA0不接,其他地址线依次往后挪一位,DSP按偶地址访问是可行的。但问题是我们需要作EMIF NOR BOOT,按TI手册接法是否能够正常读取NOR FLASH中的启动代码?

    谢谢

  • 没完全明白你的问题,不过EMIF地址线有一点很容易混淆,在16位宽的情况下,管脚和逻辑字节地址的对应关系如下:

    EMIFA23->A1

    EMIFA0->A2

    EMIFA1->A3

    EMIFA2->A4

    ......

    注意16位宽时,逻辑字节地址A0不存在。

  • 《KeyStone Architecture Literature Number: SPRUGZ3A May 2011 External Memory Interface (EMIF16)》这篇手册里面说的是对应这A0 ,为什么说逻辑字节地址A0不存在,EMIFA23->A0不是EMIFA23->A1啊???我算了一下,按照16bit接法访问的大小为2^24*16=268435456 bit=256 Mbit=32 MByte;手册上不是说一个CE可以访问64MByte吗?是哪理解错了呢?

  • 你好!我也在调试C66x的EMIF16和FPGA,遇到一个最基本的问题:

    我将ce1地址段配置成Norflash后,这样来访问EMIF16

    volatile Uint32 emif16_ce1_addr=0x74000000u;

    *(Uint16 *)(emif16_ce1_addr)=j;

    但是上面的程序检测不到任何CE,WE,OE的电频跳变,但是在用STK_EMIF是可以检测到这个信号的变化,而且可以通过STK_EMIF历程的检测?请问这样访问EMIF16是正确的吗?如果不对那该如何访问EMIF16,先谢谢你的解答!

  • 这样访问没错,你不是测和f p ga互联吗,f p ga做一个双口Ram,d s p通过emif读写双口ram试试?
  • 谢谢你的回答!现在我将EMIF16配置成Norflash如图

    访问如图:

    但是在FPGA端的采样数据和地址都不是连续的 数据为0这是为啥啊?求解,先谢谢你的解答!