上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
有声小说,遮天 辰东 小说笔趣阁,我欲封天 耳根 小说

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁 設(shè)為首頁 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠聘英才       大學計劃        關(guān)于我們       技術(shù)論壇
  您的當前位置:ADSP開源社區(qū) >> 技術(shù)中心 >> SHARC 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導航
ADI DSP仿真器
SigmaDSP開發(fā)板
ADI A2B總線開發(fā)板
SHARC DSP開發(fā)板
銷售網(wǎng)絡(luò)
SHARC  
SHARC的軟件程序及技巧
[ 作者:OP ] [ 來源:ADSP開源社區(qū) ] [ 發(fā)布時間:2018-4-13 ]

(這部分重點推薦了 SHARC 處理器的一些外設(shè)單元的程序)

 

PCG(外設(shè)時鐘發(fā)生器)編程

本部分主要討論使用 PCG(精確時鐘發(fā)生器)為 SHARC SPORT 提供時鐘的注意事項。

  • 使用 PCG 產(chǎn)生的信號為 I 2 S 模式的 SPORT 提供 FS 和 SCLK 信號時,需要配置 PCG 的延遲寄存 器,使信號時序與 I 2 S 協(xié)議時序一致。LRCLK 信號必須由串行時鐘的下降沿驅(qū)動。 „
  • 使用 PCG 為 TDM 模式的 SPORT 提供信號時,要求幀同步信號僅在一個串行 bit 時鐘周期保持 有效。注意,TDM 模式的幀同步是電平觸發(fā)的,而不是邊沿觸發(fā)。PCG 脈寬寄存器(PCG_PW) 應該置“1”,這樣幀同步僅在一個串行時鐘周期有效。在這樣的配置下,由于幀同步是單串行時 鐘周期有效,SPORT 是使能還是再次使能的狀態(tài)都沒關(guān)系。如果幀同步無效期間,SPORT 被使能,需要等待直到下個有效幀同步信號。在 PCG 配置需要 50%工作周期的系統(tǒng)下,使用 DAI 中斷來使能 SPORT。

 

假設(shè) PCG 幀同步和時鐘信號在 SPORT 使能或再次使能前啟動,由于串口可以在同步和時鐘信 號啟動后的任何時候使能,可能有以下情形發(fā)生:串口在任何有效同步信號采樣時,開始鎖存(接 收機情形)或驅(qū)動數(shù)據(jù)(發(fā)送機情形)。注意,幀同步信號在 TDM 模式是電平觸發(fā)而不是邊沿觸發(fā) 的。這樣的情況會在串口禁止然后重新使能下反復發(fā)生,以致失去同步。這可能導致通道移位 或者數(shù)據(jù)丟失。啟動串口的正確過程應該是等待幀同步信號無效沿,然后在幀同步信號無效期 間使能串口。這就保證了串口在幀同步信號有效電平期間采樣數(shù)據(jù)。

 

這個過程還應該在串口禁止和重新使能的時候采用,從而保證串口不會在有效幀的中部采樣數(shù) 據(jù)。這個操作由以下過程實現(xiàn)。PCG 幀同步映射到 DAI 中斷。幀同步無效邊沿觸發(fā) DAI 中斷, 這意味著幀同步信號會在一段時間無效,串口應該在幀同步信號無效期間啟動,或者執(zhí)行串口 禁止和重新使能時操作。

 

使用 IDP 使能 I2S(數(shù)據(jù)輸入口)

使用 IDP 從外面的設(shè)備接收數(shù)據(jù),配置成 I2S 模式接收數(shù)據(jù)時,需要按照一定步驟。如果不按此步 驟操作,可能導致通道漂移或交換。

1. 將幀同步信號通過 SRU(信號路由單元)連接到 DAI 中斷。

2. 將中斷配置成幀同步無效邊沿觸發(fā)。

3. 等待 DAI 中斷,在中斷服務子程序中使能 IDP 端口。

4. 通過讀 DAI 中斷鎖存寄存器清除 DAI 中斷。

這個步驟可以保證 IDP 端口在適當時間被使能,從而避免在接收數(shù)據(jù)時發(fā)生通道漂移或交換的情況。

 

