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.

[参考译文] TMS570LC4357-EP:与异步器件对接

Guru**** 2469800 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1018112/tms570lc4357-ep-interfacing-with-asynchronous-device

器件型号:TMS570LC4357-EP

您好!

我们正在尝试使用 EMIF 的 NCS2芯片选择通过 EMIF 访问异步器件。

我们将 EMIF 配置为读取16位数据。

当使用关键字 UINT16使用指向地址的指针时、Ba1应该是地址的 LSB。 而不是该 BA0被配置为 LSB。

您能告诉我们哪些数据类型可 用于精确配置16位数据吗?

下面是在 TMS570LC43x EVM 上 J10连接器的 A0、Ba1&BA0引脚上观察到的输出表。

地址 A0 Ba1. BA0
60000000 0 0 0
60000002 0 1 0
60000004 1 0 0

此外、代码的附加快照。

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

    您好!

     我在我们的设计团队发现了一个仿真波形、其中显示了与您的0x60000002匹配的时序。 BA[1]将选择高字节。

    *(无符号短整型*) 0x60000102 = 0x2233;

    以下是 TRM 中的描述。  

    EMIF 地址引脚 EMIF_A[0]始终提供一个32位字地址的最低有效位。 因此、在何时
    EMIF_BA[1]和 EMIF_BA[0]引脚提供了与16位或8位异步器件的连接
    半字或字节地址的最低有效位。

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

    您好!

    感谢您的回复。

    Ba1应为地址右的 LSB、而不是字节选择。

    例如、 地址:0x60000002、A0=1和 Ba1=0

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

    您好!

     我假设您将下面的内容连接到16位异步存储器。 EMIF_BA[1]连接到16位存储器的 A[0]。 如前所述、EMIF_BA[1]不用作字节选择、而是用作地址位。 从内存模块的角度来看、第一个16位内存位置由0x0访问。 从内存模块的角度来看、第二个内存16位内存位置是0x1。 由于 BA[1]连接到内存模块的 A[0]、为了访问第二个内存位置、BA[1]需要为高电平。 要访问第3个位置0x2、EMIF_A[0]需要为高电平、EMIF_BA[1]需要为低电平。 这就是我对它的解释。  

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

    您好!

    是的。 甚至我们的理解也与您的解释相同。

    理想情况下、要访问第3个位置0x02、EMIF_A[0]=1且 EMIF_BA[1]=0。但我们看到 EMIF_A[0]=0且 EMIF_BA[1]=1。 这看起来像是 BA0是 LSB、而不是 Ba1。 请您对此进行澄清。

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

    您好!

     在您的表中、您显示了第三个位置、即0x60000004的 EMIF_A[0]=1和 EMIF_BA[1]=0。 0x60000004是与内存模块的0x2相对应的 CPU 地址。 基本上、它是一个1位的右移。