




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第九章第九章 多通道音頻串行端口多通道音頻串行端口(McASP) 9.1 McASP 術(shù)語術(shù)語uMcASP(Multichannel Audio Serial Port)是一個通用音頻是一個通用音頻串行端口。串行端口。uMcASP包括發(fā)送和接收部分,它們之間可以同步運行,包括發(fā)送和接收部分,它們之間可以同步運行,也可以完全獨立地使用各自的主時鐘,位時鐘和幀同步信也可以完全獨立地使用各自的主時鐘,位時鐘和幀同步信號,并且可以使用具有不同位流格式的傳輸模式。號,并且可以使用具有不同位流格式的傳輸模式。uMcASP模塊包括模塊包括16個串行器,可以單獨激活來進行發(fā)送個串行器,可以單獨激活來進行發(fā)送或
2、接收。另外,所有的或接收。另外,所有的McASP引腳都可以被配置為通用引腳都可以被配置為通用輸入輸出輸入輸出(GPIO)引腳。引腳。 位、字和單元的定義位、字和單元的定義 u位位(Bit):位是串行數(shù)據(jù)流中的最小組成部分。每個位的開始和結(jié)束都是用一個串行:位是串行數(shù)據(jù)流中的最小組成部分。每個位的開始和結(jié)束都是用一個串行時鐘的邊沿作為標(biāo)志。時鐘的邊沿作為標(biāo)志。u字字(Word):字是一組位,它組成了在:字是一組位,它組成了在DSP和外部器件之間傳輸?shù)臄?shù)據(jù)。和外部器件之間傳輸?shù)臄?shù)據(jù)。 u單元單元(Slot):一個單元包括組成字的那些位。有時為了將字填充到對于:一個單元包括組成字的那些位。有時為了將
3、字填充到對于DSP和外部器和外部器件接口來說合適的位數(shù),單元也包括那些用來填充字的附加位。件接口來說合適的位數(shù),單元也包括那些用來填充字的附加位。在一個單元內(nèi),這些位可以是最高位先進或先出在一個單元內(nèi),這些位可以是最高位先進或先出McASP,也可以是最低位。當(dāng)字的,也可以是最低位。當(dāng)字的長度小于單元長度時,字可以排列到單元的左邊長度小于單元長度時,字可以排列到單元的左邊(開始開始)也可以排在單元的右邊也可以排在單元的右邊(末尾末尾)。不屬于字的附加位可以用不屬于字的附加位可以用0、1或者字中的一位或者字中的一位(一般是一般是MSB或或LSB)來填充。來填充。 Most Significant
4、Bit Least Significant Bit單元內(nèi)位序和字對齊方式單元內(nèi)位序和字對齊方式 幀定義及幀同步寬度幀定義及幀同步寬度u幀幀(Frame):一幀可以包括一個或多個單元,這由具體協(xié):一幀可以包括一個或多個單元,這由具體協(xié)議確定議確定9.2.1 McASP的接口信號的接口信號 McASP包括以下引腳:包括以下引腳:u串行數(shù)據(jù)引腳串行數(shù)據(jù)引腳AXRn:每個:每個McASP達到達到16個個u發(fā)送時鐘發(fā)送時鐘 AHCLKX:McASP的發(fā)送高頻主時鐘的發(fā)送高頻主時鐘 ACLKX:McASP的發(fā)送位時鐘的發(fā)送位時鐘u發(fā)送幀同步信號發(fā)送幀同步信號AFSXu接收時鐘接收時鐘 AHCLKR:McA
5、SP的接收高頻主時鐘的接收高頻主時鐘 ACLKR:McASP的接收位時鐘的接收位時鐘u接收幀同步信號接收幀同步信號AFSRu靜音靜音 AMUTEIN:McASP的靜音輸入的靜音輸入(從外部從外部器件器件) AMUTE:McASP的靜音輸出的靜音輸出McASP在數(shù)字音頻編碼在數(shù)字音頻編碼/解碼系統(tǒng)中應(yīng)用的例子解碼系統(tǒng)中應(yīng)用的例子 McASP到6通道DAC和2通道DAC McASP到數(shù)字放大器 McASP在數(shù)字音頻編碼在數(shù)字音頻編碼/解碼系統(tǒng)中應(yīng)用的例子解碼系統(tǒng)中應(yīng)用的例子 作為數(shù)字音頻編碼器的McASP McASP在數(shù)字音頻編碼在數(shù)字音頻編碼/解碼系統(tǒng)中應(yīng)用的例子解碼系統(tǒng)中應(yīng)用的例子 9.2.2
6、 寄存器寄存器 uMcASP 模塊所使用的寄存器如表模塊所使用的寄存器如表5-2所示,具體內(nèi)容請閱所示,具體內(nèi)容請閱讀參考文獻讀參考文獻3“TMS320C672x DSP Multichannel Audio Serial Port (McASP) Reference Guide” (SPRU878A.pdf) 參見課本P179 9.2.3 時鐘和幀同步信號發(fā)生器時鐘和幀同步信號發(fā)生器 McASP的時鐘發(fā)生器能產(chǎn)生獨立的發(fā)送和接收時鐘,可以對它們單的時鐘發(fā)生器能產(chǎn)生獨立的發(fā)送和接收時鐘,可以對它們單獨進行編程,它們相互之間可以完全異步。串行時鐘(位速率時鐘)獨進行編程,它們相互之間可以完全異步
7、。串行時鐘(位速率時鐘)可以源自:可以源自:u內(nèi)部內(nèi)部 - 將內(nèi)部時鐘源通過兩個分頻器產(chǎn)生時鐘將內(nèi)部時鐘源通過兩個分頻器產(chǎn)生時鐘u外部外部 - 直接由直接由ACLKR/X引腳輸入引腳輸入u混合混合 - 一個外部高頻時鐘輸入到一個外部高頻時鐘輸入到McASP的的AHCLKX引腳或引腳或AHCLKR引腳,然后被分頻產(chǎn)生位速率時鐘引腳,然后被分頻產(chǎn)生位速率時鐘 在內(nèi)部和混合的情況下,位速率時鐘信號是內(nèi)部產(chǎn)生的,需要由在內(nèi)部和混合的情況下,位速率時鐘信號是內(nèi)部產(chǎn)生的,需要由ACLKX引腳或引腳或ACLKR引腳引出。在內(nèi)部產(chǎn)生的情況下,一個內(nèi)部產(chǎn)引腳引出。在內(nèi)部產(chǎn)生的情況下,一個內(nèi)部產(chǎn)生的高頻時鐘由生的
8、高頻時鐘由ACLKX引腳或引腳或ACLKR引腳引出作為系統(tǒng)中其它部分引腳引出作為系統(tǒng)中其它部分的參考時鐘。的參考時鐘。McASP需要以位時鐘和幀同步信號的最小值運行,并需要以位時鐘和幀同步信號的最小值運行,并且能夠使這些時鐘以一個外部高頻主時鐘作為基準(zhǔn)。且能夠使這些時鐘以一個外部高頻主時鐘作為基準(zhǔn)。 1. 發(fā)送時鐘發(fā)送時鐘 發(fā)送時鐘由寄存器發(fā)送時鐘由寄存器ACLKXCTL和和AHCLKXCTL進行進行配置配置 XCLK邊沿搬移數(shù)據(jù)ACLKX 內(nèi)部/外部位時鐘分頻器AHCLKX 內(nèi)部/外部高頻時鐘分頻器 2. 接收時鐘接收時鐘接收時鐘由寄存器接收時鐘由寄存器ACLKRCTL和和AHCLKRCTL
9、進進行配置行配置 3. 幀同步信號發(fā)生器幀同步信號發(fā)生器幀同步信號有兩種不同的模式:突發(fā)幀同步信號有兩種不同的模式:突發(fā)式和式和TDM式。幀同步信號的選擇是通式。幀同步信號的選擇是通過對接收和發(fā)送幀同步信號控制寄存過對接收和發(fā)送幀同步信號控制寄存器器(AFSRCTL和和AFSXCTL)的編程來的編程來控制的。控制的。這些選擇包括:這些選擇包括:內(nèi)部產(chǎn)生或外部產(chǎn)生;內(nèi)部產(chǎn)生或外部產(chǎn)生;幀同步信號極性,上升沿或下降沿;幀同步信號極性,上升沿或下降沿;幀同步信號寬度,一位或一個字;幀同步信號寬度,一位或一個字;位延遲,在第一個數(shù)據(jù)位前的位延遲,在第一個數(shù)據(jù)位前的0、1或或2個時鐘周期。個時鐘周期。利
10、用利用McASP時鐘和幀的靈活性進行處理的例子時鐘和幀的靈活性進行處理的例子 u以以48 kHz 的速率從的速率從DVD中接收數(shù)據(jù),但是以中接收數(shù)據(jù),但是以96 kHz或或192 kHz的速率輸出解碼的音頻。這可以通過輸入一個高的速率輸出解碼的音頻。這可以通過輸入一個高頻主時鐘,以內(nèi)部產(chǎn)生的位時鐘速率的頻主時鐘,以內(nèi)部產(chǎn)生的位時鐘速率的8分頻進行接收,分頻進行接收,以以4分頻或分頻或2分頻進行發(fā)送來實現(xiàn)。分頻進行發(fā)送來實現(xiàn)。u以一個取樣速率以一個取樣速率(如:如:44.1 kHz)接收數(shù)據(jù),但以不同的取接收數(shù)據(jù),但以不同的取樣速率樣速率(如:如:48 kHz)發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)。 9.2.4
11、串行器串行器u串行器由寄存器串行器由寄存器SRCTLn來控制。串行器負(fù)責(zé)將串行數(shù)據(jù)移入或移出來控制。串行器負(fù)責(zé)將串行數(shù)據(jù)移入或移出McASP。每一個串行器包括一個每一個串行器包括一個移位寄存器移位寄存器(XRSR),數(shù)據(jù)緩存器數(shù)據(jù)緩存器(XRBUF),控制寄存器控制寄存器(SRCTL)。u接收,數(shù)據(jù)通過接收,數(shù)據(jù)通過AXRn引腳移入移位寄存器引腳移入移位寄存器XRSR。在整個數(shù)據(jù)單元都被收集到。在整個數(shù)據(jù)單元都被收集到了了XRSR之后,接著這些數(shù)據(jù)就被復(fù)制到數(shù)據(jù)緩存之后,接著這些數(shù)據(jù)就被復(fù)制到數(shù)據(jù)緩存XRBUF中?,F(xiàn)在中?,F(xiàn)在DSP就可以通就可以通過過RBUF寄存器寄存器(接收接收XRBUF的
12、別名的別名),經(jīng)格式化單元讀取數(shù)據(jù)了。,經(jīng)格式化單元讀取數(shù)據(jù)了。u發(fā)送,發(fā)送,DSP芯片通過向芯片通過向XBUF寄存器寄存器(發(fā)送發(fā)送XRBUF的別名的別名)中寫入數(shù)據(jù),經(jīng)過發(fā)送中寫入數(shù)據(jù),經(jīng)過發(fā)送格式化單元,數(shù)據(jù)從格式化單元,數(shù)據(jù)從XRBUF復(fù)制到復(fù)制到XRSR中,由中,由AXRn引腳移出引腳移出(跟串行時鐘同跟串行時鐘同步步)。 9.2.5 格式化單元格式化單元McASP有兩個數(shù)據(jù)格式化單元,一個用作發(fā)送,一個用作接收。因為所有的發(fā)有兩個數(shù)據(jù)格式化單元,一個用作發(fā)送,一個用作接收。因為所有的發(fā)送器使用同一個數(shù)據(jù)格式化單元,因此送器使用同一個數(shù)據(jù)格式化單元,因此McASP一次只能支持一種發(fā)送
13、格式。例一次只能支持一種發(fā)送格式。例如,當(dāng)如,當(dāng)McASP在串行器在串行器1上發(fā)送上發(fā)送“左對齊左對齊”格式時,就不會在串行器格式時,就不會在串行器0上以上以“I2S格式格式”發(fā)送。同樣的,發(fā)送。同樣的,McASP的接收部分也是一次只支持一種接收格式,并且的接收部分也是一次只支持一種接收格式,并且這種格式對于所有的接收串行器都適用。然而,這種格式對于所有的接收串行器都適用。然而,McASP可以以一種格式發(fā)送而可以以一種格式發(fā)送而以一種完全不同的格式接收。以一種完全不同的格式接收。 格式化單元包括三個部分:格式化單元包括三個部分: u位屏蔽和填充位屏蔽和填充(屏蔽位,進行符號擴展屏蔽位,進行符號
14、擴展)u旋轉(zhuǎn)旋轉(zhuǎn)(字內(nèi)對齊數(shù)據(jù)字內(nèi)對齊數(shù)據(jù))u位翻轉(zhuǎn)位翻轉(zhuǎn)(選擇是選擇是MSB在前還是在前還是LSB在前在前)u位屏蔽和填充部分包括一個完整的32位屏蔽寄存器,它允許選定位完全通過或者被屏蔽掉,然后插入一個0,一個1或者原來的32位中的其中一位來作為填充值填充被屏蔽了的位。在最后一種選擇中,當(dāng)在符號位被選擇用來填充剩余位時允許進行符號擴展。u旋轉(zhuǎn)部分進行4的倍數(shù)位(0到28位之間)的位旋轉(zhuǎn),可以通過(R/X)FMT寄存器編程進行控制。注意:這是一個旋轉(zhuǎn)過程,不是移位過程,因此在旋轉(zhuǎn)操作中,第0位被移位到第31位。u位翻轉(zhuǎn)部分或者是讓32位全部直接通過,或者是交換他們。這對于MSB在前或者LSB
15、在前的數(shù)據(jù)格式都是允許。如果使能位未翻轉(zhuǎn),McASP就會自然的以LSB在前的次序進行發(fā)送和接收。u最后要注意,(R/X)FMT的(R/X)DATDLY位也可以決定數(shù)據(jù)的格式。例如:對于I2S格式和左對齊格式之間的差別就是由幀同步信號的邊沿和單元的第一個數(shù)據(jù)位之間的延遲決定的。對于I2S格式,(R/X)DATDLY需要設(shè)置為1個時鐘延遲,然而左對齊格式就需要設(shè)置為0個時鐘延遲。 9.2.5 格式化單元格式化單元9.2.6 時鐘檢查電路u音頻系統(tǒng)中最普遍的誤差源是片外DIR電路不穩(wěn)定引起的串行時鐘錯誤。為了迅速檢查出時鐘錯誤,在McASP中包含了一個用于發(fā)送和接收時鐘的時鐘檢查電路,因為這兩個時鐘
16、是可以源于片外的。時鐘檢查電路可以檢測時鐘錯誤并能從錯誤時鐘中恢復(fù)。對于它的使用與編程請參考相關(guān)器件數(shù)據(jù)手冊。 9.2.7 引腳控制引腳控制除了除了AMUTEIN外的外的McASP的所有引腳都是雙向輸入的所有引腳都是雙向輸入/輸出引腳。而且,這些輸出引腳。而且,這些雙向引腳既可以作為雙向引腳既可以作為McASP引腳使用也可以作為通用輸入引腳使用也可以作為通用輸入/輸出輸出(GPIO)引腳引腳。由下列寄存器來控制引腳功能:。由下列寄存器來控制引腳功能:u引腳功能寄存器引腳功能寄存器(PFUNC):選擇引腳是作為:選擇引腳是作為McASP引腳還是引腳還是GPIO引腳。引腳。u引腳方向寄存器引腳方向
17、寄存器(PDIR):選擇引腳是輸入還是輸出:選擇引腳是輸入還是輸出u引腳數(shù)據(jù)輸入寄存器引腳數(shù)據(jù)輸入寄存器(PDIN):顯示引腳的輸入數(shù)據(jù):顯示引腳的輸入數(shù)據(jù)u引腳數(shù)據(jù)輸出寄存器引腳數(shù)據(jù)輸出寄存器(PDOUT):如果引腳被配置為通用:如果引腳被配置為通用(GPIO)輸出口輸出口(PFUNCn = 1 and PDIRn = 1),那么數(shù)據(jù)就會由此引腳輸出。在引腳被,那么數(shù)據(jù)就會由此引腳輸出。在引腳被配置為配置為McASP引腳時引腳時(PFUNCn = 0)此寄存器不可用。此寄存器不可用。u引腳數(shù)據(jù)設(shè)置寄存器引腳數(shù)據(jù)設(shè)置寄存器(PDSET):PDOUT的別名。向的別名。向PDSETn寫入寫入1就會
18、將就會將相應(yīng)相應(yīng)PDOUTn設(shè)置為設(shè)置為1。寫入。寫入0沒有影響。僅在引腳配置為沒有影響。僅在引腳配置為GPIO輸出時輸出時(PFUNCn = 1,PDIRn = 1) 此寄存器可用。此寄存器可用。u引腳數(shù)據(jù)清除寄存器引腳數(shù)據(jù)清除寄存器(PDCLR):PDOUT的別名。向的別名。向PDCLRn寫入一個寫入一個1就會將相應(yīng)就會將相應(yīng)PDOUTn設(shè)置為設(shè)置為0。寫入。寫入0沒有影響。僅在引腳配置為沒有影響。僅在引腳配置為GPIO輸出輸出時時(PFUNCn = 1,PDIRn = 1) 此寄存器可用。此寄存器可用。 McASP引腳控制方框圖引腳控制方框圖 1. McASP引腳控制引腳控制u即使即使M
19、cASP引腳被用作串行通道功能引腳被用作串行通道功能(非通用輸入輸出口非通用輸入輸出口),也必須正確的設(shè)置也必須正確的設(shè)置McASP GPIO寄存器寄存器PFUNC和和PDIR。u當(dāng)使用這些引腳的串行通道功能時,必須將每個引腳的當(dāng)使用這些引腳的串行通道功能時,必須將每個引腳的PFUNCn清零,有些輸出要求清零,有些輸出要求PDIRn=1,如時鐘引腳作為,如時鐘引腳作為時鐘輸出使用時,串行數(shù)據(jù)引腳作為發(fā)送使用時,以及時鐘輸出使用時,串行數(shù)據(jù)引腳作為發(fā)送使用時,以及AMUTE作為靜音輸出使用時都有這樣的要求。時鐘輸入和作為靜音輸出使用時都有這樣的要求。時鐘輸入和配置為接收的引腳必須設(shè)置配置為接收的
20、引腳必須設(shè)置PDIRn=0。 2. GPIO引腳控制引腳控制將將PFUNCn設(shè)置為設(shè)置為1來進行來進行GPIO操作,配置操作,配置PDIRn為要求的方向,為要求的方向,PDOUT,PDSET,PDCLR控制引腳的輸出值。不管控制引腳的輸出值。不管PDIR和和PFUNC的設(shè)置如何,的設(shè)置如何,PDIN通常反映引腳的狀態(tài)。通常反映引腳的狀態(tài)。將引腳用作將引腳用作GPIO引腳的例子引腳的例子 例例5-1:通用輸入引腳:通用輸入引腳PDIRn = 0 (輸入輸入)PFUNCn = 1 (GPIO功能功能)可以讀可以讀PDIN寄存器來獲得引腳輸入狀態(tài)寄存器來獲得引腳輸入狀態(tài)例例5-2:通用輸出引腳:通用
21、輸出引腳使用使用PDOUT激活激活PDIRn = 0 (默認(rèn)為輸入默認(rèn)為輸入)PFUNCn = 1 (GPIO功能功能)PDOUTn = 需要的輸出值需要的輸出值PDIRn = 1 (在在PDOUTn 配置為需要的值后變?yōu)檩敵雠渲脼樾枰闹岛笞優(yōu)檩敵?例例5-3:通用輸出引腳:通用輸出引腳使用使用PDSET將數(shù)據(jù)從將數(shù)據(jù)從0變到變到1如果引腳被配置為通用輸出引腳,并輸出如果引腳被配置為通用輸出引腳,并輸出0,若將輸出從,若將輸出從0變?yōu)樽優(yōu)?,推薦使用,推薦使用PDSET寄存器而不是使用寄存器而不是使用PDOUT寄存器。這是因寄存器。這是因為對為對PDSET寄存器的寫操作僅僅影響所關(guān)心的引腳。
22、將一個引寄存器的寫操作僅僅影響所關(guān)心的引腳。將一個引腳從腳從0變到變到1,要進行如下操作:,要進行如下操作:置位置位PDSETn,將置位相應(yīng)的,將置位相應(yīng)的PDOUTn。例例2-4:通用輸出引腳:通用輸出引腳使用使用PDCLR將數(shù)據(jù)從將數(shù)據(jù)從1變到變到0如果引腳被配置為通用輸出引腳,并輸出如果引腳被配置為通用輸出引腳,并輸出1,若將輸出從,若將輸出從1變?yōu)樽優(yōu)?,推薦使用,推薦使用PDCLR寄存器而不是使用寄存器而不是使用PDOUT寄存器。這是寄存器。這是因為對因為對PDCLR寄存器的寫操作僅僅影響所關(guān)心的引腳。將一寄存器的寫操作僅僅影響所關(guān)心的引腳。將一個引腳從個引腳從1變到變到0,要進行如
23、下操作:,要進行如下操作:設(shè)置設(shè)置PDCLRn,將清零相應(yīng)的,將清零相應(yīng)的PDOUTn。將引腳用作將引腳用作GPIO引腳的例子引腳的例子 9.3.1 McASP 啟動與初始化啟動與初始化按照下面的步驟來配置按照下面的步驟來配置McASP(1) 通過設(shè)置通過設(shè)置GBLCTL = 0復(fù)位復(fù)位McASP到缺省值到缺省值(2) 配置除配置除GBLCTL之外的所有之外的所有McASP寄存器寄存器u省電和仿真管理:省電和仿真管理:PWRDEMUu接收寄存器:接收寄存器:RMASK、RFMT、AFSRCTL、ACLKRCTL、AHCLKRCTL、RTDM、RINTCTL、 RCLKCHK。 如果使用外部時鐘
24、如果使用外部時鐘AHCLKR或或ACLKR,那么為了,那么為了GBLCTL寄存寄存器的正確同步,必須提前提供時鐘信號器的正確同步,必須提前提供時鐘信號u發(fā)送寄存器:發(fā)送寄存器:XMASK、XFMT、AFSXCTL、ACLKXCTL、AHCLKXCTL、XTDM、XINTCTL、 XCLKCHK。如果使用外部時鐘。如果使用外部時鐘AHCLKX或或ACLKX,那么為了,那么為了GBLCTL寄存器寄存器的正確同步,必須提前提供時鐘信號的正確同步,必須提前提供時鐘信號u 串行器寄存器:串行器寄存器:SRCTLnu 全局寄存器:全局寄存器:PFUNC、PDIR、DITCTL、DLBCTL、AMUTE。注
25、意只有在前面步驟中時。注意只有在前面步驟中時鐘和幀設(shè)置完后才能對鐘和幀設(shè)置完后才能對PDIR進行設(shè)置。這是因為一旦一個時鐘引腳被配置為輸出,時鐘引進行設(shè)置。這是因為一旦一個時鐘引腳被配置為輸出,時鐘引腳就開始以時鐘控制寄存器所定義的速率輸出時鐘信號。因此必須確保在將引腳設(shè)置為輸腳就開始以時鐘控制寄存器所定義的速率輸出時鐘信號。因此必須確保在將引腳設(shè)置為輸出前對時鐘控制寄存器進行正確配置。這一要求對幀同步信號引腳也同樣適用。出前對時鐘控制寄存器進行正確配置。這一要求對幀同步信號引腳也同樣適用。u DIT寄存器:對于寄存器:對于DIT 模式的操作,要啟動寄存器模式的操作,要啟動寄存器DITCSRA
26、n、 DITCSRBn、 DITUDRAn和和 DITUDRBn (3) 啟動高頻串行時鐘啟動高頻串行時鐘AHCLKX或或AHCLKR。即使使用外部高頻串行時鐘這一步也。即使使用外部高頻串行時鐘這一步也是必需的是必需的u 通過設(shè)置通過設(shè)置GBLCTL中接收器的中接收器的RHCLKRST位或發(fā)送器的位或發(fā)送器的XHCLKRST位分別使內(nèi)位分別使內(nèi)部高頻串行時鐘分頻器退出復(fù)位。部高頻串行時鐘分頻器退出復(fù)位。GBLCTL中所有其他位都保持中所有其他位都保持0u在繼續(xù)進行操作前對在繼續(xù)進行操作前對GBLCTL進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到GBLCTL(
27、4) 啟動串行時鐘啟動串行時鐘ACLKX或或ACLKR。如果使用外部串行時鐘,可以跳過這一步。如果使用外部串行時鐘,可以跳過這一步u 通過設(shè)置通過設(shè)置GBLCTL中接收器的中接收器的RCLKRST位或發(fā)送器的位或發(fā)送器的XCLKRST位,使各自的位,使各自的內(nèi)部串行時鐘分頻器退出復(fù)位。內(nèi)部串行時鐘分頻器退出復(fù)位。GBLCTL中所有其他位都保持以前的狀態(tài)不變。中所有其他位都保持以前的狀態(tài)不變。u 在繼續(xù)進行操作前對在繼續(xù)進行操作前對GBLCTL進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到GBLCTL。(5) 啟動數(shù)據(jù)獲取啟動數(shù)據(jù)獲取u 如果對如果對McASP使
28、用使用DMA,那么在,那么在McASP退出復(fù)位前啟動數(shù)據(jù)獲取并在這一步退出復(fù)位前啟動數(shù)據(jù)獲取并在這一步開始開始DMA操作。操作。u如果對如果對McASP使用使用CPU中斷,按要求激活發(fā)送或接收中斷。中斷,按要求激活發(fā)送或接收中斷。u如果對如果對McASP使用使用CPU查詢,那么在這一步就不需要進行任何操作。查詢,那么在這一步就不需要進行任何操作。9.3.1 McASP 啟動與初始化啟動與初始化(6) 激活串行器激活串行器u在開始之前,通過寫入在開始之前,通過寫入XSTAT = FFFFh和和RSTAT = FFFFh分別清除發(fā)送和接收狀態(tài)寄存分別清除發(fā)送和接收狀態(tài)寄存器器u通過設(shè)置通過設(shè)置GB
29、LCTL中接收器的中接收器的RSRCLR位或發(fā)送器的位或發(fā)送器的XSRCLR位,使各自的串行器退出位,使各自的串行器退出復(fù)位。復(fù)位。GBLCTL中所有其他位都保持以前的狀態(tài)不變中所有其他位都保持以前的狀態(tài)不變u在繼續(xù)進行操作前對在繼續(xù)進行操作前對GBLCTL進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到GBLCTL(7) 確保所有的發(fā)送緩沖器在工作確保所有的發(fā)送緩沖器在工作 (8) 狀態(tài)機退出復(fù)位狀態(tài)機退出復(fù)位u通過設(shè)置通過設(shè)置GBLCTL中接收器的中接收器的RSMRST位或發(fā)送器的位或發(fā)送器的XSMRST位使?fàn)顟B(tài)機退出復(fù)位。位使?fàn)顟B(tài)機退出復(fù)位。GBLCTL中
30、所有其他位都保持以前的狀態(tài)不變中所有其他位都保持以前的狀態(tài)不變u在繼續(xù)進行操作前對在繼續(xù)進行操作前對GBLCTL進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到GBLCTL(9) 幀同步信號發(fā)生器退出復(fù)位幀同步信號發(fā)生器退出復(fù)位u通過設(shè)置通過設(shè)置GBLCTL中接收器的中接收器的RFRST位或發(fā)送器的位或發(fā)送器的XFRST位使幀同步信號發(fā)生器退出復(fù)位使幀同步信號發(fā)生器退出復(fù)位位u在繼續(xù)進行操作前對在繼續(xù)進行操作前對GBLCTL進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到進行一次讀操作,確保寫入的數(shù)據(jù)成功加載到GBLCTL(10) 只要接收到第一個幀同步信號,只要接收到
31、第一個幀同步信號,McASP就開始傳輸數(shù)據(jù)就開始傳輸數(shù)據(jù)McASP是跟幀同步信號邊沿同步的,而不是跟幀同步信號電平同步的。是跟幀同步信號邊沿同步的,而不是跟幀同步信號電平同步的。9.3.1 McASP 啟動與初始化啟動與初始化u在第1小節(jié)中指出要對GBLCTL進行回讀操作,直到寫入的位被成功寫入GBLCTL。這一步操作是很重要的,因為發(fā)送器和接收器的狀態(tài)機分別以各自的位時鐘運行,它們一般比DSP芯片內(nèi)部的總線時鐘慢幾十到幾百倍。因此,在DSP向GBLCTL (或RGBLCTL和XGBLCTL)寫數(shù)據(jù)到McASP真正識別這一寫操作之間需要好幾個周期。如果跳過這一步,那么McASP可能永遠(yuǎn)不會知道
32、設(shè)置或清除GBLCTL的復(fù)位位,最終導(dǎo)致一個未初始化的McASP。RGBLCTL和XGBLCTL可以單獨改變GBLCTL的發(fā)送和接收部分,它們也可以立即反映出更新的值(對于調(diào)試很有用)。只有GBLCTL可以被用到回讀操作中?;刈xGBLCTL的重要性1. 突發(fā)傳輸模式突發(fā)傳輸模式McASP支持突發(fā)傳輸模式,這種模式下幀同步信號的產(chǎn)生支持突發(fā)傳輸模式,這種模式下幀同步信號的產(chǎn)生不是周期性不是周期性,而是數(shù)據(jù)驅(qū)動的。,而是數(shù)據(jù)驅(qū)動的。主要用于主要用于非音頻數(shù)據(jù)的傳輸非音頻數(shù)據(jù)的傳輸,例如在兩個,例如在兩個DSP芯片間傳輸控制信息。芯片間傳輸控制信息。在突發(fā)幀同步信號模式下,幀同步信號延遲可以被指定為
33、在突發(fā)幀同步信號模式下,幀同步信號延遲可以被指定為0,1或或2個串行時鐘周期。這是個串行時鐘周期。這是指幀同步信號邊沿和單元開始之間的延遲。對于每個被識別的幀同步信號的邊沿都有一個指幀同步信號邊沿和單元開始之間的延遲。對于每個被識別的幀同步信號的邊沿都有一個單元被移動。這一單元后和下一個幀同步信號前的附加數(shù)據(jù)塊都被忽略單元被移動。這一單元后和下一個幀同步信號前的附加數(shù)據(jù)塊都被忽略 對于發(fā)送來說,當(dāng)在內(nèi)部產(chǎn)生發(fā)送用幀同步信號時,幀同步信號是在前一傳輸結(jié)束并且所對于發(fā)送來說,當(dāng)在內(nèi)部產(chǎn)生發(fā)送用幀同步信號時,幀同步信號是在前一傳輸結(jié)束并且所有的有的XBUFn (將每個串行器都設(shè)置為發(fā)送器將每個串行器
34、都設(shè)置為發(fā)送器)都被新數(shù)據(jù)更新后開始的。都被新數(shù)據(jù)更新后開始的。對于接收來說,當(dāng)在內(nèi)部產(chǎn)生接收用幀同步信號時,幀同步信號是在前一傳輸結(jié)束并且所對于接收來說,當(dāng)在內(nèi)部產(chǎn)生接收用幀同步信號時,幀同步信號是在前一傳輸結(jié)束并且所有的有的RBUFn(將每個串行器都設(shè)置為接收器將每個串行器都設(shè)置為接收器)都被讀出后開始的。都被讀出后開始的。 9.3.2 傳輸模式傳輸模式9.3.2 傳輸模式傳輸模式2. TDM傳輸模式傳輸模式TDM 格式可以用于格式可以用于DSP芯片與一個或多個模芯片與一個或多個模-數(shù)轉(zhuǎn)換器數(shù)轉(zhuǎn)換器(ADC),數(shù),數(shù)-模轉(zhuǎn)換模轉(zhuǎn)換器器(DAC)之間的數(shù)據(jù)傳輸。之間的數(shù)據(jù)傳輸。TDM格式包括
35、三部分:時鐘、數(shù)據(jù)和幀同步信號。格式包括三部分:時鐘、數(shù)據(jù)和幀同步信號。在在TDM的術(shù)語中,的術(shù)語中,“單單元元”通常也被稱為通常也被稱為“通道通道”,一幀包括多個通道。每一個,一幀包括多個通道。每一個TDM幀是由幀同步幀是由幀同步信號來定義的信號來定義的(AFSX或或AFSR)。數(shù)據(jù)傳輸是連續(xù)的,因為。數(shù)據(jù)傳輸是連續(xù)的,因為TDM格式主要格式主要用于跟工作在用于跟工作在固定采樣頻率下的數(shù)據(jù)轉(zhuǎn)換器固定采樣頻率下的數(shù)據(jù)轉(zhuǎn)換器進行通信,在單元之間沒有延進行通信,在單元之間沒有延遲。遲。u系統(tǒng)中發(fā)送端和接收端每個單元的位數(shù)要一致,因為單元邊界不是由幀同步信號決定的(雖然幀同步信號是單元0和一個新幀開
36、始的標(biāo)志) TDM格式下幀同步信號的延遲位數(shù)9.3.2 傳輸模式傳輸模式u一個典型的音頻系統(tǒng)中,需要在每個數(shù)據(jù)轉(zhuǎn)換設(shè)備的取樣周期內(nèi)傳輸一幀數(shù)據(jù)。為了支持多通道傳輸,可以讓每幀包含更多的單元(以高時鐘頻率運行),也可以使用附加的數(shù)據(jù)引腳來傳輸相同數(shù)目的通道(以低時鐘頻率運行)。例如,一個6通道DAC可以設(shè)計成圖5-16所示用單個串行數(shù)據(jù)引腳AXRn進行傳輸。在這種情況下,串行時鐘必須非??欤@樣才能在每個幀周期內(nèi)傳輸完6個通道。也可以選擇將6通道DAC設(shè)計成使用三個串行數(shù)據(jù)引腳AXR0,1,2,在每個取樣周期內(nèi)每個引腳傳輸兩個通道的數(shù)據(jù)。在后面這種情況下,如果取樣周期相同,那么串行時鐘比前一種情
37、況要慢三倍。McASP非常靈活,這兩種類型的DAC都支持。9.3.2 傳輸模式傳輸模式3. 數(shù)字音頻接口數(shù)字音頻接口(DIT)傳輸模式傳輸模式除適合在同一系統(tǒng)內(nèi)的芯片之間傳輸音頻數(shù)據(jù)TDM傳輸模式和突發(fā)傳輸模式外,McASP的數(shù)字音頻接口(DIT)傳輸模式也支持以S/PDIF,AES-3或IEC-60958格式傳輸音頻數(shù)據(jù)。這些格式是用來在不同系統(tǒng)之間通過光纜或同軸電纜傳送音頻數(shù)據(jù)的。DIT模式僅僅適用于配置為發(fā)送器的串行器,對于配置為接收器的串行器不適用。9.3.2 傳輸模式傳輸模式9.3.3 數(shù)據(jù)發(fā)送和接收數(shù)據(jù)發(fā)送和接收1. 數(shù)據(jù)就緒狀態(tài)和事件數(shù)據(jù)就緒狀態(tài)和事件/中斷的產(chǎn)生中斷的產(chǎn)生(1)
38、 發(fā)送數(shù)據(jù)就緒發(fā)送數(shù)據(jù)就緒發(fā)送數(shù)據(jù)就緒標(biāo)志即發(fā)送數(shù)據(jù)就緒標(biāo)志即XSTAT寄存器中的寄存器中的XDATA位反映了位反映了XBUF寄存器的狀態(tài)。當(dāng)從寄存器的狀態(tài)。當(dāng)從XRBUFn緩沖器向緩沖器向XRSRn 移位寄存器傳輸數(shù)據(jù)時,移位寄存器傳輸數(shù)據(jù)時,XDATA標(biāo)志位被置位,表示標(biāo)志位被置位,表示XBUF是空的并準(zhǔn)備好接收從是空的并準(zhǔn)備好接收從DSP來的新數(shù)據(jù)了。當(dāng)來的新數(shù)據(jù)了。當(dāng)XDATA位被寫入位被寫入1或者所有被配或者所有被配置為發(fā)送器的串行器都被置為發(fā)送器的串行器都被DSP寫入數(shù)據(jù),標(biāo)志位就會被清零。寫入數(shù)據(jù),標(biāo)志位就會被清零。在這個例子中,當(dāng)字在這個例子中,當(dāng)字A的最后一位的最后一位(A0
39、)被發(fā)送出去時,被發(fā)送出去時,McASP將將XDATA標(biāo)志位置位標(biāo)志位置位,并產(chǎn)生一個,并產(chǎn)生一個AXEVT事件。然而,在事件。然而,在AXEVT被激活前還需要被激活前還需要5個個McASP系統(tǒng)時鐘系統(tǒng)時鐘(即即AXEVT延遲延遲)。緊接在。緊接在AXEVT之后,之后,DSP開始對開始對McASP服務(wù),向服務(wù),向XBUF寫入字寫入字C(DSP服務(wù)時間服務(wù)時間)。DSP必須在必須在McASP所要求的建立時間之前向所要求的建立時間之前向XBUF寫入字寫入字C (建立建立時間時間)。 發(fā)送DMA事件(AXEVT)DSP服務(wù)時間的計算,假定 器件:300 MHz的C672x DSP芯片 McASP以1
40、92 kHz的幀速率發(fā)送I2S格式數(shù)據(jù)。假定單元大小為32 位 McASP系統(tǒng)時鐘周期的計算: C672x DSP使用SYSCLK2作為McASP的系統(tǒng)時鐘。它以150 MHz運行(器件頻率的一半) 因此,McASP系統(tǒng)時鐘周期=1/150 MHz = 6.7 ns ACLKX時鐘周期的計算: 在這個例子中,每幀有兩個32位的單元,每幀共有64位 ACLKX時鐘周期是: (1/192 kHz)/64 = 81.4 ns AXEVT事件之間的單元: 對于I2S格式,每192 kHz 個幀McASP產(chǎn)生兩個AXEVT事件 因此,AXEVT事件之間的單元是(1/192 kHz)/2 = 2604 n
41、s AXEVT 延遲= 5個McASP系統(tǒng)時鐘周期= 6.7 ns 5 = 33.5 ns 建立時間= 3 個McASP系統(tǒng)時鐘周期+ 4個ACLKX周期= (6.7 ns 3) + (81.4 ns 4)= 345.7 ns DSP服務(wù)時間= 單元時間AXEVT延遲建立時間= 2604 ns33.5 ns345.7 ns= 2225 ns9.3.3 數(shù)據(jù)發(fā)送和接收數(shù)據(jù)發(fā)送和接收(2) 接收數(shù)據(jù)就緒接收數(shù)據(jù)就緒接收數(shù)據(jù)就緒標(biāo)志即接收數(shù)據(jù)就緒標(biāo)志即RSTAT寄存器中的寄存器中的RDATA位反映了位反映了XBUF寄存器的狀態(tài)。當(dāng)寄存器的狀態(tài)。當(dāng)從從XRSRn 移位寄存器向移位寄存器向X RBUFn緩沖器傳輸數(shù)據(jù)時,緩沖器傳輸數(shù)據(jù)時,RDATA標(biāo)志位被置位,標(biāo)志位被置位,表示表示RBUF中包含接收的數(shù)據(jù)并準(zhǔn)備好讓中包含接收的數(shù)據(jù)并準(zhǔn)備好讓DSP來讀取數(shù)據(jù)了。當(dāng)來讀取數(shù)據(jù)了。當(dāng)RDATA位被寫入位被寫入1或者所有被配置為接收器的串行器都被讀出了,標(biāo)志位就會被清零。或者所有被配置為接收器的串行器都被讀出了,標(biāo)志位就會被清零。在這個例子中,當(dāng)接收到字在這個例子中,當(dāng)接收到字A的最后一位的最后一位(A0)時,時,McASP將將RDATA標(biāo)志位置位,標(biāo)志位置位,并產(chǎn)生一個并產(chǎn)生一個AREVT事件。然而,在事件。然而,在AREVT被激活前還需要被激活前還需要5個個McASP系統(tǒng)時鐘系統(tǒng)時鐘(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6-Piperazin-1-yl-isoquinoline-hydrochloride-6-1-Piperazinyl-isoquinoline-hydrochloride-生命科學(xué)試劑-MCE
- 2025年飼用生物活性制劑項目合作計劃書
- 2025年高溫蠕變試驗機合作協(xié)議書
- 語音識別技術(shù)合作開發(fā)合同(2篇)
- 2025年500KV760KV超高壓變壓器匝和超高壓電纜絕緣紙項目發(fā)展計劃
- 藥店與醫(yī)藥電商平臺2025年度合作協(xié)議簡篇
- 二零二五年度收養(yǎng)協(xié)議書匯編:跨國收養(yǎng)的法律風(fēng)險防控與解決方案
- 二零二五年度農(nóng)村宅基地租賃及配套設(shè)施建設(shè)合作協(xié)議
- 二零二五年度幼兒園餐飲服務(wù)及食品安全管理轉(zhuǎn)讓合同
- 二零二五年度土地面積誤差調(diào)整補充協(xié)議
- 2024湖北省金口電排站管理處招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 油井供水合同范例
- 2025年人教部編版語文五年級下冊教學(xué)計劃(含進度表)
- 全國計算機等級考試一級試題及答案(5套)
- 銀河證券-科創(chuàng)板認(rèn)知測評題目及答案
- 產(chǎn)品方案設(shè)計模板
- 部隊通訊員培訓(xùn)
- 物業(yè)公司水浸、水管爆裂事故應(yīng)急處置預(yù)案
- 第四章第三節(jié)幼兒的親子關(guān)系(課件)-《幼兒心理學(xué)》(人教版第二版)
- 國企投資管理制度
- 部編版三年級下冊語文作業(yè)本參考答案
評論
0/150
提交評論