DAI 中斷

不同于其它中斷,DAI 中斷不是在 DAI 中斷子程序中自動被清除的。一旦鎖存,中斷標志將保持直 到通過讀 DAI 中斷鎖存寄存器顯式地清除鎖存狀態(tài)。DAI 中斷通過讀取 DAI 鎖存寄存器被清除。如 果此操作沒有發(fā)生,程序?qū)⒃诿看瓮顺鲋袛嗪笤俅芜M入 DAI 中斷服務子程序。

 

在 DMA 中斷服務子程序中禁止外設(shè)功能

SHARC 處理器外設(shè)支持 DMA 數(shù)據(jù)傳輸模式。DMA 中斷在 DMA 傳輸計數(shù)器終止時發(fā)生。當一個 外設(shè)被配置為接收數(shù)據(jù)時,DMA 計數(shù)器在所有數(shù)據(jù)被接收并且搬移到內(nèi)部內(nèi)存中以后終止。當外設(shè)被配置為發(fā)送數(shù)據(jù),即使 DMA 計數(shù)器終止并產(chǎn)生中斷,數(shù)據(jù)還保存在 DMA FIFO 中。如果軟件在 ISR 中關(guān)閉 DMA 和外設(shè),應該先查詢 DMA FIFO 狀態(tài)。當 FIFO 為空時,可以安全關(guān)閉外設(shè),否則 會導致數(shù)據(jù)丟失。

 

SPORT/SPI 雙觸發(fā)

這部分僅適用于 ADSP-21367/8/9 和 ADSP-2137x 處理器。假定 SPI 用于內(nèi)核模式的數(shù)據(jù)傳輸。當內(nèi) 核遇到傳輸緩存空的狀態(tài)時,即產(chǎn)生發(fā)送中斷。在發(fā)送中斷子程序中,軟件將寫一個新的數(shù)值到發(fā) 送緩存中,然后從中斷返回。在此情況,從 ISR 返回后,處理器再次檢測到發(fā)送緩存的空狀態(tài),然 后重新進入 SPI 發(fā)送中斷服務子程序。這樣的狀態(tài)都是由于高度流水線的 IOP 寫操作。寫入發(fā)送緩 存以后,直到數(shù)據(jù)真正被發(fā)送以及傳輸緩存狀態(tài)變化到“非空”狀態(tài),需要 10 個內(nèi)核時鐘周期。因此, 在此情況下,從中斷子程序返回需要延遲至少 10 個內(nèi)核時鐘周期。

 

SHARC PLL 編程

ADSP-2116x SHARC 處理器中,使用 CLKCFG(時鐘配置)信號配置 PLL(以及內(nèi)核時鐘和外部端口時 鐘頻率)。對于 ADSP-2126x,ADSP-2136x 和 ADSP-2137x SHARC 處理器,需要額外的外部 CLKCFG 信號,PLL 可以通過軟件配置。這樣,軟件可以利用電源控制寄存器(PMCTL)中的 PLL 乘法器和分 頻計數(shù)器實現(xiàn)多樣的可編程比率。這也為用戶通過軟件改變內(nèi)核頻率提供了靈活性。為恰當?shù)嘏渲?PLL,推薦使用 Managing the Core PLL on ADSP-2136x SHARC Processor(EE-290)[3]中記述的方法。 EE-290 還提供了代碼例程,以及利用 elfar 工具集成 C 可調(diào)用的 PLL 配置函數(shù)到庫中的詳細步驟。 確保 DIVEN 位在進入和退出 by-pass 模式前被清除。

 

SPORTs 和門控時鐘設(shè)備的接口

有的系統(tǒng)設(shè)計需要將SHARC的SPORT和諸如數(shù)據(jù)轉(zhuǎn)換器或SPI主處理器之類的門控時鐘設(shè)備接口。 為保證與門控時鐘設(shè)備間的恰當操作和數(shù)據(jù)傳輸,Interfacing Gated Clocks to ADSP-21065L SHARC Processors (EE-244)Interfacing AD7676 ADCs to ADSP-21065L SHARC Processor(EE-247)以及 Interfacing AD7676 ADCs to ADSP-21365 SHARC Processor(EE-248)可供參考,同時還有例子說明。

 

