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.

[参考译文] 66AK2H12:在66ak2h12中连接的 EMIF 的正常运行

Guru**** 2917090 points

Other Parts Discussed in Thread: 66AK2H12

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/665550/66ak2h12-normal-operation-of-emif-attached-in-66ak2h12

器件型号:66AK2H12

您好!

由于论坛上的支持者、我们的项目持续进行。 非常感谢。

目前、我重点介绍了我们平台上的 EMIF 操作(特定电路板内的66ak2h12)

我们使用 CE1空间(0x34000000)进行通信、HW (FPGA)尝试访问该区域。

但观察到一些奇怪的操作。 当 DSP 在 CE1空间写入16位数据时、HW 捕捉32位数据。

测试过程)

n`t 在 GEL 脚本上添加 EMIF 初始化代码。(实际上、我们没有使用 NOR/NAND 闪存。 我n`t 初始化 NOR/NAND 相关寄存器)

2.在 GEL 脚本上添加测试脚本作为 hotemu 函数。 因此、我们可以根据需要对其进行测试。

3、芯片作用域连接在 FPGA 上。 当在 FPGA 上接收到信号时、它可以对其进行分析(数据大小、数据内容、写使能信号等)

我们的代码片段如下所示:

初始化:  

EMIF_Init()
{
GEL_TextOut ("修订版=%x \n"、、、、、 EMIF_RCSR);
GEL_TextOut ("EMIF 已启动\n");

// W_SETUP = 0x3、W_STROBE = 0x7、W_HOLD = 0x1
// R_Setup = 0x3、R_STROBE = 0xF、R_HOLD = 0x1 
//数据总线:16位 EMIF_A2CR = 0x0C72679D; GEL_TextOut ("EMIF Init DONE); }

测试代码:  

热菜单 EMIF_Test()
{
*(无符号短整型*)(0x34000018)=(无符号短整型) 0x1234;//用于测试16位数据
//*(无符号短整型*)(0x34000010)= 0x12345678;

//*(无符号短整型*)(0x34000020)= 3;
} 

预期结果:FPGA 接收0x1234 (16位)

观察到的结果:FPGA 接收0x00001234 (32位) <- FPGA 接收到两个写使能信号并获取数据(0x1234和0x0000)

这是 EMIF 的正确操作吗? 或者、我应该考虑另一侧的东西吗?

提前感谢。

Chanseok

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    团队将收到通知。 他们将直接在此处发布反馈。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    [引用]这是 EMIF 的正确操作? 或者、我应该考虑另一侧的东西吗? [/报价]

    这不是正常现象。 EMIF16支持8位和16位数据宽度。 在"不支持的功能"部分中、有以下内容:
    32位模式运行

    因此、从 EMIF 的角度来看、这肯定不正确。 FPGA 端的数据总线宽度是多少? 也许它被设置为32位模式、这就是为什么它用0填充剩余的行。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。
    根据我们的硬件工程师的说法、FPGA 侧没有总线宽度配置。 由于 TI 芯片是 EMIF 通信的主器件、因此后跟 TI 芯片配置。(我将其配置为16位数据总线)
    实际上、我们处理了服务器测试用例、结果很奇怪。 正如我在前一个问题中提到的、我在 GEL 脚本上实现了测试函数、FPGA 接收到两个写入数据信号。 但是、当我在代码级(C 代码)上实现它时、它会正常工作。
    在我看来、当在 GEL 脚本上进行存储器访问时、无论类型转换如何、它都将以32位数据宽度进行访问。
    我不n`t GEL 脚本的确切操作。
    可以对此进行澄清吗?

    谢谢。
    Chanseok。