1. S3C6410與WM9713的I2S,AC97,PCM相比較:
1.I2S,AC97,PCM是不同的,各是各的,三者時(shí)序不同,要雙方通信,必須要是
同一種時(shí)序,要么均是I2S,要么均是AC97,要么均是PCM
2.S3C6410的I2S,AC97,PCM復(fù)用同一組Pin腳,但同一時(shí)間只能用一種類(lèi)型,
要么是I2S,要么是AC97,要么是PCM
3.WM9713有兩大接口,一是AC97,另一是PCM/I2S
PCM/I2S是并非指兩者相同,而是WM9713芯片設(shè)計(jì)時(shí)將PCM/I2S的格式兼容,硬件設(shè)計(jì)到同一個(gè)電路中去,可選配置該電路模塊為PCM或是I2S
WM9713 的AC97模塊只接受對(duì)方以AC97 Timing發(fā)過(guò)來(lái)的時(shí)序,而不接受PCM|I2S的時(shí)序,類(lèi)似WM9713 的I2S模塊只接受對(duì)方以I2S Timing發(fā)過(guò)來(lái)的時(shí)序,而不接受PCM|AC97的時(shí)序,WM9713 的PCM模塊只接受對(duì)方以PCM Timing發(fā)過(guò)來(lái)的時(shí)序,而不接受AC97|I2S的時(shí)序
4.看電路圖知,WM9713的PCM/I2S的接口沒(méi)接線,故WM9713的PCM|I2S沒(méi)用上
而WM9713 AC97接了線接到S3C6410的復(fù)用口:PCM|I2S|AC97上
所以S3C6410的復(fù)用Pin腳組只能用AC97模式
5.WM9713 只有AC97模塊能用,S3C6410只能配置成AC97,配成PCM|I2S將無(wú)法與WM9713的 AC97電路模塊通信
也說(shuō)明為什么OTG代碼中的有關(guān)PCM發(fā)聲測(cè)試程序代碼中沒(méi)有對(duì)WM9713 進(jìn)行PCM初始化的代碼
=======================================
2.有關(guān)AC97 Spec與WM9713的時(shí)鐘關(guān)系:
1):24.576MHz外部晶振給WM9713供給MCLKA,[原理圖]。再由WM9713于內(nèi)部供給AC97 CLK:24.576MHz,此處于WM9713 Reg44h可配置
然后AC97 CLK:24.576MHz再供給BITCLK:12.288MHz,這個(gè)BITCLK再由WM9713提供給S3C6410用,6410再利用BITCLK:12.288MHz去產(chǎn)生SYNC:48KHz,這個(gè)48KHz的SYNC將反過(guò)來(lái)再供給WM9713芯片及6410的AC97 Controller,以使兩者同步
Refer: WM9713 Spec P22
另外只要24.576MHz的外部晶振一定,供給WM9713的MCLKA,WM9713自動(dòng)會(huì)將其分頻至12.288MHz給BITCLK,送往6410 AC97 Controller
12.288MHz的BITCLK產(chǎn)生48KHz的SYNC的機(jī)理:
Refer: 6410手冊(cè)35-5:
BITCLK:12.288MHz
SYNC:48KHz=12.288MHz/256bit
一個(gè)AC97幀由13個(gè)Slot組成,第1個(gè) NO.0 Slot:16bit組成Tag Phase
第2--13個(gè)即:NO.1--12 Slot:每個(gè)Slot 20bit,組成Data Phase
Total Bits: 16bit+12*20=256bit
2)默認(rèn)WM9713上電后clock 位于MCLKA, PLL Power Down WM9713 Spec P17,18
Refer: WM9713 Spec P84 BITCLK電氣特性
================================================
AC97_Configuration():
AC97_Configuration()====>AC97_SelectSamplingRate()
====>AC97_SelectIntrMode()
AC97_SelectSamplingRate():可以去掉由AC97_Init()中來(lái)賦值用,用宏USE_48K,USE_32K來(lái)分別設(shè)置為
m_uSamplingFreq賦值,這里只須配成48KHz或是32KHz,其余部份的Sampling Rate可以去掉
m_uSamplingFreq后面如何用?還須深入了解
AC97_SelectIntrMode():沒(méi)用到中斷,可以去掉
==========================================
有關(guān)AC97端口的設(shè)置:
AC97_SetPort(),AC97_ClosePort()可以照抄,開(kāi)一個(gè),就關(guān)閉另一個(gè),關(guān)閉的方法是將其設(shè)置為Input
==========================================
AC97_ControllerState()的狀態(tài)機(jī):
1.開(kāi)機(jī)與正常工作過(guò)程:INIT,READY,ACTIVE狀態(tài)
上電開(kāi)機(jī)進(jìn)入INIT狀態(tài),然后ACLINK-ON后,進(jìn)入READY狀態(tài),當(dāng)Codec Ready后或是開(kāi)始數(shù)據(jù)傳送或是
Normal SYNC時(shí),就切換至ACTIVE狀態(tài)進(jìn)行工作,直到要么cold_reset進(jìn)入IDLE狀態(tài)或是POWER_DOWN進(jìn)入
LP Low Power狀態(tài),還有一種情況,就是在ACTIVE狀態(tài)時(shí),收到!ACLINK_ON信號(hào)時(shí),進(jìn)入IDLE狀態(tài)
2.Low Power狀態(tài):
ACTIVE狀態(tài)時(shí),收到POWER_DOWN后,進(jìn)入LP Low Power狀態(tài),然后:
2-1:收到cold_reset后,進(jìn)入IDLE狀態(tài)
2-2:收到WARM_RESET后,進(jìn)入WARM狀態(tài)
3.WARM狀態(tài):
收到cold_reset或是CODEC_WAKEUP后,均是進(jìn)入IDLE狀態(tài)
4.狀態(tài)同步信號(hào):
狀態(tài)與PCLK同步
5.狀態(tài)監(jiān)測(cè):
AC_GLBSTAT
==========================================
AC97_CodecCmd()的AC97命令格式:
1.ac_codec_cmd ac_codec_stat
Refer 6410 Spec P1153
2.注意兩條命令發(fā)送間的延時(shí)為>= 1/48KHz=20.83uSec
3.讀ac97 reg的方法:P1153
==========================================
cold reset && warm reset機(jī)理:
這部份與外圍芯片相關(guān):
cold reset機(jī)理:
1.AC_GLBCTRL Reg 設(shè)置過(guò)程:
1)cold reset
AC_GLBCTRL[cold reset] = 1
cold reset delay > 1usec + 162.8nsec
AC_GLBCTRL[cold reset] = 0
2)AC-LINK on
讓SYNC信號(hào)送往9713 Codec
3)Transfer Data By AC-link En
2.Cold Rest Timing:
Refer WM9713 P86
6410將9713 resetb pin腳拉低:至少1usec,然后resetb pin腳拉高直到BITCLK startup: >162.8nsec
----------------------------------
warm-reset:
1)warm-reset timing:
SYNC 拉高>1.3usec + >162.4ns 直到BIT_CLK開(kāi)始工作
Refer 9713 P87
2.疑點(diǎn):
AC97_ColdReset()中用到了AC97_WarmReset()
一是:要不要用???
二是:用的時(shí)機(jī)不對(duì),此時(shí)AC-LINK 尚未on,會(huì)使得warm reset中需要的SYNC無(wú)法送出???
估計(jì)是與下面向WM9713 Codec Reg 26h 發(fā)出0x00命令有關(guān),里面有一個(gè)將9713的ac-link interface 及internal clock En的功能
先保留在cold-reset中進(jìn)行warm reset的作法,再試驗(yàn)是否由這個(gè)9713 ac-link interface及internal clock EN來(lái)
即要使得warm-reset正常進(jìn)行,6410當(dāng)ac-link on,9713也當(dāng)ac-link interface on且internal clock on,所以這里的warm-reset當(dāng)放在后面一點(diǎn),讓6410先En ac-link interface on
3.與Cold-reset不同的地方:
向WM9713 codec發(fā)出了Reg 26h 0x00的命令,以Enable: All output PGAs,internal clock, ac-link interface,VREF,stereo DAC,stereo ADCS,record mux PGA,input PGAs,mixers
==========================================
AC97_CodecRegisterRW():
1.用來(lái)測(cè)試外圍芯片的Codec Reg的寫(xiě)入延時(shí)
2.但不要用23h,因?yàn)锳C97,及WM9713均無(wú)此Reg
3.借鑒PCMCodecRegWR():
對(duì)Reg 04h寫(xiě)入讀出以測(cè)試Reg能寫(xiě)入否,Reg 04h:HPL/HPR ==>只作參考由4代替
4.借鑒AC97_CodecCmdManually()手工發(fā)出命令對(duì)指定的外圍Codec的芯片內(nèi)部的
Reg進(jìn)行讀寫(xiě)
==========================================
WM9713_InitPCMOut():
0x26 0x4F00 開(kāi)internal clockk,AC-Link Interface enable[external clock off]
0x26與0x3c共同決定VREF的電路狀態(tài),以下兩個(gè)共同決定 VRef Enable
0x26 0x4700 [在上面的基礎(chǔ)上] 再加上 PR3開(kāi),VREF Enable,Input PGAs,DACs,ADCs,mixers and Output En
0x3c 0xFBFF Enable Ref
0x26與0x3c共同決定Mixer的電路狀態(tài),以下兩個(gè)共同決定 Mixer En
0x26 0x4300: PR2開(kāi),Enable Input PGAs & Mixers
0x3c 0xFBF3: Enable Left/Right headphone mixer
0x26與0x3c共同決定Left/Right DAC的電路狀態(tài),以下兩個(gè)共同決定DAC En
0x26 0x4100: Enable Stereo DAC PR1開(kāi)
0x3c 0xFB33: Enable Left/Right DAC
0x26與0x3c共同決定PGA的電路狀態(tài),以下兩個(gè)共同決定PGA En
0x26 0x0100: Enable Output PGA
0x3c 0xF9FF: Enable HPL/HPR Output PGA
設(shè)置Stereo DAC Sampling Rate
0x2A 0x1: Enable Variable Rate audio
0x2c 48KHz|32KHz:設(shè)置Stereo DAC Sample Rate
選擇通道
0x12 0x8000: Mutes audio ADC Input
0x1c 0x00a0: HPL/HPR PGA Input Select:HPMIXL,HPMIXR
0x04 0x0707 :設(shè)置HPL/HPR Volume
0x04 0x0000 :設(shè)置HPL/HPR Volume ==> 0DB
0x0c 0x6808 : Left/right DAC Input Gain to all mixers: 18Bit DACL/Slot3 選入Headphone Mixer L/R,而不入Speaker Mixer與Mono Mixer及Gain設(shè)定
0x04 0x0A0A: 設(shè)置HPL/HPR Volume ZC關(guān)閉
==========================================
WM9713_CodecInitPCMIn():
1.P 25-5:
AC-Link Digital Interface Protocol:
MICInDMAMODE: ACLinkSlot6 == PCMMIC
PCMInOutDMAMODE: ACLinkSlot34 == PCM LEFT : Slot 3, PCM RIGHT: Slot 4
--------------------
0x26 0x4F00 開(kāi)internal clockk,AC-Link Interface enable[external clock off]
0x26與0x3c共同決定VREF的電路狀態(tài),以下兩個(gè)共同決定 VRef Enable:
0x26 0x4700 [在上面的基礎(chǔ)上] 再加上 PR3開(kāi),VREF Enable,Input PGAs,DACs,ADCs,mixers and Output En
0x3c 0xFBFF Enable Ref
---------------------
0x26與0x3c共同決定Mixer的電路狀態(tài),以下兩個(gè)共同決定 Mixer En:
0x26 0x4300: PR2開(kāi),Enable Input PGAs & Mixers
Note:
PGAs: LINEL,LINER,MIC至Mixer路徑上的PGA En(真正使能在后面與0x3E聯(lián)用)
Mixers:Headphone L/R的Mixer, Mono Mixer En, Speaker Mixer En
if為ACLinkSlot34==PCMInOutDMAMODE:
0x3c 0xFBC3:Left, Right ADC En + Left,Right Headphone Mixer En
可能的路徑1:Mic或Line L/R -->record mux(豎放的長(zhǎng)梯形)-->Headphone Mixer-->HPL/R
else if為ACLinkSlot6==PCMMIC
0x3c 0xFBCF: Left, Right ADC En
可能的路徑2:Mic -->record mux(豎放的長(zhǎng)梯形)-->18bit ADC
-->AC 97 Link
----------------------
0x26 0x4200: Disable all output PGA要
PR5 on: enable internal clock
PR4 on: enable AC-Link interface
PR3 on: Enable VRef, input PGAs, DACs,ADCs,mixers and outputs
PR2 on:Enable input PGAs and mixers
PR1 off: disable stereo DAC
PR0 on: Enable Stereo ADC & Record MUX PGA
----------------------
0x26與0x3E共同決定LINEL,LINER PGA Enable
0x26 0x0200: Enable all output PGAs
0x3E 0xFF9F: Enable LINEL, LINER PGA
----------------------
0x2A 0x1: Enable Variable Rate audio
0x32 48KHz|32KHz:設(shè)置Audio ADC Sample Rate
----------------------
if為ACLinkSlot34==PCMInOutDMAMODE:
0x14 0xFE12:
RECSR,RECSL: Record Mux Source Selection: LINE L/R
RECBST:0:off: ADC record path無(wú)20dB Gain Boost
R2MBST:0:off: 20dB Gain boost for record mux to mono mixer
R2M: mute left&right record mux to mono mixer
R2HVOL: 111 : record mux gain to headphone mixer paths
R2H: 11: mute left/right record mux to headphone
0X1C 0X00A0: HPL PGA input select HPL/HPR PGA Input
0X04 0X0303: HPR/HPL Volume Set: 11_1111 Max dB
0X12 0X1010: Unmute ADC and Set ADC Recoding Volume
**********************
else if為ACLinkSlot6==PCMMIC
0x5C 0x2: ADC Slot Mapping: Left(Slot 6), Right(Slot 9)
0x14 0xFE12:
RECSR,RECSL: Record Mux Source Selection: LINE L/R
RECBST:0:off: ADC record path無(wú)20dB Gain Boost
R2MBST:0:off: 20dB Gain boost for record mux to mono mixer
R2M: mute left&right record mux to mono mixer
R2HVOL: 111 : record mux gain to headphone mixer paths
R2H: 11: mute left/right record mux to headphone
0x1C 0x00A0: HPL PGA input select HPL/HPR PGA Input
0X12 0X1010: Unmute ADC and Set ADC Recoding Volume
1.MIC輸入沒(méi)接,均為L(zhǎng)INE L/R IN
2.路徑配置:
錄音路徑:
LineL/R-->record mux->無(wú)20dB->mute->mono mixer (Mute)
LineL/R-->record mux->無(wú)20dB->18bitADC-->AC 97 Link (Mute)
LineL/R-->record mux->無(wú)20dB->mute->Headphone Mixer-->這里為錄音,mute了 (Mute)--錄音 在這
放音的路徑:
AC Link -->18bit DAC-->Headphone Mixer-->HPL/R
上一篇:arm處理器中a5 a8 a9,v6 v7,arm7 arm9 arm11都是依據(jù)什么來(lái)分類(lèi)的
下一篇:S3C4510上嵌入式Web服務(wù)器-boa在uclinux下的的移植
推薦閱讀最新更新時(shí)間:2025-05-21 03:30
- 熱門(mén)資源推薦
- 熱門(mén)放大器推薦
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無(wú)刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無(wú)線智能控制器的設(shè)計(jì)
- 基于PTR2000的無(wú)線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 使用 Diodes Incorporated 的 PT8A 3518CPE 的參考設(shè)計(jì)
- P1020RDB: QorIQ? P1020和P1011參考設(shè)計(jì)板
- LTC2602CMS8 演示板,雙 16 位軌至軌 Vout DAC
- 基于ISD4002-120錄音回放的ISD-ES302、ES302演示板
- 使用 Diodes Incorporated 的 ZSAT600 的參考設(shè)計(jì)
- 聲控LED燈
- 1117 電壓調(diào)節(jié)器的簡(jiǎn)易板
- DER-857 - 基于具有PowiGaN技術(shù)的LYTSwitch-6的65 W高功率因數(shù)、隔離反激式和開(kāi)關(guān)填谷PFC LED驅(qū)動(dòng)器
- 隨機(jī)數(shù)發(fā)生器
- CAT4252EVAL、AN??D9010/D CAT4252 LED 驅(qū)動(dòng)器評(píng)估板
- 吉利電池安全標(biāo)準(zhǔn)升級(jí),“神盾金磚電池”有什么技術(shù)亮點(diǎn)?
- 中國(guó)汽車(chē)工程學(xué)會(huì)出臺(tái)全固態(tài)電池新標(biāo)準(zhǔn)
- Allegro如何用技術(shù)定義汽車(chē)電子新范式
- 恩智浦半導(dǎo)體推出汽車(chē)級(jí)開(kāi)發(fā)平臺(tái)OrangeBox 2.0 旨在促進(jìn)安全的汽車(chē)通信
- 三大上市公司加碼/跨界固態(tài)電池關(guān)鍵材料!
- 一大波全固態(tài)電池新產(chǎn)品來(lái)了!
- 欣旺達(dá)/瑞浦/恩捷/力華/杜爾······12大企業(yè)電池行業(yè)新品來(lái)襲
- 新唐科技發(fā)布第四代『GerdaTM』系列,車(chē)用HMI顯示IC產(chǎn)品開(kāi)始量產(chǎn)
- 寧德時(shí)代的電+Momenta的腦,“智電雙極”重構(gòu)全球汽車(chē)格局
- 一文讀懂:固態(tài)電池產(chǎn)業(yè)鏈通覽
- 友達(dá)展Mini LED面板 市場(chǎng)聚焦年底量產(chǎn)
- 鴻海威州投資 面板大變小
- 天馬展示6.21英寸AA Hole全面屏:20:9/左上角開(kāi)孔
- 兩大原因?qū)е拢爬麌?guó)際一季度綜合純利預(yù)降80%
- 中興事件博弈仍未停止,損失或超200億元
- 基于S3C6410的ARM11學(xué)習(xí)(六) 核心初始化之關(guān)閉所有中斷
- 基于S3C6410的ARM11學(xué)習(xí)(七) 核心初始化之關(guān)閉MMU和CACHE
- 基于S3C6410的ARM11學(xué)習(xí)(八) 核心初始化之設(shè)置外設(shè)基地址
- 基于S3C6410的ARM11學(xué)習(xí)(九) 點(diǎn)亮led
- 基于S3C6410的ARM11學(xué)習(xí)(十) 時(shí)鐘初始化