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.

AM335x GPMC 写数据正常,读数据卡死

Hi, everyone!

我现在正在做GPMC的linux驱动,write数据时正常,已经用示波器测试过信号,及和FPGA成功对接过,现在问题是一读数据就卡死

验证板子为 Beaglebone black, AD复用,读写异步,平时开发验证的环境为GPMC管脚悬空,请各位大神帮忙看下,读数据卡死一般是什么情况呢?

CONFIG1-7的配置如下:

read函数的实现:

地址已通过ioremap进行映射。

  •  在读取数据的时候,GPMC_CLK, CS, ADV等信号线的时序量过吗,是否正常?

    TRM手册里面有时序示意图:7.1.3.3.10.1.1.1 Asynchronous Single-Read Operation on an Address/Data Multiplexed Device可以对照这个看一下,看一下卡的地方是读操作的过程中,还是读操作都没有执行就挂了。

  •  读取数据时,只有CS的信号拉低了,其余管脚的信号都没有变化,读取其他地址的数据是可以的,比如读取control module(0x44e10000-0x44e11fff)和GPMC的寄存器都是可以的!多谢!

  • 根据你提供的章节又研究了一下

    状态更新:

    CS_CONFIG1 0x1201

    CS_CONFIG2 0x1f1e01

    CS_CONFIG3 0x30302

    CS_CONFIG4 0xb061d06

    CS_CONFIG5 0x1c1f1f

    CS_CONFIG6 0xf030080

    cs信号,adv信号都有拉低变化!addr位有按照预期变化!但是现在cs和adv信号拉低后就一直保持低电平,驱动卡在读取数据的地方!

    我wait信号没有使用,这个有影响没有呢?
    dir信号是不是不需要自己配置?