2007年4月7日 星期六

Audio Path的設定(錄/放音)

9712基本錄放音的Audio Path設定:

放音Audio Path:

CPU->AC97->DAC->Speaker Mixer->OUT2


CPU將聲音資料透過AC97傳輸介面,將資料傳送給Audio Codec xx9712,進入9712後,會透過內部的數位類比轉換器將聲音訊號由數位轉換成類比訊號,其中在DAC有一組Amplifier(18h)可調整聲音的GAIN值,透過喇叭混音器即可將左聲道與右聲道mix在一起。

9712內建BTL音頻放大器,所謂BTL,即可將原本single-end(mono)的訊號放大為兩倍,其作法為將左右聲道其中ㄧ組訊號反向,輸出的訊號變成ㄧ正ㄧ反,即所謂的differential訊號,最後再將兩訊號作相減的動作,即可將訊號放大為兩倍。




而在9712裡,左聲道(LOUT2)輸出前有即一組反向器可將訊號作反向的動作,在訊號輸出之前,還有一組Amplifier(02h)可以調整輸出聲音的gain值,因此放音路徑總共有兩組Ampilifier可供調整聲音大小。

放音audio path regisiter設定程式碼:

Audio Path可參照spec page14

WriteAC97Codec(register,設定值);

WriteAC97Codec(0x18,0xa808);
->允許聲音訊號只能進入Speaker Mixer,並將DAC Volume設定為0db (0db為預設值)








WriteAC97Codec(0x02,0x40);
->將左聲道訊號相位反向,並將輸出gain值設定為0db




ㄧ般而言,不管聲音訊號進入哪個Mixer,最好將進入其他的Mixer的路徑關掉,以防止訊號互相干擾的問題。

錄音Audio Path:

(MIC1 or MIC2)->ADC->(ALC)->AC97->CPU

9712可以提供兩個Mic輸入點(0eh),ㄧ般而言單獨一個Mic輸入音源都是mono ,但是如果兩個Mic輸入點分成左右聲道輸入音源,則音源為stereo,而ADC主要是把從Mic輸入的類比訊號轉換成給CPU的數位訊號,這條path會經過兩個Ampilifer(1ch/1ah),可調整錄音的gain值,至於ALC的主要功用為抑制輸入過大的音源訊號,而且可以把過大的音源訊號平均掉,可以視情況使用,最後音源訊號會透過AC97傳輸介面傳送給CPU。

錄音audio path regisiter設定程式碼:



WriteAC97Codec(0x0e,0x0);
->選擇Mic1作為音源訊號輸入點




WriteAC97Codec(0x1a,0x4000);
->將錄音的訊號boost 20db的gain值




WriteAC97Codec(0x1c,0x0);
->將ADC的Record gain調為0db


9712的MICBIAS PIN腳可提供ㄧ組電壓供MIC使用,並且可由韌體去控制電壓是否開啟,位址為24h,電壓大小也可作調整,位址為5Ch。

沒有留言: