海思芯片調試PCM1774

一.簡介

        由於原設備的輸出音頻效果不佳。所以,在海思芯片作爲開發平臺上,爲了改善這個問題,添加PCM1774作爲音頻轉接器和核心板音頻輸出AO對接。基本步驟如圖1:

 

                          圖1 基本步驟

二.操作

1.I2S3數據的輸出選擇

         現在將核心板子上原本輸出給音頻處理芯片的I2S3數據選擇成PCM1774,需要打開片選芯片的選擇控制管腳寄存器。

          在telnet設備的終端操作:

          設置管腳複用寄存器,將控制片選芯片輸出選擇的管腳GPIO18_3複用成I/O:

                               himm 0x120F0204 0x0

          設置GPIO18_3的方向(GPIO_DIR )爲輸出:

                               himm 0x12270400 0x8

          將GPIO18_3管腳置1,高電平使得I2S3數據通過片選芯片輸出到PCM1774:

                               himm 0x12270020 0x8

           關於對管腳的控制,可以查看“HI3531的GPIO使用的再分析https://blog.csdn.net/qingzhuyuxian/article/details/82980110

2.PCM1774的I2C控制

         PCM1774支持I2C總線和數據傳輸協議,其從地址按如圖所示的格式進行設置。

         高6位(MSBs)是固定的100011。由於同一I2C總線最多可以控制兩個PCM1774,所以ADR可由用戶通過硬件進行定義、用於標記當前控制的PCM1774芯片。最低位(LSB)表示讀和寫操作(R/W

 

                                                  圖2 從地址

3.用戶可定義的PCM1774模式控制寄存器

          PCM1774的模式控制寄存器中,每個寄存器的地址用7位表示,如下表所示。

 

                                      表1 PCM1774的模式控制寄存器

4.上電後,主要模式控制寄存器的設置時序

時序

寄存器及數據

設置項說明

1

打開所有電源①

2

4027h

耳機放大器左聲道音量( -6分貝)②

3

4127h

耳機放大器右聲道音量( -6分貝)②

6

4427h

數字衰減器左聲道通道(-24分貝)②

7

4527h

數字衰減器右聲道通道(-24分貝)②

8

4600h

關閉過採樣、啓用I2S傳輸數據格式③

12

49E0h

DAC(DAL,DAR)和模擬偏置功率上電

13

5601h

零交叉檢測啓用

14

4803h

模擬調音臺(MXL,MXR)上電

15

5811h

模擬調音臺輸入(SW2,SW5)選擇

16

49ECh

耳機放大器(HPL,HPR, HPC)上電

18

4A01h

Vcom上電

19

5230h

模擬前端(D2S,MCB, PG1,2,5,6)上電

20

5711h

模擬輸入(MUX3, MUX4)選擇。模擬輸入(MUX1,MUX2)選擇

①.這些寄存器設置(打開)時,VDD應優先打開或着同時打開。所有電源上電後,寄存器數據需要伴隨系統時鐘輸入的進行設置。

②.可以設置任何音量和衰減值,這些值需要在系統斷電時保存在寄存器數據中。

③.設置音頻接口格式方便與DSP或解碼器匹配並被使用。

                                                                 表2 寄存器的上電時序

根據表2,設備上電後,PCM1774啓動,在telnet設備的終端操作,通過I2C設置PCM1774主要模式控制寄存器的值。如圖3所示:

 

            圖3 寄存器寫數據

           按時序設置主要模式控制寄存器的值:

                        i2c_write 0 0x8e 0x40 0x27
                        i2c_write 0 0x8e 0x41 0x27
                        i2c_write 0 0x8e 0x44 0x27
                        i2c_write 0 0x8e 0x45 0x27
                        i2c_write 0 0x8e 0x46 0x00
                        i2c_write 0 0x8e 0x49 0xe0
                        i2c_write 0 0x8e 0x56 0x01
                        i2c_write 0 0x8e 0x48 0x03
                        i2c_write 0 0x8e 0x58 0x11
                        i2c_write 0 0x8e 0x49 0xec
                        i2c_write 0 0x8e 0x4a 0x01
                        i2c_write 0 0x8e 0x52 0x30
                        i2c_write 0 0x8e 0x57 0x11

5.斷電前,主要模式控制寄存器的設置時序

時序

寄存器及數據

設置項說明

1

447Fh

DAC L- CH數字軟靜音啓用.

2

457Fh

DAC R-CH數字軟靜音啓用.

4

5811h

模擬調音臺輸入( SW2,SW5)選擇

5

49ECh

耳機放大器(HPL,HPR,HPC)上電.②

6

5200h

模擬前端(D2S,MCB,PG1,2,5,6)斷電

7

5A00h

PG1,PG2增益控制(0 dB爲單位)

8

4A00h

Vcom斷電

9

等待時間(750毫秒).③

10

49E0h

耳機放大器(HPL,HPR, HPC)關閉電源,揚聲器放大器(SPL,SPR)斷電

11

4800h

模擬調音臺(MXL,MXR)斷電

12

4900h

DAC(DAL,DAR)和模擬偏置電源關閉

13

關閉所有電源.④

①.可以設置任何音量和衰減值。

②.電源關閉時,需要設置耳機放大器。

③.PCM1774的Vcom到達公共電平的地電平需要時間。所允許的等待時間依賴於設置寄存器125的PTM[1:0]、RES[4:0]。默認設置爲750毫秒。

④.此處不需要電源排序。根據時鐘輸入設置的寄存器後,關閉所有電源。

                                                                            表3 寄存器的斷電時序

          根據表3,設備斷電前,PCM1774啓動,在telnet設備的終端操作,按時序通過I2C設置PCM1774主要模式控制寄存器的值:

                           i2c_write 0 0x8e 0x44 0x7f

                           i2c_write 0 0x8e 0x45 0x7f

                           i2c_write 0 0x8e 0x58 0x11

                           i2c_write 0 0x8e 0x49 0xec

                           i2c_write 0 0x8e 0x52 0x0

                           i2c_write 0 0x8e 0x5a 0x0

                           i2c_write 0 0x8e 0x4a 0x0

                           i2c_write 0 0x8e 0x49 0xe0

                            i2c_write 0 0x8e 0x48 0x0

                            i2c_write 0 0x8e 0x49 0x0

PCM的數據手冊(也可以去TI官網下載):海思芯片調試PCM1774及PCM1774數據手冊.rar

 

  • 總結

當研究了一段時間後,陷入停滯時,最快的方法的是諮詢做驅動的同事,畢竟其有相關的經驗。但有可能單個同事的想法有不全面,可以再諮詢他人。如果軟件上做足了功夫,不要懷疑自己,大膽的想是不是硬件問題。

另外,首先需要明白PCM1774的工作原理(用I2C控制模式、I2S傳輸數據)。然後,如何讓其實現工作。I2C的如何控制、如何打開I2S的數據傳輸。然後, I2C控制配置什麼寄存器、成什麼模式。英文數據手冊太長,可以搜索關鍵詞(mode、power up、work、function、programer、user)等和啓動PCM1774工作的相關寄存器。上電後,然後仔細看需要配置的寄存器的各寄存器的內容、代表含義、配置什麼值等。

最重要的是,不要停滯,不要害怕,迷茫時問人,大膽懷疑。

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