HPI接口在TI DSP中的應(yīng)用及常見問題分析
5. HPI操作流程
主機對HPI的一次總線訪問周期為分三個階段:主機發(fā)起訪問,HPI響應(yīng),主機結(jié)束訪問周期。
A. 主機發(fā)起訪問:即對HPI寄存器的讀,或者寫命令。主機送出的硬件信號為HSTROBE(由HCS, HDS1/2產(chǎn)生),HR/W,HCNTL0/1,HWIL,以及HD[0:n].HPI在HSTROBE的下降沿采樣控制信號HR/W,HCNTL0/1,HWIL判斷主機的操作命令。
B. HPI響應(yīng):HPI在HSTROBE的下降沿采樣控制信號,根據(jù)控制信號做出相應(yīng)的響應(yīng)。如果是寫(HR/W為低)命令,則在HSTROBE的上升沿將數(shù)據(jù)線上的信號鎖存到HCNTL0/1和HWIL指向的寄存器。如果是讀命令(HR/W為高),如果是讀HPIC,或者HPIA寄存器,HPI將寄存器的值直接送到數(shù)據(jù)總線上;如果讀HPID,HPI先將HRDY置為忙狀態(tài),HPI DMA將數(shù)據(jù)從HPIA指向的內(nèi)存單元讀到HPID,再送到數(shù)據(jù)線上,并清除HRDY忙狀態(tài),在讀HPID后半字時,數(shù)據(jù)從寄存器直接送到數(shù)據(jù)總線上,不會出現(xiàn)HRDY信號忙狀態(tài)。
C. 主機結(jié)束訪問周期:對于寫操作,主機將數(shù)據(jù)送出后,只要滿足芯片手冊中HPI對HCS的最小寬度要求,即可結(jié)束訪問周期。對于讀HPID操作,要等HRDY信號由忙變?yōu)椴幻?,主機才能結(jié)束訪問周期。兩次連續(xù)的HPI操作的間隔,在芯片手冊的HPI時序參數(shù)表里有要求,最小間隔為兩個HPI功能模塊時鐘周期。
6. HPI常見故障案例分析
在HPI應(yīng)用調(diào)試過程中,常遇到的問題分為:寫數(shù)據(jù)不成功,讀數(shù)據(jù)不正確,HRDY常高。這些問題通常都是由于時序不正確造成的,下面結(jié)合實際應(yīng)用當(dāng)中的案例進(jìn)行分析。
6.1 寫數(shù)據(jù)不成功
案例的硬件連接如下:
首先關(guān)注核心信號HSTROBE 由DSP_CS,ARM_WR(HDS1),ARM_RD(HDS2)產(chǎn)生,從下面時序圖可以看出ARM_WR的下降沿是最后產(chǎn)生的,所以寫操作時HSTROBE 的下降沿反應(yīng)的是ARM_WR 的下降沿。
寫HPIC的時序截圖如下:
寫HPID的時序截圖如下:
兩個時序圖顯示主機送出的數(shù)據(jù)111b 在HSTROBE(ARM_WR)的下降沿后,很快被改變成其它值000b.在寫HPID 的時序截圖中,第一個HSTROBE的下降后,HPI送出HRDY信號,然后數(shù)據(jù)線被改變,首先判斷HPI對主機的命令做出了響應(yīng),通過HRDY信號的出現(xiàn)時機,說明HPI判斷這是一個讀操作,可以判斷為HSTROBE的下降沿采樣HR/W信號不正確。
從硬件連接來看,HSTROBE(HR/W)要采樣HR/W,HCNTL0/1來判斷主機命令, HR/W的與HSTROBE為同一信號源,且同為下降沿,HR/W與HSTROBE的下降沿之間的setup時間不夠,采樣HR/W的電平狀態(tài)出現(xiàn)誤判,認(rèn)為是高電平讀命令,HPI對讀命令的響應(yīng)則是在第一個HSTROBE的下降沿之后送出HRDY信號,并在HRDY之后,HPI送出數(shù)據(jù)到總線上。
對于該問題,需要對參與HSTROBE邏輯譯碼的HR/W信號的下降沿做延時處理,可在邏輯電路如CPLD或FPGA里實現(xiàn),以確保HSTROBE的下降沿采樣到穩(wěn)定的HR/W電平。
評論