waitstatus、active、unactive 、asserted、 de-asserted 应用和释义

    先来个背景介绍  

    RY/(/BY),表示Ready输出高电平,Busy输出低电平,本来应该是BY上一横杠来表示低电平的,

由于不好编辑,这里用这种写法。

     当外部芯片作为boot时,或者我们不知道外部芯片读写时间参数时,我们无法对控制器设定相应的时间参数。

这时就通过读RY/(/BY)引脚来确定外部芯片正忙还是已经准备好了。

    如何读RY/(/BY)的状态呢?在AM3359中GPMC_WAIT0连接到外部Nor Flash的RY/(/BY),通过读取 

WAIT0STATUS的状态来确定。查看手册可以知道GPMC_STATUS [8]表示 WAIT0STATUS

  WAIT0STATUS

0   WAIT0 asserted(inactive state)

1    WAIT0 de-asserted   

   刚上来本迷惑了一下,特别是括号(inactive state)更让人迷惑了,下面来解释一下。

   这里遇到了asserted和de-asserted ,asserted表示插入有效状态,假设wait0是高电平有效,则asserted就
是插入1,低电平有效的话asserted就是0。所以asserted=active。

wait0的高电平有效还是低电平有效由wait0的极性标志位WAIT0PINPLORITY决定。在GPMC_CONFIG寄存器中

可以对其配置,默认是0。

WAIT0PINPLORITY=0  wait0 active low

WAIT0PINPLORITY=1  wait0 active high

这里我们使用默认值,那么wait0 就是低电平有效,active=0,asserted=0。

wait0 active 和inactive的意义
active   说明需要等待
inactive 表明不需要等待

    我们一般意义上的active都是准备好了,可以工作了,因为这里对应的是wait,也就意味着要等待,和我们的

定向思维有些不同,所以才涂增了些烦恼。

    WAIT0STATUS的值是芯片复位时采样wait0引脚的电平决定。一般对其处理是上拉,连接到外部芯片

的RY/(/BY)引脚。如果悬空的话,复位默认值为0。这样造成的结果是boot的时候无法读取到Flash中的数据,启动不了。

查看XIP启动方式可知,boot的时候通过查询wait0决定能否读写操作。如果如果wait0是asserted,就是active,

那就要一直等待下去。括号(inactive state)也就是这个意思,wait有效的话,对外部芯片来说那就是无
效状态。
     本设计是上拉并且连接到RY/(/BY),所以采样得到WAIT0STATUS=1,wait0  de-asserted 也就是 

unactive,意思就是不需要wait。后续的读写操作之后,就是查询WAIT0STATUS位,如果为1,则可以操作,

为0则继续查询,知道为1。

你可能感兴趣的:(硬件)