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.

[参考译文] RM48L952:EMIF

Guru**** 2526700 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/983380/rm48l952-emif

器件型号:RM48L952

您好!

我正在尝试使用 EMIF 将8位数据写入外部异步器件。 我启用了 EMIF 驱动程序、启用了 EMIF 的引脚多路复用、将我的 vclk3设置为8MHz、并在 EMIF 选项卡上启用了 EMIF ASINC1和 REST 设置、与我希望在正常模式下使用它相同。

我所了解的是、我必须将数据写入芯片选择存储器地址。 我正在使用 CS[4]地址0x68000000。 我的代码如下:

#define EMIF_ADDRESS_CS2 *(int *) 0x69000000;

int main (空)

/*用户代码开始(3)*/

systemREG1->GPREG1 =((UINT32)((UINT32) 1U <<31U)| systemREG1->GPREG1);
EMIF_ASYNC1Init();

while (1){
EMIF_ADDRESS_CS2 = 0xFF;}

/*用户代码结束*/

返回0;

建议我出错的地方。

谢谢

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

    您好!

    systemREG1->GPREG1 =((UINT32)((UINT32) 1U <<31U)| systemREG1->GPREG1);

    不需要此行,因为该寄存器已在 sysinit()中编程。

    您的问题是什么? 错误消息是什么?

    如果 SRAM 仅为16MB、则0x69000000是无效地址

    尝试使用此选项检查它是否正常工作:

      EMIF_ASYNC1Init();

      *(uint32_t *) 0x68000000 = 0x12345678;
      *(uint32_t *) 0x68000004 = 0xABCD5678;
      *(uint32_t *) 0x68000008 = 0x89AB5678;
      *(uint32_t *) 0x6800000C = 0x9ABC5678;

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

    您好、Wang、

    问题是我无法在数据线路上看到数据。

    根据我的理解、如果我#define CS4的存储器、即0x68000000作为 EMIF_ADDRESS_CS4、并将8位写入地址0x68000000、那么 DMA 会将8位推送到数据线路、CS 设置为低电平、但在我的情况下 CS 始终为高电平 数据线上没有数据。

    谢谢、

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

    此器件最多可支持三个渐近芯片选择信号。

    请调用 EMIF_ASYNC3Init()以使用 NCS[4]