Init val of Internal Rdy的含義:
決定了内部RDY的初始狀态,決定了GPIFRADYCFG的第7位INTRDY的值。内部RDY作為RDY6由FIRMWARE控制的狀态,而不是由RDY引腳(RDY0-RDY4)的狀态來決定。當你在gpif中不需要判斷gpifradycfg.7的狀态時,那麼這個設定也就無所謂了。
Sync RDY to IFCLK的含義:
當gpif對rdy進行采樣時,是同步(SAS=0)還是異步采樣(SAS=1),當為異步采樣時,GPIF檢測到RDY信号的狀态實際上是24ns前的狀态。48MHz
Subst TC for RDY5:
選折這個選項後,GPIFRADYCFG.5将為1,表示将用TCXpire來代表RDY5的狀态。當RDY5=1時,代表TCXpire=1,而TCXpire=1表示傳輸計數器已經減小到0。
以上三個設定,分别對應GPIFREADYCFG的BIT7,BIT6,BIT5三位
每個gpif波形可以定義最多7個可程式設計狀态(S0-S6)和一個不可程式設計的空閑狀态(IDLE),在每個狀态中,你可以程式設計來實作:
1。控制CTL的輸出(高,低,浮空)
2. 對fifo資料線提供資料或對fifo資料線進行資料采集
3。增加gpif位址線上的值
4。增加目前指向fifo的指針,以提供下一個fifo中的資料到資料線上或者讀資料線上的資料到下一個fifo位址中。
5。觸發gpifwf中斷。
另外,在每個狀态中,可以檢測如下任意兩個變量的邏輯與,或,異或運算,根據運算的真假結果進行相應的狀态切換(詳見logic function寄存器)。
1。RDYx輸入引腳的狀态
2。fifo标志狀态位,EF,FF,PF到底選擇哪個标志是由EPxGPIFFLGSEL來決定的。在觸發波形前,若波形中使用了fifo狀态位來作為dp的跳轉判斷條件時,應該先設定EPxGPIFFLGSEL。
3.INTRDY标志,即gpifradycfg.7位的值
4。傳輸計數完成
5。指定一定時間的延時(1-256)ifclk時鐘周期。
注意:INTRDY是寄存器的一個位,由FIRMWARE中使用者自己程式設計定義。而Tcxpire是在觸發gpif後,傳輸計數到達使用者指定的一個值後自動置位的,這個使用者自定義的傳輸數是使用者在觸發gpif之前,給GPIFTCB所賦的值。
用GPIFDESIGNER/gpiftool其實就是填寫128個位元組(0xe400-0xe47f)的波形描述符來描述4個波形。
當波形跳到了idle狀态時,這個波形就結束了,相應的done位(gpifidlecs.7或gpiftrig.7)為1。當波形結束時,即進入idle狀态時,gpif信号的狀态是由gpifidlecs和gpifidlectl寄存器來設定的。需要注意的是,當一個波形還沒有結束的時候,你是不允許觸發下一個波形的,是以你在觸發一個波形之前,要判斷一下DONE位是否為1,隻有DONE位=1時,你才能開始産生下一個波形(也就是與外部slave通訊的時序)。
每個波形由幾個狀态組成,每個狀态由32位(4位元組)的狀态指令來描述,這4個位元組分别稱為LENGTH/BRANCH(NDP指明了這個狀态要保持多少個IFCLK時鐘周期,DP狀态表明跳轉條件為真時跳轉到第幾個狀态以及為假時跳轉到第幾狀态和是否Re-Execute),OPCODE(SGL=0,使用FIFO,指明到這個狀态時,是否産生中斷.這個狀态開始時,位址線gpifadr[8:0]是否自動加1,out fifo中的資料指針是否指向下一個資料,是否輸出out fifo所指的資料或讀入資料到目前in fifo的位址中,這個狀态是dp還是ndp),,LOGIC FUNCTION(用于DP狀态的判斷跳轉條件的設定), OUTPUT(用于控制在這個狀态時,CTL引腳的輸出狀态).有兩種不同類型的狀态:NDP,DP
關于re-execute
當在一個DP狀态的條件滿足時,有時使用者定義是挑轉到他本身的狀态,這樣的循環過程不是re-execute,我們将他稱為loop back.那麼re-execute是什麼意思呢?他是指當dp狀态跳轉到它本身的狀态時,其他動作是否也執行,比如你設定了NEXT FIFO DATA,也就是FIFO的指針加1或者你設定了位址線上的位址加1,或者你的CTL要置高,那麼當你選折了RE-EXECUTE後,當跳轉回來時,這些動作就會再執行一次,這樣你就可以實作一些自動功能了