爲PCM1792設計I^2C接口

文檔標識符:PCM1792_T-D-P12

作者:DLHC

最後修改日期:2020.10.5

本文鏈接: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保留所有權利。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章