梁喜幸+楊東斌
摘 要:介紹一款高性能消費模式S/PDIF收發(fā)器WM8805基于單片機的軟件控制模式。設(shè)計一個程序?qū)ζ溥M行軟件控制,加以一定的人機交互界面,挖掘其最大的性能優(yōu)勢,解析出更完美的S/PDIF信號。
關(guān)鍵詞:S/PDIF WM8805 單片機
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1672-3791(2017)05(c)-0025-02
1 WM8805簡介
WM8805是一款高性能消費模式S/PDIF收發(fā)器,可支持8通道接收和單通道發(fā)送。其高品質(zhì)的主時鐘可通過一個內(nèi)部晶振衍生或由外部時鐘發(fā)生器提供,使得主時鐘所提供的S/PDIF信號實現(xiàn)低抖動恢復(fù)。所有常用的音頻時鐘幾乎都可以由內(nèi)置的高性能鎖相環(huán)(PLL)生成。通過一個專用的CLKOUT管腳,該器件可提供一個較高的驅(qū)動時鐘輸出信號。其“穿越(pass through)”功能可以使該器件被簡單地用于清除(去除抖動)所接收的數(shù)字音頻信號。該器件還可以在軟件控制或是獨立的硬件控制模式下使用。在軟件控制模式下,它可支持具有復(fù)讀功能的2線制接口模式及3線制接口模式。該器件包含了狀態(tài)與錯誤監(jiān)測功能,其結(jié)果反映控制接口上的復(fù)讀狀態(tài)、GPIO管腳的狀態(tài),以及在“標志位”模式(帶有附加狀態(tài)標志的音頻數(shù)據(jù))下,數(shù)據(jù)流由音頻數(shù)據(jù)接口輸入的狀態(tài)。此音頻數(shù)據(jù)接口支持I2S、左對齊、右對齊和16~24位字長的DSP音頻格式,其采樣率范圍為32~192 ks/s。該器件采用無鉛、28引腳的SSOP封裝。如圖1所示。
SDIN/HWMODE為工作模式控制引腳,當芯片上電或者復(fù)位時,如果SDIN/HWMODE電平為0時,芯片的工作模式是硬件控制模式;如其電平為1,則芯片工作模式為軟件控制模式。WM8805支持兩種控制方式:兩線和三線,由SWIFMODE引腳控制。其電平為0時,為兩線工作方式;電平為1時,為3線工作方式。在使用過程中,需要特別注意這兩個引腳,根據(jù)設(shè)計的需要對它們進行正確配置,否則將有可能無法正常使用芯片。該設(shè)計中使用的是I2C兩線控制方式,CLK為時鐘信號,SDIN/HWMODE數(shù)據(jù)信號端口。
2 WM8805軟件設(shè)計
2.1 寫數(shù)據(jù)
在兩線模式下,WM8805的寫數(shù)據(jù)時序圖如圖2所示,CSB為WM8805的片選信號引腳,當芯片工作于軟件控制模式下時,其復(fù)用為地址信號的選擇引腳。如果其電平為低,則芯片地址為0111010x,而如果其電平為高時,則芯片地址為0111011x。
其中x為讀寫狀態(tài)控制位,x=0時為寫命令,x=1時為讀命令。
相關(guān)程序如下:
void I2C_Write_WM8850_CMD(unsigned char ADDR,unsigned char dat)
{
Start_I2c() ; //啟動I2C總線
I2C_SendByte(DEVICE_W_ADDRESS); //發(fā)送寫數(shù)據(jù)地址命令
I2C_SendByte(ADDR&0x7f);
I2C_SendByte(dat); //寫數(shù)據(jù)
Stop_I2c(); //停止
}
2.2 讀寄存器
WM8805當中,有部分寄存器為只讀寄存器,該部分寄存器用作指示芯片的工作狀態(tài),數(shù)據(jù)信號的相關(guān)信息和芯片的相關(guān)參數(shù)等內(nèi)容。兩線工作模式下,只讀寄存器讀時序如圖3所示,其命令如下。
unsigned char I2C—Read—WM8805—Register(unsigned char ADDR)
{
unsigned char dat ;
Start—I2c();//啟動I2C總線
I2C—SendByte(DEVICE—W—ADDRESS;//發(fā)總寫數(shù)據(jù)地址命令)
I2C—Sendbyte(ADDR);//發(fā)送讀數(shù)據(jù)地址
Start—I2c();//發(fā)送重新開始信號
I2C—SendByte(DEVICE—R—ADDRESS);//發(fā)送讀數(shù)據(jù)地址命令
dat=I2C—RcvByte();//讀取數(shù)據(jù)
Stop—I2c();//發(fā)送停止信號
return dat;
}
3 結(jié)語
WM8805最高能正常解碼到192 kHz音頻,播放192KHz音頻的時候,音樂無雜音,信號鎖定穩(wěn)定,沒有出現(xiàn)斷續(xù)情況。同時對于44.1 kHz、48 kHz、88.2 kHz、96 kHz、176.2 kHz等頻率的音頻也能正常解碼播放。音質(zhì)溫暖柔和、通透、人聲表現(xiàn)優(yōu)異。能將系統(tǒng)時鐘恒定在24.576 MHz/22.5792 MHz,獲得指標出色的jitter,模擬部分為分立器件輸出電路,性能優(yōu)異,沒有運放電路深反饋帶來的壓抑感。