關於I2S中的幾個時鐘關係
1、SCLK/BCLK:串行時鐘,也稱作位時鐘,對應於數字音頻的每一位數據
f(SCLK) = 2 * 採樣頻率 * 採樣位數
2、LRCK:幀時鐘,用於切換左右聲道的數據,LRCK爲1時表示左聲道數據,0表示右聲道數據
f(LRCK) = 採樣頻率
3、MCLK:主時鐘,即系統時鐘
f(MCLK) = 256 * 採樣頻率
ADAU1452可支持的最大時鐘頻率:294.912MHZ
ADAU1452/1451/1450的輸入種類:
1、Serial input port —— 對應SigmaStudio中IO的sdata,共有48個通道,4個模塊
2、SPDIF —— 索尼/飛利浦標準接口輸入,對應SigmaStudio的DigMic模塊
3、MIC INPUT —— 數字麥克風輸入
4、ASRC —— 採樣率轉換器,可輸入也可輸出,輸入信號源,輸出到DSP core中
Serial input
ADAU1452/1451/1450有4組串行輸入口,SDATA0和SDATA1每組有16個通道,SDATA2和SDATA3每組有8個通道;每組輸入口的前兩個通道爲模擬輸入,其餘可具體用於TDM4、TDM8和TDM16音頻輸入,通過SERIAL_BYTE_X寄存器配置通道數目。
每個串行輸入端口的字長有四種選擇:24、16、32位以及靈活的TDM
24位(1.23格式)輸入時,在底部LSB填充8個0,使其成爲1.31格式,然後對音頻數據進行移位,使其頂部有7個0,最底部有1個0,中間有24位數據(8.24格式)。
16位輸入,則在底部填充16個0,移位後頂部仍有7個0,而底部有9個0(8.24格式)。
SPDIF
DigMic有兩組輸入,每組輸入分左右通道。而SPDIF接收器不能在DSP 內核中直接訪問,必須通過ASRC轉換器。
SPDIF輸出信號來源可以是DSP 內核或者S/PDIF接收器,配置源可以通過寄存器SPDIFTX_INPUT寄存器配置。
SPDIF接收器上接收到的數據可以轉換爲TDM8流,繞過SigmaDSP內核直接在串行數據輸出引腳上輸出,該操作模式成爲輔助輸出模式。
Serial output
48個串行輸出通道在SigmaStudio中獨立開,但映射到硬件中同樣是4組輸出,即16、16和8、8,通過SOUT_SOURCE寄存器配置通道數目
ASRC
任何異步輸入都可以輸入到ASRC以獲取和DSP 內核相同的採樣率,從而提供給DSP內核處理。
一共有16個ASRC輸入通道,分爲8組立體聲輸入,每組兩個通道。
MIC Input
最多可以連接4個PDM麥克風,兩個麥克風共享一條數據線,PDM麥克風通常需要1Mhz~3.3Mhz的位時鐘頻率,對應的採樣率爲15.625kHZ~51.5625kHZ,位時鐘頻率 = 採樣頻率 * 2 * 採樣位數
ADAU1452/1451/1450的DSP Core
一個採樣週期內最多可執行的指令數 = 時鐘頻率/採樣頻率
DSP內核由4個乘法器和兩個累加器組成
關於Safeload機制
默認的軟件Safeload存儲地址有7個,其中0x6000 – 0x6004五個爲數據插槽
address_SafeLoad 參數是在參數RAM中的目標地址,指定了要寫入安全負載傳輸中的第一個地址
num_safeload指定要寫入的參數個數
每次安全負載寫入之間需要大於採樣週期(採樣頻率的倒數)的延遲。
SafeLoad書寫步驟:
1、從data_SafeLoad位0開始,將所需數據寫入data_SafeLoad,最多五個參數
2、將所需的起始目標地址寫入address_SafeLoad參數
3、將需要傳輸的字數寫入num_SafeLoad參數,最小寫入長度爲1個字,最大寫入長度爲5個字
4、等待一個音頻幀的時間(做適當的延時)以完成安全加載操作
關於RAM大小
ADAU1452含有40K Word大小的數據RAM控件,8K Word大小的程序存儲器
20K DM0、20K DM1以及8K Program memory
在SigmaStudio中編譯DSP工程,可以看到編譯過程,即是啓動順序,其中工程中的配置等通過 Program DATA、DM0 DATA和DM1 DATA寫入