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.

[参考译文] LAUNCHXL-F28379D:有关 EMIF1 - 16位256MB SDRAM 的问题

Guru**** 2002735 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1062988/launchxl-f28379d-question-about-emif1---16-bit-256mb-sdram

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件: C2000WARE

你好。 我使用的是 LAUNCHXL-F28379D、我构建了一个可通过 J9连接到 LAUNCHXL-F28379D 的小型存储器板。 将内存板连接到 LaunchPad 后、我进行了快速内存写入/读取测试、结果很奇怪。 所有偶数地址存储器工作不正常。  感觉 这个问题是由地址行 GPIO38/EM1A0引起的。 然后、我进行了两项测试、如下所示:

我写入0x8000 0000和0x8000 0001、 在这两种情况下、我希望 A0应该不同、但两者都是低电平。

2.我将 GPIO38配置为输出 GPIO 并输出高电平、我可以测量内存芯片上的高电平。 这证明连接正常。

有人能帮我解决这个问题吗? 我附加了 main.c 源文件和内存浏览器屏幕截图。 谢谢。

此致。


/**
* main.c
*

#include "F28x_Project.h"

extern void LaunchXL_F28379D_CPU1_Init (void);

易失性 UINT16 * EMIF_POINTER=(UINT16 *) 0x80000000;
UINT32 EMIF_BIAS = 0;
uint16 write_data = 0;
uint16 read_data = 0;
uint32 failed_count = 0;

void main (void)

InitSysCtrl();
LaunchXL_F28379D_CPU1_Init();

PieCtrlRegs.PIECTRL.bit.ENPIE = 1;//启用 PIE 块
IER = M_INT1 | M_INT3 | M_INT9;
EINT;

while (1)

failed_count = 0;
WRITE_DATA = 0;
WRITE_READ = 0;
对于(EMIF_BIAS=0;EMIF_BIAS<0x10000000;EMIF_BIAS++)

*(EMIF_POINTER+EMIF_BIAS)= WRITE_DATA;
write_data++;

write_data=0;
WRITE_READ = 1;
对于(EMIF_BIAS=0;EMIF_BIAS<0x10000000;EMIF_BIAS++)

READ_DATA =*(EMIF_POINTER+EMIF_BIAS);
if (read_data!= write_data)
failed_count++;
write_data++;


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

       您可以在电路板之间连接接线图吗?

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

    此外、您还可以访问 www.ti.com/lit/sprac96? 

    另一个有用的资源是 C:\ti\c2000\C2000Ware_4_00_00\boards\TIDesigns\F28379D_EMIF_DC 中的 C2000-EMIF_ConfigurationTool.xlsx 工具

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

    如果您使用的是16位 SDRAM 存储器、请确保将 SDRAM_CR 寄存器中的 NM 位配置为"1"。 默认情况下为"0"。

    此致、

    Vivek Singh

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

    您好、Haresh、

    感谢您的回复。 请检查随附的接线图。 左侧是存储器芯片、右侧是 J9连接器。

    我之前使用过这个图、没有问题。 我不知道为什么在我将其用于 LaunchPad 时会出现此问题。

    谢谢!

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

    您好、Vivek、

    感谢您的回复。 我刚刚检查了寄存器、NM 位为"1"。 我遵循了 TI 示例"emif1_16bit_SDRAM_far.c"中的 EMIF 配置。

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

        请预计假期会有一些延迟。 我们团队中的许多人都在度假。 我们将在下周结束前为您解答。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="341328" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1062988/launchxl-f28379d-question-about -emif1-16-bit-256MB-SDRAM]Hello。 我使用的是 LAUNCHXL-F28379D、我构建了一个小型存储器板、可以通过 J9连接到 LAUNCHXL-F28379D。[/QUERP]

     您使用的是 LAUNCHXL-F28379D 的哪个版本?

    LAUNCHXL-F28379D 概述用户指南(修订版 C) 注意到、根据 Launchpad 的修订版、您需要更改跳线或移动零欧姆电阻器、以便将所有 SDRAM EMIF 信号路由到 J9:

    和原理图部分、其中显示了修订版2 Launchpad 上的零欧姆路由电阻器:

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

    你(们)好。 我使用的是 Ver 2.0。 我仔细检查了0欧姆信号路由电阻器、它是正确的。 我已经将所有必要的信号路由到 J9。 此外、GPIO38没有0欧姆电阻器。 此外、正如我之前提到的、我执行了一个测试、将 GPIO38配置为输出、并检查了 F28379D 芯片与 SDRAM 芯片之间的连接。 因此、我认为这不是连接问题。 谢谢!

    此致、

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

    U1的 DQMH 和 DQML 反向。 这是故意的吗?

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

    您好、Haresh、

    感谢您的回复。 是的、我交换了数据总线的高8位和低8位、因此我也交换了 DQMH 和 DQML。 但在我读取 sprac96后、如果数据总线宽度为16位、则表示不使用 DQMH 和 DQML。 那么、这是否是问题? 谢谢!

    此致、

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

    我认为您指的是以下内容:

    16位时不需要对字节使能信号进行动态控制、
    位存储器、因为 C28x 是16位字可寻址的。 。
    存储器字节使能信号可被连接至低电平(永久)
    使能)。 32位的字节使能信号
    如果16位写入和读取不是、存储器也可以连接到低电平
    已使用。

    请按照建议将其连接到低电平、然后查看是否解决了该问题。

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

    您好、Haresh、

    感谢您的支持。 不幸的是、这不能解决我的问题。 我将 DQMH 和 DQML 连接到最近的 GND 引脚、但问题仍然存在。

    此致、

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

    请按照您在 C:\ti\c2000\C2000Ware_4_00_00\boards\TIDesigns\F28379D_EMIF_DC\F28379D_EMIF_DC_SCH.pdf 中找到的相同布线操作、并尝试从 C:\ti\c2000Ware_4_00_00\driverlib\f2837U1\examples\c2000\C2000Ware_4_00_4_00_00\driverlib\f2837U1\examples\cps\emif 中找到示例、然后让您了解您观察到的内容。

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

    您好、Haresh、

    我构建了一个新电路板、并固定了 DQMH 和 DQML 交换。 但为了简化布局、我仍然交换了一些位。 很遗憾。 问题仍然存在。

    我还尝试 了 C:\ti\c2000Ware_4_00_00_00\driverlib\f2837xd\examples\CPU1\EMIF\EMIF_ex4_16bit_SDRAM_far_lpm.c 变量"testStatusGlobal"返回"0xDEADDEADDE"、"errCountGlobal"返回"2"。

    有什么意见? 谢谢!

    此致、

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

      C2000ware 示例是一个经过测试的示例。 如果它不能按预期工作、则会在您的端点出现一些硬件问题 您能否与我私下分享您的完整原理图? 您可以在与我发起友谊请求后执行此操作。  

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

    您好、Haresh、

    我明白了。 硬件没有问题。 问题是我未正确设置 GPIO 限定符选择。 我发现函数"setup_emif1_pinmux_SDRAM_16bit (0)"工作正常、但我自己的代码无法正常工作。 然后、我比较了代码、发现数据线应该使用异步输入限定。 感谢您的支持!

    此致、