MEME麥克風讀取數據問題
1參考資料
參考資料為附件ADMP441_cn.pdf
2主要參數和時序
2.1參數
接口:數字I2S接口,24-bit數據
SCK :I2S接口的串行數據時鍾引腳。
SD :I2S接口的串行數據輸出引腳。
WS :I2S接口的串行數據字選擇引腳。
電源電壓:1.8 V < VDD < 3.3 V。
數據格式:從機串行數據端口的格式為I2S 24-bit二進制補碼。
默認的數據格式為I2S (二進制補碼),MSB 優先。
2.2時序說明:
圖1 硬件連接圖
圖2立體聲輸出I2S時序圖
從機串行數據端口的格式為I2S 24-bit二進制補碼。每個WS立體聲數據幀對應64 個SCK 周期(fSCK = 64 × fWS)。;每個數據字必須對應32個SCK 周期。L/R控制引腳決定
ADMP441從左通道還是右通道輸出數據。
圖3 fSCK=44KHz時fpga采集到的24bit數據 7FFD78h
圖4 fSCK=44KHz時fpga采集到的24bit數據 047503h
根據硬件連接和所給時序,通過fpga進行驗證。
(1) 當第25個時鍾結束后,sd應該呈高阻態,但是之后的幾個時鍾,sd還有變化。
(2) 采集到的24bit數據,前8位不是f就是0,無論聲音的高與低。使得采集的電壓很小。
可能的原因:
(1) 傳感器故障,(但是sd一直有返回值,應該沒壞)
(2) Fpga時序寫的有問題。
圖5 fSCK=44KHz時stm32采集數據
圖中D3:WS;D2:SCK;D1:SD。采集到的數據和fpga相似,很小。
個人感覺:數據字對應32個SCK 周期的前10個周期返回的SD值有問題。
哪位大神看出來什么問題或者有什么建議,望不吝賜教哈。。