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.

AM5728: GPMC接口为啥有GPMC_WAIT0 GPMC_WAIT1两个wait 信号?他们的区别是什么?我再TRM中没看到

Part Number: AM5728


GPMC接口为啥有GPMC_WAIT0   GPMC_WAIT1两个wait 信号?他们的区别是什么?我再TRM中没看到

  • 您好,

    GPMC接口为啥有GPMC_WAIT0   GPMC_WAIT1两个wait 信号?

    GPMC_WAIT0和GPMC_WAIT1是GPMC(General-Purpose Memory Controller)接口中的等待信号,用于处理外部设备的读写延迟。

    他们的区别是什么?

    区别于作用的时间点不同

    GPMC_WAIT0:在读取数据时,GPMC_WAIT0信号用于等待外部设备的读取延迟。当外部设备需要更多时间来准备数据时,GPMC可以使用GPMC_WAIT0信号等待。

    GPMC_WAIT1:在写入数据时,GPMC_WAIT1信号用于等待外部设备的写入延迟。当外部设备需要更多时间来接收和处理数据时,GPMC可以使用GPMC_WAIT1信号等待。

  • Hi Gary,谢谢您的答疑解惑,但是我还是有疑问

    gpmc_wait1和gpmc_cs7(P7引脚)或者gpmc_advn_ale(N1)复用.  P7管教被我做了gpmc_clk,N1管脚被用做gpmc_advn_ale,是不是gpmc_wait1就不能用了?另外我不用gpmc_wait1是否可以?我FPGA足够快

  • gpmc_wait0可以作为读和写的等待吗?还是必须wait0和wait1分别作为读和写的等待?

  • 您好,如果您已经将P7引脚用作了gpmc_clk,而N1引脚用作了gpmc_advn_ale,那么gpmc_wait1可能已经被占用,无法再用于其他功能。

    在GPMC(General-Purpose Memory Controller)接口中,gpmc_wait1通常用于读取等待。如果您不使用gpmc_wait1,而且您的FPGA足够快,您可以尝试不使用读取等待信号。但是请注意,如果您的系统中存在读取延迟或其他因素可能导致读取冲突,那么使用读取等待信号是一个较为安全和可靠的做法。

    另外,gpmc_wait0通常用于写入等待。在GPMC接口中,读取和写入通常需要分别使用不同的等待信号。因此,如果您需要进行读取和写入操作,最好使用gpmc_wait0和gpmc_wait1分别作为读取和写入的等待信号。

  • 您好,

    gpmc_wait0和gpmc_wait1通常用于写入和读取的等待信号,分别对应写入等待和读取等待。这两个信号通常是分开使用的,以确保读取和写入操作的稳定性和正确性。

    gpmc_wait0用于写入等待,在写入数据时,如果写入缓冲区已满或者写入操作还未完成,gpmc_wait0信号将保持高电平,直到写入操作完成。

    gpmc_wait1用于读取等待,在读取数据时,如果读取缓冲区为空或者读取操作还未完成,gpmc_wait1信号将保持高电平,直到读取操作完成。

    因此,为了确保读取和写入操作的稳定性和正确性,通常建议将gpmc_wait0用作写入等待,将gpmc_wait1用作读取等待。这样可以避免读取和写入操作之间的冲突。

  • GPMC_wait0是写等待还是读等待?您一开始回复的和刚刚回复的,矛盾,刚好相反

    GPMC_wait1是写等待还是读等待?您一开始回复的和刚刚回复的,矛盾,刚好相反

  • 抱歉,手误! wait0是读,wait1是写

  • 没关系的,谢谢,从手册上来看,看不出wait0和wait1的区别。另外,有没有一下种可能: 1,将wait0作为读和写的等待?wait1就不用了?  2,wait1是写的等待,从图7-12  GPMC/Nonmultiplexed 16bits NOR flash-synchronous burst wirte 4x16bits  来看,在wait从低到高的上升沿开始写数据, 貌似wait又是必须的,不能缺少。。。。。

  • 您好,

    个人认为,当设置了GPMC_WAIT0时,GPMC接口将在读取数据之前等待一段时间,以确保数据可靠。而对于写等待、写操作的等待时间是通过GPMC的时序参数配置的,例如写数据保持时间和写数据到有效时间等。

  • Hi Gary,谢谢

    而对于写等待、写操作的等待时间是通过GPMC的时序参数配置的,例如写数据保持时间和写数据到有效时间等。

    ------>这个我能理解,但是总感觉没有用wait进行双方握手这种严谨(wait拉高就是开始数据的写)!如果没有wait,感觉就是一个等待多长时间,然后开始写数据,是这么理解吗?但是这个跟时序图有点矛盾,时序图是在wait的上升沿开始写数据,另外,能否都wait0代替wait1呢?有没有相关设置?因为他们读写不会同时发生,理论上可以共用

  • Hi Gary,  我看GPMC的寄存器只能设置一个wait,没法设置两个wait.这个跟wait0用来读,wait1用来写貌似矛盾

  • 您好,

    关于等待时间的理解,您可以将其理解为等待多长时间后开始写数据。如果没有wait信号,那么可以根据时序图的要求,在特定的时间点开始写数据。但是,如果有wait信号,那么可以通过wait信号的上升沿来确定开始写数据的时间。

    至于能否使用wait0代替wait1,这取决于具体的系统设计和GPMC的支持。一般来说,wait0和wait1是用来实现读和写操作的握手信号,它们的使用是相互配合的。如果读和写操作不会同时发生,理论上是可以共用wait信号的。

  • 您好,我需要查阅一下资料,请耐心等待,谢谢!