HPI接口在TI DSP中的應用及常見問題分析
5. HPI操作流程
主機對HPI的一次總線訪問周期為分三個階段:主機發起訪問,HPI響應,主機結束訪問周期。
A. 主機發起訪問:即對HPI寄存器的讀,或者寫命令。主機送出的硬件信號為HSTROBE(由HCS, HDS1/2產生),HR/W,HCNTL0/1,HWIL,以及HD[0:n].HPI在HSTROBE的下降沿采樣控制信號HR/W,HCNTL0/1,HWIL判斷主機的操作命令。
B. HPI響應:HPI在HSTROBE的下降沿采樣控制信號,根據控制信號做出相應的響應。如果是寫(HR/W為低)命令,則在HSTROBE的上升沿將數據線上的信號鎖存到HCNTL0/1和HWIL指向的寄存器。如果是讀命令(HR/W為高),如果是讀HPIC,或者HPIA寄存器,HPI將寄存器的值直接送到數據總線上;如果讀HPID,HPI先將HRDY置為忙狀態,HPI DMA將數據從HPIA指向的內存單元讀到HPID,再送到數據線上,并清除HRDY忙狀態,在讀HPID后半字時,數據從寄存器直接送到數據總線上,不會出現HRDY信號忙狀態。
C. 主機結束訪問周期:對于寫操作,主機將數據送出后,只要滿足芯片手冊中HPI對HCS的最小寬度要求,即可結束訪問周期。對于讀HPID操作,要等HRDY信號由忙變為不忙,主機才能結束訪問周期。兩次連續的HPI操作的間隔,在芯片手冊的HPI時序參數表里有要求,最小間隔為兩個HPI功能模塊時鐘周期。
6. HPI常見故障案例分析
在HPI應用調試過程中,常遇到的問題分為:寫數據不成功,讀數據不正確,HRDY常高。這些問題通常都是由于時序不正確造成的,下面結合實際應用當中的案例進行分析。
6.1 寫數據不成功
案例的硬件連接如下:

首先關注核心信號HSTROBE 由DSP_CS,ARM_WR(HDS1),ARM_RD(HDS2)產生,從下面時序圖可以看出ARM_WR的下降沿是最后產生的,所以寫操作時HSTROBE 的下降沿反應的是ARM_WR 的下降沿。
寫HPIC的時序截圖如下:

寫HPID的時序截圖如下:

兩個時序圖顯示主機送出的數據111b 在HSTROBE(ARM_WR)的下降沿后,很快被改變成其它值000b.在寫HPID 的時序截圖中,第一個HSTROBE的下降后,HPI送出HRDY信號,然后數據線被改變,首先判斷HPI對主機的命令做出了響應,通過HRDY信號的出現時機,說明HPI判斷這是一個讀操作,可以判斷為HSTROBE的下降沿采樣HR/W信號不正確。
從硬件連接來看,HSTROBE(HR/W)要采樣HR/W,HCNTL0/1來判斷主機命令, HR/W的與HSTROBE為同一信號源,且同為下降沿,HR/W與HSTROBE的下降沿之間的setup時間不夠,采樣HR/W的電平狀態出現誤判,認為是高電平讀命令,HPI對讀命令的響應則是在第一個HSTROBE的下降沿之后送出HRDY信號,并在HRDY之后,HPI送出數據到總線上。
對于該問題,需要對參與HSTROBE邏輯譯碼的HR/W信號的下降沿做延時處理,可在邏輯電路如CPLD或FPGA里實現,以確保HSTROBE的下降沿采樣到穩定的HR/W電平。












評論