調(diào)試技巧

俗話說,防患于未然。系統(tǒng)設(shè)計工程師和軟件工程師應該經(jīng)常查看他們打算使用的 SHARC 處理器 的異常文檔。了解已知硅片問題和建議解決方法,也縮短了開發(fā)周期。對于必須從硬件(例如電路板 設(shè)計)上解決的問題,它能夠幫助您避免昂貴和長時間的電路再版。

 

這一部分講述了通?赡苡龅降膯栴}以及調(diào)試技巧。這些技巧能夠彌補您的其它調(diào)試努力。以下是 最常見的情況。

 

引導失敗

用戶可以使用 JTAG ICE 下載執(zhí)行應用程序,卻不能在引導裝載下執(zhí)行應用程序,這是十分常見的 案例。調(diào)試時請注意以下幾點:

  • 檢查處理器的 BOOTBFG 管腳,確保各自連在適當?shù)臄?shù)字電壓電平高或者低。如果使用電阻來 增加改變引導模式靈活性,確保阻值選擇正確。檢查電平的最好方法就是通過示波器檢測處理 器管腳。
  • 確保 JTAG ICE 的/TRST 信號通過電路板接地。不要讓此信號線懸空。懸空可能導致引導失敗或 其它內(nèi)存訪問失敗。
  • 確保在生成啟動文件(.LDR)前使用正確的引導內(nèi)核。如果使用改進的引導內(nèi)核,請使用 VisualDSP++®應用例程中(例如標志鎖定)提供的默認引導內(nèi)核并使用簡單的例子(比如管腳切換) 來確認基本的引導裝載。
  • 確保在生成.LDR 文件時,選擇正確的參數(shù)。選擇不合適的參數(shù)可能導致引導失敗。
  • 檢查是否使用 ICE(在線硬件仿真器)引導裝載代碼。連接 ICE 到目標板,打開 VisualDSP++的仿 真環(huán)境。打開目標板開始引導裝載。把環(huán)境從“simulator”改變成“emulator”,觀察匯編窗口。它 顯示是否從外部資源裝載引導應用程序。如果沒有看到期望的代碼,引導失敗。還可以使用本 方法檢查處理器是否下載初始的 256 個指令。
  • 確保上電的重啟時序與數(shù)據(jù)手冊一致。
  • 檢查 CLKCFG 信號,保證 PLL 沒有過驅(qū)動。確保所選的比例和 CLKIN 頻率沒有超過內(nèi)核時鐘 的預定范圍。
  • 檢測與引導相關(guān)的信號,例如/BMS(ADSP-21367/8/9 和 ADSP-2137x 的/MS1),/RD,ADD 以及 總線上的 DATA。檢查板上電路完整性,是否板上有開路或者短路情況。還能觀察 RSTOUT 來 確定 PLL 是否鎖定。
  • 檢查引導裝載操作過程中外部總線是否有總線沖突。例如,以 ADSP-21367/8/9 和 ADSP-2137x 處理器為例,/MS2 和/MS3(如果使用)應該有外部的上拉電阻。否則,接口到/MS2 和/MS3 的內(nèi) 存驅(qū)動總線,在引導期間導致總線沖突。

 

應用崩潰

