文檔標識符:PCM1792_T-D-P12
作者:DLHC
最后修改日期:2021.10.2
本文鏈接:https://www.cnblogs.com/DLHC-TECH/p/PCM1792_T-D-P12.html
前言
有沒有這樣一種可能:你是一個音響發燒友,恰好有一塊PCM1792解碼板,就像圖0.0所示,遺憾的是這塊板子還缺少了I^2S音頻數據板和I^2C控制板。但是,你幸運地發現這塊板子上預留了I^2S和I^2C的接口,於是就想設計相應的硬件電路和程序來驅動這塊解碼板,這是本文所討論的問題。(注意:本文成功地實現了52單片機通過I^2C接口讀寫PCM1792內部寄存器,但是PCM1792解碼板仍然無法工作)
圖0.0-PCM1792解碼板
項目地址
github(源碼、原理圖以及數據手冊):https://github.com/HaochuanDeng/PCM1792_I-2C
硬件設計
音頻數據輸入部分:用一個現成的PCM2706聲卡輸出I^2S音頻數據給PCM1792,要達到這個目的需要將PCM2706的9號引腳接地,並且從PCM2706芯片上引出四根信號線,分別為:BCK、LRCK、DATA、GND,這四根信號線就是I^2S信號輸出線,時序如圖所示。
圖1.0-PCM2706聲卡
圖1.1-PCM2706引腳定義
圖1.2-PCM2706引腳說明
圖1.3-PCM2706輸出的I^2S信號時序
I^2C控制板:使用52單片機通過I^2C接口配置PCM1792內部寄存器,52單片機通過串口接收命令,然后通過I^2C接口讀寫PCM1792內部寄存器,以達到配置PCM1792芯片的目的。串口命令格式(只有兩種命令共兩條,分別為讀寄存器命令和寫寄存器命令)如下圖所示。
圖1.4-串口命令格式
圖1.5- I^2C控制板原理圖
圖1.6- I^2C控制板
軟件設計
源代碼詳見github。主要實現了89C52單片機通過I^2C總線讀寫PCM1792內部寄存器和串口用戶界面。實際操作起來十分簡單。
測試結果
1.成功實現了讀寫PCM1792內部寄存器。
2.但解碼板仍然不工作,可能是解碼板其它地方存在問題。
聲明
此教程未經DLHC允許,禁止轉載。DLHC保留所有權利。