新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > HPI接口在TI SOC的應(yīng)用

HPI接口在TI SOC的應(yīng)用

作者: 時(shí)間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

1.2 讀數(shù)據(jù)不正確

通常表現(xiàn)為讀讀C,A 正常,但讀D 不正常,前半字為0,后半字正確,對(duì)同一個(gè)地址讀兩次,第二次的數(shù)據(jù)完全正確。

在案例中,用示波器觀察HCS 與HRDY 之間的時(shí)序關(guān)系,發(fā)現(xiàn)HCS 的上升沿在HRDY 的上升沿之前,即主機(jī)在HPI 數(shù)據(jù)有效之前結(jié)束了訪問周期。HRDY 的上升沿其實(shí)是因?yàn)镠CS 的結(jié)束而拉高的,并非數(shù)據(jù)真正有效。

10.jpg

用戶由于沒有在硬件上將HRDY 與主機(jī)PowerPC 的TA 信號(hào)互連,沒有硬件握手機(jī)制,于是從軟件配置上加大主機(jī)的總線訪問周期,即增加HCS 的寬度,故障現(xiàn)象沒有變化。

原因分析:讀HPID 與HPIC,HPIA 時(shí)序不同,讀HPID 操作需要HPI DMA 從HPIA 所指向的地址讀數(shù)據(jù)到 HPID,會(huì)有時(shí)間上的延時(shí)。而讀HPIC 和HPIA 直接從寄存器讀數(shù)據(jù),沒有延時(shí),所以讀HPIC,HPIA 是正確的。在讀HPID 時(shí),HPI 會(huì)在第一個(gè)HSTROBE 的下降沿后將HRDY 置位,指示數(shù)據(jù)未準(zhǔn)備好的忙狀態(tài),主機(jī)應(yīng)當(dāng)在總線上插入等待周期,數(shù)據(jù)準(zhǔn)備好后HPI 清除HRDY,主機(jī)才可以結(jié)束總線周期,通過HCS 的上升沿將有效數(shù)據(jù)鎖存。

HSTROBE 的下降沿到數(shù)據(jù)有效之間的延時(shí)與芯片及HPI 的工作頻率相關(guān),以C5502,C5501 為例,在芯片手冊(cè)中,這個(gè)延時(shí)參數(shù)H1 在SYSCLK1 與CPU 時(shí)鐘的分頻為4 時(shí),最大延時(shí)為12*2H+20(ns),H=SYSCLK1/2,在HPI 啟動(dòng)期間,PLL 沒有倍頻,處于旁通狀態(tài),系統(tǒng)輸入時(shí)鐘就是CPU 的工作時(shí)鐘,SYSCLK1默認(rèn)分頻為CPU 時(shí)鐘的4 分頻,以輸入時(shí)鐘為25MHz 為例,最大延時(shí)為:

這個(gè)時(shí)間長度通常超出了主機(jī)端總線周期的軟件配置范圍,所以通過軟件配置增加HCS 的寬度不一定能滿足 HRDY 的最大延時(shí)要求。在有的DSP 芯片手冊(cè)上只提供了HRDY 的最小延時(shí),最大延時(shí)與芯片的優(yōu)先級(jí)設(shè)置,及系統(tǒng)配置相關(guān)而不確定,比如與系統(tǒng)中其它主模塊如EDMA 同時(shí)訪問DDR,那么延時(shí)與HPI 的優(yōu)先級(jí),EDMA 的優(yōu)先級(jí),EDMA 的burst 長度,以及DDR 的命令排序等配置相關(guān),這樣通過延長主機(jī)的總線訪問周期,更加不可靠。

解決辦法:在硬件設(shè)計(jì)之初,一定要利用HRDY 硬件握手信號(hào)[2][3]。雖然有的芯片HPIC 寄存器提供了HRDY 軟件握手方式,只能做為彌補(bǔ)硬件設(shè)計(jì)之初遺漏HRDY 硬件握手信號(hào)的權(quán)宜之計(jì),軟件輪循HRDY 的辦法會(huì)帶來額外的開銷,降低HPI 總線的吞吐率,增加主機(jī)軟件實(shí)現(xiàn)的復(fù)雜度。而且有的芯片HPI 不支持HRDY 軟件查詢方法,只能通過硬件HRDY 保證數(shù)據(jù)的有效性。

1.3 HRDY 常高

有的系統(tǒng)在長時(shí)間運(yùn)行中偶爾出現(xiàn)HRDY 常高,導(dǎo)致主機(jī)端總線訪問異常,需要重新上電才能恢復(fù)HPI 的正常操作。這種故障是由于HPI 狀態(tài)機(jī)出現(xiàn)異常。

從實(shí)際故障定位中總結(jié)出以下幾點(diǎn)原因:

A. HPI 的高低半字訪問的順序訪問被其它HPI 訪問打斷:在復(fù)用模式下,一個(gè)完整的HPI 訪問是由高低半字兩次訪問組成,需要嚴(yán)格保證,否則會(huì)破壞HPI 的狀態(tài)機(jī),從而導(dǎo)致不可預(yù)期的后果。

B. 主機(jī)通過HPI 訪問了DSP 內(nèi)部的保留空間,或者破壞了DSP 的程序,數(shù)據(jù)空間,導(dǎo)致DSP 運(yùn)行異常,進(jìn)而導(dǎo)致HPI 狀態(tài)機(jī)異常。

C. 主機(jī)的HSTROBE 信號(hào)有毛刺,或者信號(hào)完整性不好,如下圖中HCS(些案例HSTROBE 是由HCS 控制)的上升沿的回勾,都會(huì)導(dǎo)致HPI 誤判斷為主機(jī)的新的訪問的開始,從而打亂了高低半字的訪問順序要求,導(dǎo)致HPI 狀態(tài)機(jī)的錯(cuò)亂。

11.jpg

7. 總結(jié)

HPI 是一種簡單的異步,只要設(shè)計(jì)中滿足了時(shí)序要求,即可穩(wěn)定工作。在開發(fā)當(dāng)中遇到數(shù)據(jù)讀寫不正確,從HSTROBE 信號(hào)入手檢查與之相關(guān)的信號(hào)的時(shí)序關(guān)系,便可以找出問題原因。另外,信號(hào)完整性是任何系統(tǒng)穩(wěn)定工作的前提。

關(guān)于特定芯片上HPI 的特有功能本文沒有針對(duì)討論,如C6727 的字地址模式和字節(jié)地址模式可通過HPIC配置;C6727 在HPI 啟動(dòng)后ROM bootloader 將HPI 關(guān)閉,需要軟件重新使能才能使用等;以及不同芯片的HPI 啟動(dòng)模式下的跳轉(zhuǎn)方式不同,請(qǐng)參考相應(yīng)芯片的HPI 手冊(cè)及bootloader 手冊(cè)。


上一頁 1 2 3 下一頁

關(guān)鍵詞: 應(yīng)用 SOC TI 接口 HPI

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