大部分情況,這類問題是在運行應用程序時導致軟件崩潰。有時也會出現(xiàn)處理器停在不明地址,或 重新開始整個應用。導致此結(jié)果的因素有以下幾個:

  • 處理器執(zhí)行間接訪問,可能導致.LDF 文件定義的堆棧空間被破壞。這可能導致程序在運行時所 需要的關(guān)鍵數(shù)據(jù)被損壞,從而導致軟件崩潰。由于可能導致破壞,保證應用程序不會執(zhí)行這樣 的內(nèi)存訪問。程序運行時,可以通過 ICE 利用 V, isualDSP++的硬件斷點特性來調(diào)試。如果處理器 執(zhí)行了這些區(qū)域的非法訪問,這些訪問會被檢測到。
  • „ 檢查應用程序是否執(zhí)行了破壞性的/無意的系統(tǒng)寄存器或 IOP 寄存器訪問,這可能導致應用暫停 或者重新開始。例如,檢查應用程序是否在代碼中設(shè)置了軟重啟/重新引導。檢查間接跳轉(zhuǎn)或調(diào) 用。
  • 由于不合適的退耦/旁路電容,電路板可能出現(xiàn)無法預計的行為,常常是某段代碼錯誤執(zhí)行。保 證電路板上處理器和其它設(shè)備使用了合適的退耦電容和散電容(電容型號/電容值以及放置點都 是關(guān)鍵),這樣才能在系統(tǒng)運行期間提供有效的電流/功率切換。頻繁的內(nèi)核或 I/O 切換需要額外 的切換電流。如果未提供相應電流,一些系統(tǒng)關(guān)閉,應用崩潰或特定代碼的錯誤執(zhí)行的現(xiàn)象可 能發(fā)生。
  • 很好的習慣就是使用校驗和驗證確認引導裝載應用程序的正確性,確保數(shù)據(jù)和代碼是完全正確 下載。bit 錯誤可能在噪聲環(huán)境中發(fā)生。由于 bit 錯誤,處理器可能執(zhí)行錯誤(非法)的指令或處理 錯誤數(shù)據(jù),從而導致不可預料的行為。
  • 當不作為循環(huán)緩存使用時,確保 DAG(數(shù)據(jù)地址發(fā)生器)的長度寄存器(Lx)是顯式被初始化為 0。 當使用 ICE 下載和執(zhí)行代碼,相關(guān)的癥狀可能沒被注意到,因為 ICE 會將長度寄存器初始化為 0,這樣癥狀只有在作為獨立系統(tǒng)進行引導裝載和執(zhí)行時才被發(fā)現(xiàn)。
  • 查找特定工具版本(或升級包)下,VisualDSP++編譯器的已知問題。編譯器可能生成錯誤代碼, 導致無法預料的行為。建議您使用最新版的 VisualDSP++。


       最新版 VisualDSP++的發(fā)布記錄放在 Analog Device 網(wǎng)站:                                      www.analog.com/processors/sharc/evaluationDevelopment/crosscore/toolsUpgrades/index.html

       同時,舊版本 VisualDSP++的發(fā)布記錄位于:              www.analog.com/processors/sharc/evaluationDevelopment/crosscore/toolsUpgrades/archives.html

 

 

數(shù)據(jù)丟失

這是關(guān)于使用 SPORT,SPI 或其它串形接口接收數(shù)據(jù)時,丟失開始的幾個數(shù)據(jù)。這種情況下,確保 從機總是在主機開啟之前啟動。主機提供諸如串行時鐘和幀同步信號,從機從主機接收這些信號。

 

數(shù)據(jù)損壞

這是關(guān)于使用 SPORT,SPI,鏈接端口等串行鏈路接收數(shù)據(jù)時發(fā)生數(shù)據(jù)損壞的情況。這種情況下, 確認信號完整性,考慮由于超調(diào)/欠調(diào)以及由于串話或其它噪聲源產(chǎn)生的噪聲毛刺。嘗試在可能的地 方使用內(nèi)部回環(huán)來排除處理器功能性問題。在無限持續(xù)模式下使用示波器查找 SI 問題。在此情況下, 嘗試對串行時鐘,幀同步等信號使用終端(盡可能是串行終端)。有時,盡管在設(shè)計中有其它功能性建 議彌補,還是出現(xiàn)接收通道的漂移/交替的問題

 

VisualDSP++的小問題

當更換(或升級)VisualDSP++版本時,會出現(xiàn)一些問題。在此情況下,檢查編譯器的差別,已知的工 具問題等。嘗試關(guān)閉代碼優(yōu)化以便進一步找到編譯器優(yōu)化相關(guān)的問題。從一開始盡可能使用最新的 VisualDSP++版本/升級版。

聯(lián)系我們 | 關(guān)于我們 | 免責聲明 | 誠征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁版權(quán)屬Open ADSP所有
北京海淀區(qū)中關(guān)村大街32號新中發(fā)市場3659 郵編100100
電話 18611096839 
粵ICP備14035876號-1