1. 程式人生 > >[RK3399][Android7.1] 除錯筆記 --- I2S1工作輸出是12MHz問題

[RK3399][Android7.1] 除錯筆記 --- I2S1工作輸出是12MHz問題

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

現象:

使用I2S1通道,測量到的I2S MCLK是12MHz.
理論上應該是11.288MHz.


原因:

rk3399平臺有三路I2S(其中一路內部使用,可以不管),但是MCLK只有一個,也就是說兩路I2S只有一路能佔用。而預設的sdk中,I2S1輸出時,使用的是I2S0的MCLK,I2S0預設是12MHz。

因此會看到clk_summary中I2S1是11.28MHz,但是最終輸出的是12MHz.

rk3399_mid:/ # cat /d/clk/clk_summary | grep i2s
cat /d/clk/clk_summary | grep i2s
    clk_i2s2_div                          0            0           0          0 0
       clk_i2s2_frac                      0            0           0          0 0
          clk_i2s1_div                    1            1   800000000          0 0
             clk_i2s1_frac                1            1    11289600          0 0
                clk_i2s1_mux              1            1    11289600          0 0
                   clk_i2s1               2            2    11289600          0 0
          clk_i2s0_div                    0            0   800000000          0 0
             clk_i2s0_frac                0            0    40000000          0 0
                hclk_i2s2                 0            0   100000000          0 0
                hclk_i2s1                 2            2   100000000          0 0
                hclk_i2s0                 1            2   100000000          0 0
 clk_i2sout                               1            1           0          0 0
 clk_i2s2_mux                             0            0           0          0 0
    clk_i2s2                              0            0           0          0 0
 clk_i2s0_mux                             0            1           0          0 0
    clk_i2s0                              0            1           0          0 0
       clk_i2sout_src                     0            0           0          0 0

從CRU的暫存器也可以確認,使用的是I2S0 MCLK.

rk3399_mid:/ # io -4 -l 0x10 0xff760170
ff760170:  00000380 00000180 00000300 00000000

在這裡插入圖片描述


驗證方法:

clk mux 選擇從I2S1 輸出

io -4 0xff76017c 0x10001

解決方法:

參考: [RK3399][Android7.1] 移植筆記 — 音訊Codec RT5640新增