隨著數(shù)字信號處理技術(shù)的迅速發(fā)展,錄音也已經(jīng)進(jìn)入了數(shù)字化的時代。DSP(Digital Signal Processor)為數(shù)字信號處理提供了高效而可靠的硬件基礎(chǔ),已經(jīng)廣泛應(yīng)用于高速自動控制、圖像處理、通信技術(shù)、無線電、語音處理、網(wǎng)絡(luò)設(shè)備、醫(yī)療設(shè)備、儀器儀表和家電等領(lǐng)域。本設(shè)計中所使用的TMS320VC5410就是設(shè)計適用于語音信號處理的DSP芯片。
本文首先對DSP數(shù)字錄音的軟硬件開發(fā)環(huán)境進(jìn)行了介紹,著重論述了AIC32和TMS320C5410的設(shè)計方法、指令系統(tǒng)和內(nèi)部結(jié)構(gòu)以及TMS320C5410的集成開發(fā)環(huán)境CCS。最后,通過在DSP集成開發(fā)環(huán)境CCS上的設(shè)計、仿真和調(diào)試,實現(xiàn)了在DSP實驗箱上進(jìn)行數(shù)字錄音和語音信號處理的設(shè)計功能。
1.開發(fā)軟件簡介.....1
2.數(shù)字錄音機(jī)的原理....2
2.1 TMS320C5410芯片....2
2.2 AIC23芯片.....4
3.硬件電路....6
4調(diào)試過程及結(jié)果分析...8
5.總結(jié)及體會.....8
1.開發(fā)軟件簡介 本次課程設(shè)計采用CCS軟件 CCS5000具有一下特性: TI編譯器的完全集成的環(huán)境: CCS5000目標(biāo)管理系統(tǒng),內(nèi)建編輯器,所有的調(diào)試和分析能力集成在一個Windows環(huán)境中。 對C和DSP匯編文件的目標(biāo)管理: 目標(biāo)編輯器保持對所有文件及相關(guān)內(nèi)容的跟蹤。它只對最近一次編譯中改變過的文件重新編譯,以節(jié)省編譯時間。 高集成的編輯器調(diào)整C和DSP匯編代碼: CCS5000的內(nèi)建編輯器支持C和匯編文件的動態(tài)語法加亮顯示。使用戶能很容易地閱讀代碼和當(dāng)場發(fā)現(xiàn)語法錯誤。 編輯和調(diào)試時的后臺編輯: 用戶在使用編譯器和匯編器時沒有必要退出系統(tǒng)到DOS環(huán)境中,因為CCS5000會自動將這些工具裝載在它的環(huán)境中。在其窗口中,錯誤會加亮顯示只要雙擊錯誤就可以直接到達(dá)出錯處。 在含有浮點并行調(diào)試管理器(PDM)的原有的MS窗口下支持多處理器CCS5000在 Windows95和Windows-me中支持多處理。PDM(調(diào)試管理器)允許將命令傳播給所有的或所選擇的處理器。 在任何算法點觀察信號的圖形窗口探針: 圖形顯示窗口使用戶能夠觀察時域或頻域內(nèi)的信號。對于頻域圖,F(xiàn)FT(快速傅立葉變換)在主機(jī)內(nèi)執(zhí)行,這樣就可以觀察所感興趣的部分而無須改變它的DSP代碼。圖顯示也可以同探針連接,當(dāng)前顯示窗口被更新時,探針被指定,這樣當(dāng)代碼執(zhí)行到達(dá)該點時,就可以迅速地觀察到信號。 文件探針在算法處通過文件提取或加入信號或數(shù)據(jù): CCS5000允許用戶從PC機(jī)讀或?qū)懶盘柫。而不是實時的讀信號,這就可以用已知的例子來仿真算法。 圖形分析: CCS5000的圖形分析能力在其環(huán)境中是集成的。 在后臺(系統(tǒng)命令)執(zhí)行用戶的DOS程序: 用戶可以執(zhí)行CCS5000中的DOS程序,并將其輸出以流水方式送到CCS5000的輸出窗口。且允許用戶將應(yīng)用程序集成到CCS5000。 技術(shù)狀態(tài)觀察窗口: CCS5000的可視窗口允許用戶進(jìn)入C表達(dá)式及相關(guān)變量。結(jié)構(gòu)、數(shù)組、指針都能很簡單地遞歸擴(kuò)展和減少,以便進(jìn)入復(fù)雜結(jié)構(gòu)。 代數(shù)分解窗口: 允許用戶選擇查看寫成代數(shù)表達(dá)式的C格式,提高可讀性 。 目標(biāo)DSP上的幫助: DSP結(jié)構(gòu)和寄存器上的在線幫助可以使用戶不必查看技術(shù)手冊。 用戶擴(kuò)展: 擴(kuò)展語言(GEL)使得用戶可以將自己的菜單項加到CCS5000的菜單欄中。
2.數(shù)字錄音機(jī)的原理 數(shù)字化技術(shù)的迅速發(fā)展,語音信號數(shù)字處理技術(shù)也不斷成熟,可編程器件和功能強(qiáng)大的數(shù)字信號處理器(DSP)的廣泛應(yīng)用,傳統(tǒng)的模擬音像設(shè)備大量地被各種數(shù)字設(shè)備所代替。然而,便攜式的錄音設(shè)備仍以各種模擬媒質(zhì)為主,如常用的磁帶錄音機(jī)。如果要將其錄音以數(shù)字形式的數(shù)據(jù)保存,則應(yīng)將其模擬錄音信號變換成數(shù)字形式的數(shù)據(jù),這就給原始數(shù)據(jù)的保存帶來諸多不便。因此,本文設(shè)計了一款DSP數(shù)字錄音機(jī)。 所謂數(shù)字信號處理,是用數(shù)字或符號的序列來表示信號,通過數(shù)字計算機(jī)或?qū)iT的數(shù)字信號處理器去處理這些序列,提取其中的有用信息。例如:對信號的濾波,增強(qiáng)信號的有用分量,消弱無用分量;或是估計信號的某些特征參數(shù)等?傊彩怯脭(shù)字方式對信號進(jìn)行濾波、變換、增強(qiáng)、壓縮、估計和識別等,都是數(shù)字信號處理的研究對象。 目前,大多數(shù)的DSP系統(tǒng)主要應(yīng)用在高速控制、移動通信、雷達(dá)等方面。本系統(tǒng)將DSP技術(shù)引入到數(shù)字交換機(jī)錄放音系統(tǒng)中來,就是希望利用DSP的特點、借鑒在移動通信中數(shù)字語音信號處理的一些算法和優(yōu)化,能夠研制開發(fā)出體積小、價格低、實時性高且功能完善的錄音系統(tǒng)。
2.1TMS320C5410芯片
2.1.1TMS320C5410芯片簡介 (1) 16位定點DSP芯片,總線結(jié)構(gòu)為改進(jìn)的哈佛結(jié)構(gòu),內(nèi)部有1個17X17位的乘法器; (2) 外接晶振最大為40MHz,通過PLL倍頻最高主頻為160MHz; (3) 片內(nèi)ROM大小為16K×16bit , DARAM大小為8K×16bit, SARAM大小為56K×16bit; (4) 3組多通道緩沖串行口(McBSP),DMA,主機(jī)接口HPI (5) 通用IO引腳(BIO與XF),外部中斷引腳INT0,INT1,INT2,INT3與NMI C5410中的DARAM分成若干塊。由于在每個機(jī)器周期內(nèi),允許對同一DARAM塊尋址(訪問)2次,因此CPU可以在一個機(jī)器周期內(nèi)對同一DARAM塊讀出一次和寫入一次。一般情況下,DARAM總是映象到數(shù)據(jù)存儲器空間,主要用于存放數(shù)據(jù)。但是,它也可以映象到程序存儲器空間,用來存放程序代碼。
2.1.2 TMS320C5410框圖 TMS320C54x DSP 采用先進(jìn)的修正哈佛結(jié)構(gòu)和8總線結(jié)構(gòu),使處理器的性能大大提高。其獨(dú)立的程序和數(shù)據(jù)總線,允許同時訪問程序存儲器和數(shù)據(jù)存儲器,實現(xiàn)高度并行操作。例如,可以在一條指令中,同時執(zhí)行3次讀操作和1次寫操作。此外,還可以在數(shù)據(jù)總線與程序總線之間相互傳送數(shù)據(jù),從而使處理器具有在單個周期內(nèi)同時執(zhí)行算術(shù)運(yùn)算、邏輯運(yùn)算、移位操作、乘法累加運(yùn)算以及訪問程序和數(shù)據(jù)存儲器的強(qiáng)大功能。
2.1.3 TMS320C5410的CPU 先進(jìn)的多總線結(jié)構(gòu)(一條程序總線,3條數(shù)據(jù)總線和4條地址總線); 40位算術(shù)邏輯運(yùn)算單元(ALU),包括1個40位桶形移位寄存器和2個獨(dú)立的40位累加器; 7位*17位并行乘法器,與40位專用加法器相連,用于非流水線式單周期乘法/累加(MAC)運(yùn)算; 比較、選擇、存儲單元(CSSU),用于加法/比較選擇; 指數(shù)編碼器,可以在單個周期內(nèi)計算40位累加器中數(shù)值的指數(shù); 雙地址生成器,包括8個輔助寄存器和2個輔助寄存器算術(shù)運(yùn)算單元(ARAU)。
2.1.4 TMS320C5410存儲器 C54X中的DARAM分成若干塊。由于在每個機(jī)器周期內(nèi),允許對同一DARAM塊尋址(訪問)2次,因此CPU可以在一個機(jī)器周期內(nèi)對同一DARAM塊讀出一次和寫入一次。一般情況下,DARAM總是映象到數(shù)據(jù)存儲器空間,主要用于存放數(shù)據(jù)。但是,它也可以映象到程序存儲器空間,用來存放程序代碼: 192K字可尋址存儲空間(64K字程序存儲器、64K字?jǐn)?shù)據(jù)存儲器以及64K字I/O空間); 片內(nèi)ROM,可配置為程序/數(shù)據(jù)存儲器; 片內(nèi)雙尋址RAM(DARAM); 片內(nèi)單尋址RAM(SARAM);
2.2 AIC23芯片
2.2.1 AIC23基本性能
AIC23是德州儀器公司(TI)生產(chǎn)的高性能音頻A/D、D/A放大電路。外圍接口工作電壓為3.3V,內(nèi)核工作電壓是1.5V,在48kHz采樣率條件下,A/D變換信噪比可達(dá)100dB,其控制口可由硬件設(shè)置為同步置口(SP2)模式或兩線制(2-wire),音頻數(shù)據(jù)接口可采用I2S格式、DSP格式、USB格式及最高位或最低位數(shù)據(jù)調(diào)整格式。音頻數(shù)據(jù)字長可設(shè)置為16、24、20、32位,輸出可直接驅(qū)動耳機(jī),在32位條件下輸出可達(dá)30mW。內(nèi)置前置放大器及偏置電路可直接連接麥克風(fēng)。該芯片功耗很低,在休眠(power-down)狀態(tài)下,功耗小于15uW。
2.2.2 AIC23的內(nèi)部結(jié)構(gòu)框圖
2.2.3 AIC23的控制方式及控制寄存器各位的意義 (1)AIC23的控制接口:AIC23的控制字傳輸可采用兩種方式,即同步串行(SPI)模式和兩線(2-wire)模式,兩種模式由硬件決定。MODE腳接高電平時,控制字傳送用SPI模式,如果MODE腳接低電平時,則采用2-wire模式。在本次實驗中,我們采用SPI模式。 (2)AIC23的控制寄存器 控制寄存器的地址如下表所示:
①.左聲道線路輸入控制寄存器 LRS:左/右聲道線路輸入增益控制調(diào)節(jié),0=同步調(diào)節(jié)禁止,1=同步使能 LIM:左聲道線路輸入靜音控制,0=正常,1=靜音 LIV4~0:左聲道音量控制,11111=±12dB,00000=-34.5dB,步距1.5dB/LSB X:保留 ②.右聲道線路輸入控制寄存器 ③.左聲道耳機(jī)音量控制寄存器 LSR:左/右聲道音量控制同步調(diào)節(jié),0=同步調(diào)節(jié)不使能,1=同步調(diào)節(jié)使能 LZC:左通道過零偵測(防止干擾進(jìn)入耳機(jī)放大器),0=關(guān),1=開 LHV(6~0):耳機(jī)音量控制,1111111=+6dB,0110000=-73dB ④.右聲道耳機(jī)音量控制寄存器 ⑤.濾波器控制寄存器 DACM:D/A變換電路軟件靜音控制,0=不靜音,1=軟件靜音 DEEMP:去加重控制選擇,00=關(guān),01=32kHz,10=44kHz,11=48kHz ADCHP:A/D高通濾波器,0=關(guān)閉,1=開 ⑥.休眠控制器 OFF:芯片休眠控制,0=芯片通電,1=芯片休眠 CLK:時鐘控制,0=時鐘開啟,1=時鐘關(guān)閉 OSC:振蕩器控制,0=振蕩器開啟,1=振蕩器關(guān)閉 OUT:輸出控制,0=輸出開啟,1=輸出關(guān)閉 DAC:D/A變換控制,0=D/A變換開啟,1=D/A變換關(guān)閉 ADC:A/D變換控制,0=A/D變換開啟,1=A/D變換關(guān)閉 MIC:話筒電路控制,0=開啟,1=關(guān)閉 LINE:線路輸入控制,0=開,1=關(guān) ⑦.?dāng)?shù)字音頻接口格式控制寄存器 MS:主/從模式控制位,0=從模式,1=主模式 LRSWAP:D/A左右通道交換控制位,0=不交換,1=交換 LRP:D/A左右數(shù)字聲道幀相位 IWL:數(shù)字音頻字長 FOR:數(shù)字音頻接口格式選擇 3.硬件電路 1、硬件電路圖的主要部分如下圖所示
2、實驗框圖和流程圖
4.調(diào)試過程及結(jié)果分析 調(diào)試過程: 1.在調(diào)試開始的時候,用音頻線連接實驗箱的揚(yáng)聲器和AIC23模塊的LINEOUT或者PHONE端,MIC端口連接一個MIC(這里我們用手機(jī)代替,接入手機(jī)耳機(jī)插口)。 2.打開aic23micphone.pjt工程,這是一個AIC23的程序,編譯。 3.將編譯的aic23micphone.out文件通過 仿真器下載到DSP芯片,執(zhí)行程序。 4.聽到“滴”的一聲以后開始錄音,大概6秒后“滴”的一聲是錄音結(jié)束,接著DSP會循環(huán)回放剛才錄的聲音。如果想再次錄音則需要再次下載并運(yùn)行。 結(jié)果分析 在連接好實驗設(shè)備之后,在手機(jī)里上隨意播放一個音頻文件播放后,可以錄制6秒時間內(nèi)的內(nèi)容,循環(huán)播放。 5.設(shè)計總結(jié)及體會 本次課程設(shè)計是采用TMS320C5410作為語音錄放實現(xiàn)的核心硬件,以AIC23作為數(shù)模轉(zhuǎn)換芯片來實現(xiàn)整個硬件系統(tǒng)。在整個設(shè)計過程中,我們采用了以帶有A/D轉(zhuǎn)換器的AIC23DSP芯片為核心音頻錄放接口器件,結(jié)合TMS320C5410DSP芯片,進(jìn)行了硬件設(shè)計。軟件部分則采用模塊化的設(shè)計方法,用匯編語言來實現(xiàn)。 通過本次課程設(shè)計,進(jìn)一步了解了本門課程《DSP原理及應(yīng)用》。雖然錄音機(jī)很簡陋,但基本模型已具備;但過程中還是有不懂的問題,幸好有老師在,才得以解答我的疑惑;總的來說,本次課程設(shè)計的結(jié)束是非常圓滿的。 - .title "AIC23.asm"
- .mmregs
- .bss timetemp,1
- .bss addrtemp,1
- audio_in .usect "buf",0C000h
- ;定義MCBSP0的各個寄存器
- bsp2 .set 35h
- drr22 .set 30h
- drr12 .set 31h
- dxr22 .set 32h
- dxr12 .set 33h
- spsa2 .set 34h
-
- bsp0 .set 39h
- drr20 .set 20h
- drr10 .set 21h
- dxr20 .set 22h
- dxr10 .set 23h
- spsa0 .set 38h
- spcr10 .set 00h
- spcr20 .set 01h
- rcr10 .set 02h
- rcr20 .set 03h
- xcr10 .set 04h
- xcr20 .set 05h
- srgr10 .set 06h
- srgr20 .set 07h
- pcr0 .set 0eh
- cpldport1 .set 2000h
-
- .def _c_int00,_McBSP_txisr,_McBSP_rvisr
- .data
- audio_table:
- .word 07ff5H,05842H,0fcdcH,0a34dH,0800bH,0a7beH,0324H,05cb3H
- .word 07ff5H,05842H,0fcdcH,0a34dH,0800bH,0a7beH,0324H,05cb3H
-
- .text
- _c_int00: stm #7000h,swwsr ;等待0個時鐘
- ssbx intm
- STM #0b, CLKMD ;switch to DIV mode
-
-
-
- TstStatu:
- LDM CLKMD, A
- AND #01b, A ;poll STATUS bit
- BC TstStatu, ANEQ
- STM #0100001111101111b, CLKMD ;switch to PLL
- RPT #10000
- NOP
- rsbx cpl ;清CPL位=0
- ;初始化cpu完畢,開始初始化MCBSP0
- stm #216ch,pmst
- stm #0080h, imr
- stm #0FFFFh, ifr
- stm #0001h,ar1
- portw ar1,cpldport1 ;切換字寫到CPLD控制寄存器,轉(zhuǎn)為控制字輸出
- rpt #400
- nop ;等400個周期
-
- ld #00h,dp
- stm #spcr10,spsa0 ;接收復(fù)位
- stm #0000h,bsp0
- stm #spcr20,spsa0 ;發(fā)送、采樣、幀復(fù)位
- stm #0000h,bsp0
- stm #spcr10,spsa0 ;12、11位為10,進(jìn)入SPI模式,7位(DXENA)為0,不起動DX延時
- stm #1000h,bsp0
- stm #pcr0,spsa0 ;1位置1,數(shù)據(jù)下沿發(fā)送上沿接收,3位置1,幀同步為低電平有效,9位置1?BLCK輸出,11位置1,BFSX腳為高電澆
- stm #0a0ah,bsp0
- stm #srgr10,spsa0 ;7~0位置64h(100),100分頻
- stm #0064h,bsp0
- stm #srgr20,spsa0 ;13位置1,時鐘源于CPU,12位置0,發(fā)送幀同步
- stm #2000h,bsp0
- stm #rcr10,spsa0 ;14~8位置0,一幀一個字,7~5位為010,一個字16位
- stm #0040h,bsp0
- stm #rcr20,spsa0 ;15位置0,單階段幀,1、0位置01保證SPI正常工作
- stm #0001h,bsp0
- stm #xcr10,spsa0 ;14~8位置0,一幀一個字,7~5位為010,一個字16位
- stm #0040h,bsp0
- stm #xcr20,spsa0 ;15位置0,單階段幀,1、0位置01保證SPI正常工作
- stm #0001h,bsp0
- stm #spcr20,spsa0 ;6位GRST為1,采樣脫離復(fù)位,F(xiàn)RST是否要脫離復(fù)位?
- orm #0040h,bsp0
- rpt #400 ;等兩個以上位時鐘
- nop
- stm #spcr10,spsa0 ;接收離開復(fù)位
- orm #0001h,bsp0
- stm #spcr20,spsa0 ;發(fā)送離開復(fù)位
- orm #0001h,bsp0
- rpt #400
- nop
- LOOP2
- ;初始化AIC23為DAC、ADC、CLKOUT、DSP模式結(jié)束
- stm #1e00h,dxr10
- rpt #3000
- nop
- stm #05ffh,dxr10 ;過零偵測開,音量為6dB
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #07ffh,dxr10 ;過零偵測開,音量為6dB
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #0914h,dxr10 ;伴音使能,DAC使能,MIC輸入、BYPASS不使能
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #0a02h,dxr10 ;DAC靜音不使能,去加重為32KHz,ADC高通濾波器不使能
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #0097h,dxr10 ;左聲道線路輸入0dB,線路輸入靜音
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #0297h,dxr10 ;右聲道線路輸入0dB,線路輸入靜音
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #0C01h,dxr10 ;POWER、CLOCK、OSC、OUT、DAC、ADC、MIC打開line in關(guān)閉
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #0e53h,dxr10 ;6位為1,AIC23在DSP模式中為主器件,4位為1,第二個時鐘上沿數(shù)據(jù)可用,字長16位,DSP模式
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #100Dh,dxr10 ;USB模式,8KHz采樣率,輸入時鐘為MCLK,輸出時鐘為MCLK
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- stm #1201h,dxr10 ;數(shù)字接口激活
- rpt #3000 ;延時等待數(shù)據(jù)傳送完畢
- nop
- ; B LOOP2
- ;AIC23的DAC輸出設(shè)置結(jié)束,開始輸出音頻數(shù)據(jù)
- ;開始設(shè)置MCBSP2為DSP模式從器件,
- stm #spcr10,spsa2 ;RRST為0接收復(fù)位
- stm #0000h,bsp2
- stm #spcr20,spsa2 ;XRST為0,GRST為0,F(xiàn)RST為0發(fā)送、采樣、幀復(fù)位
- stm #0000h,bsp2
- stm #spcr10,spsa2 ;5、4位為00,接收完成產(chǎn)生中斷,進(jìn)入非SPI模式,7位(DXENA)為0,不起動DX延時
- stm #0000h,bsp2
- stm #spcr20,spsa2 ;5、4位為00,發(fā)送完成產(chǎn)生中斷,采樣,幀同步復(fù)位
- stm #0200h,bsp2
- stm #pcr0,spsa2 ;幀同步,采樣為外部輸入,外部時鐘極性反相
- stm #0006h,bsp2
- stm #rcr10,spsa2 ;14~8位置0,一幀兩個字,7~5位為010,一個字16位
- stm #0140h,bsp2
- stm #rcr20,spsa2 ;15位置0,單階段幀,第二階一個字,16位字長1、0位置01延遲一個位時鐘數(shù)據(jù)有效
- stm #0001h,bsp2
- stm #xcr10,spsa2 ;14~8位置0,一幀兩個字,7~5位為010,一個字16位
- stm #0140h,bsp2
- stm #xcr20,spsa2 ;15位置0,單階段幀,第二階一個字,16位字長1、0位置01延遲一個位時鐘數(shù)據(jù)有效
- stm #0001h,bsp2
- rpt #40 ;等兩個以上位時鐘
- nop
- stm #0000h,dxr12 ;傳起始數(shù)據(jù)到AIC23
- stm #0000h,dxr22
- rpt #400 ;等兩個以上位時鐘
- nop
- ;MCBSP0口設(shè)置為DSP模式結(jié)束,輸出數(shù)據(jù)
- nop
- stm #drr12, ar5
- ldu *ar5, a
- stm #drr22, ar5
- ldu *ar5, a
- st #audio_table, ar5
- st #15, *(timetemp)
- st #audio_table, *(addrtemp)
- st #15, ar4
- rsbx intm
- stm #spcr20,spsa2 ;發(fā)送離開復(fù)位
- orm #0001h,bsp2
- nop
- nop
-
- stm #4000h,brc
- rptb delay1s-1
- rpt #01800h
- nop
- delay1s: nop
- ssbx intm
- stm #spcr20,spsa2 ;發(fā)送結(jié)束
- orm #0000h,bsp2
- stm #2000h,brc
- rptb delay2s-1
- rpt #01800h
- nop
- delay2s: nop
- stm #spcr10,spsa2 ;接收離開復(fù)位
- orm #0001h,bsp2
- stm #0040h, imr
- stm #0040h, ifr
- st #audio_in, ar5
- st #0Bfffh, ar4
- rsbx intm
- loop4
- ldm ar4,b
- nop
- nop
- bc mic,beq
- b loop4
- mic
- ssbx intm
- stm #spcr10,spsa2 ;RRST為0接收復(fù)位
- stm #0000h,bsp2
- stm #spcr20,spsa2 ;XRST為0,GRST為0,F(xiàn)RST為0發(fā)送、采樣、幀復(fù)位
- stm #0000h,bsp2
- stm #spcr10,spsa2 ;5、4位為00,接收完成產(chǎn)生中斷,進(jìn)入非SPI模式,7位(DXENA)為0,不起動DX延時
- stm #0000h,bsp2
- stm #spcr20,spsa2 ;5、4位為00,發(fā)送完成產(chǎn)生中斷,采樣,幀同步復(fù)位
- stm #0200h,bsp2
- stm #pcr0,spsa2 ;幀同步,采樣為外部輸入,外部時鐘極性反相
- stm #0006h,bsp2
- stm #rcr10,spsa2 ;14~8位置0,一幀兩個字,7~5位為010,一個字16位
- stm #0140h,bsp2
- stm #rcr20,spsa2 ;15位置0,單階段幀,第二階一個字,16位字長1、0位置01延遲一個位時鐘數(shù)據(jù)有效
- stm #0001h,bsp2
- stm #xcr10,spsa2 ;14~8位置0,一幀兩個字,7~5位為010,一個字16位
- stm #0140h,bsp2
- stm #xcr20,spsa2 ;15位置0,單階段幀,第二階一個字,16位字長1、0位置01延遲一個位時鐘數(shù)據(jù)有效
- stm #0001h,bsp2
- rpt #40 ;等兩個以上位時鐘
- nop
- stm #0000h,dxr12 ;傳起始數(shù)據(jù)到AIC23
- stm #0000h,dxr22
- stm #0080h, imr
- stm #0080h, ifr
- stm #spcr20,spsa2 ;發(fā)送離開復(fù)位
- orm #0001h,bsp2
- nop
- nop
- st #audio_table, ar5
- st #15, *(timetemp)
- st #audio_table, *(addrtemp)
- st #15, ar4
- rsbx intm
- stm #3000h,brc
- rptb delay3s-1
- rpt #01800h
- nop
- delay3s: nop
- st #audio_in, ar5
- st #0bfffh, *(timetemp)
- st #audio_in, *(addrtemp)
- st #0bfffh, ar4
- b $
-
-
- _McBSP_txisr:
-
- ld *ar5+, A
- stlm a, dxr12
- stlm a, dxr22
- nop
- nop
- banz goon, *ar4-
- mvdm timetemp, ar4
- mvdm addrtemp, ar5
- goon
- nop
- nop
- rete
- _McBSP_rvisr:
-
- stm #drr12, ar2
- ldu *ar2, a
- stl a, *ar5+
- stm #drr22, ar2
- ldu *ar2, a
- mar *ar4-
- goon2
- reted
- nop
- nop
- .end
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
aaa.doc
(1.95 MB, 下載次數(shù): 52)
2019-4-4 22:00 上傳
點擊文件名下載附件
|