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.

[参考译文] TMS570LS3137:EMIF 地址线不切换

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/572367/tms570ls3137-emif-address-line-not-toggling

器件型号:TMS570LS3137

您好!

我正在使用 TMS570 LS3137 LZWT。 我在 EMIF 总线上连接了 SDRAM (CS0#)、NOR Flash (CS2#)、FPGA (CS4#)和 NVSRAM (CS3#)。 当我尝试读取/写入/擦除 SDRAM/NOR 闪存或尝试访问 FPGA 时、它工作正常。

当我尝试访问 NVSRAM 时、其中一个地址行(地址行4)不会切换。 我通过探测线路并从代码向 NVSRAM 发送读/写命令来确认这一点。 当我向 SDRAM 发送相同的命令时、线路会切换。 在示波器上也观察到了同样的情况。 由于该地址行不切换、我无法正确读取/写入 NVSRAM。

我已缩小到地址行4、因为我的写入数据每16个字节后重复一次。 我的 NVSRAM 为 CY14B108N-BA45XI。

问题出在哪呢?

提前感谢。

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

    因此、首先、如果您看看 SPNU499 图17-8 "EMIF 转8位/16位存储器接口"、您会注意到这一点

    存储器的低位地址应由 EMIF_BA[1:0]驱动、具体取决于宽度是8位还是16位。


    因此、这意味着 EMIF_ADDR[0]表示32位地址变化、 或4个字节。

    EMIF_ADDR[1]是8字节的更改、 EMIF_ADDR[2]是16字节的更改。



    因此、如果你只是说你看到存储器每16个字节重复一次、 那么这将是 EMIF_ADDR[2]上的问题、而不是 EMIF_ADDR[4]上的问题。

    如果您在 cypress 芯片上观察到 A[4]、这是可以的、但它应该由 EMIF_ADDR[2]驱动。


    如果您在 cypress 芯片上观察到 A[4]、则可能是 PCB 存在问题或组装问题、因为该引脚实际上未连接

    连接到 MCU 的 EMIF_ADDR[2]。    但同一引脚可能会连接到其他存储器/FPGA、因此如果您查看其他存储器、您可能会看到它会切换。

    您还需要使用示波器查看该引脚,并查找短路的任何细微迹象... 如果在访问该存储器时电压电平不是很正确、    它可能与数据线或芯片选择短接。  如果存在短路和驱动冲突、您通常会看到小的电压漂移、可能只有几十 mV、但在这条线尝试切换时会出现一些"脉冲"。  如果您在示波器上看到类似的任何内容-请查找短路。


    另外请注意、如果您查看 SDRAM 上具有某些测试循环的地址行、地址引脚在 RAS\期间会显示一个地址位、在 CAS\期间会显示一个差分地址、 因此可能会解释在访问 SDRAM 时进行切换、但在访问异步时不会进行切换。   但是、这意味着您在测试用例中也遇到了一些软件问题...   因此、我认为这更有可能是电路板上的组装或制造问题。

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

    感谢你的答复。
    NVRAM 数据宽度为16位。 NVRAM 的地址行连接如下所示

    NVRAM ADDR[0]= EMIF_BA[1]
    NVRAM ADDR[1]= EMIF_ADDR[0]
    NVRAM ADDR[2]=EMIF_ADDR[1]
    NVRAM ADDR[3]=EMIF_ADDR[2]

    地址行4指的是 EMIF_ADDR[2]。 当我尝试从地址0 (到地址15)开始向 NVRAM 写入32个字节时、此行不会切换。 当我以相同的操作写入 SDRAM 时、我可以看到切换。

    当我在示波器上探测时、我没有看到该线路上的逻辑电平发生任何变化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您澄清映射。

    如果您没有看到异常偏移电平、则短路/开路可能不是问题、尤其是在 SDRAM 工作时。

    您会看到切换了芯片选择、OE\、W\和其他地址行(较低顺序)、因此我唯一能想到的解释是代码错误。

    您是否尝试单步执行代码以观察写入的地址?
    因此、例如、在写入 SRAM 的每个"TR"指令上、确保用于寻址到 NVRAM 的寄存器中的值正确...