<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > HPI接口在TI DSP中的應用及常見(jiàn)問(wèn)題分析

HPI接口在TI DSP中的應用及常見(jiàn)問(wèn)題分析

作者: 時(shí)間:2013-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

6.2 讀數據不正確

  通常表現為讀讀HPIC,HPIA正常,但讀HPID不正常,前半字為0,后半字正確,對同一個(gè)地址讀兩次,第二次的數據完全正確。

  在案例中,用示波器觀(guān)察HCS與HRDY之間的時(shí)序關(guān)系,發(fā)現HCS的上升沿在HRDY的上升沿之前,即主機在HPI數據有效之前結束了訪(fǎng)問(wèn)周期。HRDY的上升沿其實(shí)是因為HCS的結束而拉高的,并非數據真正有效。

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

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

  HSTROBE的下降沿到數據有效之間的延時(shí)與芯片及的工作頻率相關(guān),以C5502,C5501為例,在芯片手冊中,這個(gè)延時(shí)參數H1在SYSCLK1與CPU時(shí)鐘的分頻為4時(shí),最大延時(shí)為12*2H+20(ns),H=SYSCLK1/2,在HPI啟動(dòng)期間,PLL沒(méi)有倍頻,處于旁通狀態(tài),系統輸入時(shí)鐘就是CPU的工作時(shí)鐘,SYSCLK1默認分頻為CPU時(shí)鐘的4分頻,以輸入時(shí)鐘為25MHz為例,最大延時(shí)為:這個(gè)時(shí)間長(cháng)度通常超出了主機端總線(xiàn)周期的軟件配置范圍,所以通過(guò)軟件配置增加HCS的寬度不一定能滿(mǎn)足HRDY的最大延時(shí)要求。在有的芯片手冊上只提供了HRDY的最小延時(shí),最大延時(shí)與芯片的優(yōu)先級設置,及系統配置相關(guān)而不確定,比如與系統中其它主模塊如EDMA同時(shí)訪(fǎng)問(wèn)DDR,那么延時(shí)與HPI的優(yōu)先級,EDMA的優(yōu)先級,EDMA的burst長(cháng)度,以及DDR的命令排序等配置相關(guān),這樣通過(guò)延長(cháng)主機的總線(xiàn)訪(fǎng)問(wèn)周期,更加不可靠。

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

  6.3 HRDY常高

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

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

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

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

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

  7. 總結

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

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


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: HPI接口 DSP 問(wèn)題分析

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>