您好,歡迎來電子發(fā)燒友網! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網>電子元器件>接口定義>

HPIC 的時序 - HPI接口在TI SOC的應用詳解

2012年09月04日 16:27 電子發(fā)燒友 作者:灰色天空 用戶評論(0
寫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的電平狀態(tài)出現誤判,認為是高電平讀命令,HPI 對讀命令的響應則是在第一個HSTROBE 的下降沿之后送出HRDY 信號,并在HRDY 之后,HPI 送出數據到總線上。
對于該問題,需要對參與HSTROBE 邏輯譯碼的HR/W信號的下降沿做延時處理,可在邏輯電路如CPLDFPGA 里實現,以確保HSTROBE 的下降沿采樣到穩(wěn)定的HR/W電平。
?
1.2讀數據不正確
通常表現為讀讀HPIC,HPIA 正常,但讀HPID 不正常,前半字為0,后半字正確,對同一個地址讀兩次,第二次的數據完全正確。
在案例中,用示波器觀察HCS 與HRDY 之間的時序關系,發(fā)現HCS 的上升沿在HRDY 的上升沿之前,即主機在HPI 數據有效之前結束了訪問周期。HRDY 的上升沿其實是因為HCS 的結束而拉高的,并非數據真正有效。

用戶由于沒有在硬件上將HRDY 與主機PowerPC 的TA 信號互連,沒有硬件握手機制,于是從軟件配置上加大主機的總線訪問周期,即增加HCS 的寬度,故障現象沒有變化。
原因分析:讀HPID 與HPIC,HPIA 時序不同,讀HPID 操作需要HPI DMA 從HPIA 所指向的地址讀數據到 HPID,會有時間上的延時。而讀HPIC 和HPIA 直接從寄存器讀數據,沒有延時,所以讀HPIC,HPIA 是正確的。在讀HPID 時,HPI 會在第一個HSTROBE 的下降沿后將HRDY 置位,指示數據未準備好的忙狀態(tài),主機應當在總線上插入等待周期,數據準備好后HPI 清除HRDY,主機才可以結束總線周期,通過HCS 的上升沿將有效數據鎖存。
HSTROBE 的下降沿到數據有效之間的延時與芯片及HPI 接口的工作頻率相關,以C5502,C5501 為例,在芯片手冊中,這個延時參數H1 在SYSCLK1 與CPU 時鐘的分頻為4 時,最大延時為12*2H+20(ns),H=SYSCLK1/2,在HPI 啟動期間,PLL 沒有倍頻,處于旁通狀態(tài),系統(tǒng)輸入時鐘就是CPU 的工作時鐘,SYSCLK1默認分頻為CPU 時鐘的4 分頻,以輸入時鐘為25MHz 為例,最大延時為:
這個時間長度通常超出了主機端總線周期的軟件配置范圍,所以通過軟件配置增加HCS 的寬度不一定能滿足 HRDY 的最大延時要求。在有的DSP 芯片手冊上只提供了HRDY 的最小延時,最大延時與芯片的優(yōu)先級設置,及系統(tǒng)配置相關而不確定,比如與系統(tǒng)中其它主模塊如EDMA 同時訪問DDR,那么延時與HPI 的優(yōu)先級,EDMA 的優(yōu)先級,EDMA 的burst 長度,以及DDR 的命令排序等配置相關,這樣通過延長主機的總線訪問周期,更加不可靠。
解決辦法:在硬件設計之初,一定要利用HRDY 硬件握手信號[2][3]。雖然有的芯片HPIC 寄存器提供了HRDY 軟件握手方式,只能做為彌補硬件設計之初遺漏HRDY 硬件握手信號的權宜之計,軟件輪循HRDY 的辦法會帶來額外的開銷,降低HPI 總線的吞吐率,增加主機軟件實現的復雜度。而且有的芯片HPI 不支持HRDY 軟件查詢方法,只能通過硬件HRDY 保證數據的有效性。
?

非常好我支持^.^

(4) 100%

不好我反對

(0) 0%

( 發(fā)表人:灰色天空 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?