ROC-3308-CC I2S_1 8通道输出的问题
我们现在使用RK3308开发板实现一个8通道输入,8通道输出的需求。具体实现如下:
1、8路mic接I2S0输入。
2、将8路mic输入的信号直接由I2S1 8路输出。
3、使用命令: arecord -Dhw:0,0 -f S16_LE -r 44100 -c 8 | aplay -Dhw:0,0 -f S16_LE -r 44100 -c 8
遇到的问题:
mic输入没有问题,但I2S_1上只能测量到I2S1_SDO0_M0上有波形输出,其他SDO1-SDO3无波形输出,请技术大神帮忙协助分析一下是哪里配置有问题。
DTS配置如下:
i2s_16ch_dais: i2s-16ch-dais {
status = "okay";
compatible = "rockchip,rk3308-multi-dais", "rockchip,multi-dais";
dais = <&i2s_8ch_0>, <&i2s_8ch_1>;
capture,channel-mapping = <8 0>;
playback,channel-mapping = <0 8>;
//bitclock-master = <1 0>;
//frame-master = <1 0>;
//rockchip,grf = <&grf>;
};
&i2s_8ch_1 {
status = "okay";
#sound-dai-cells = <0>;
rockchip,no-dmaengine;
pinctrl-names = "default";
pinctrl-0 = <&i2s_8ch_1_m0_sclktx
&i2s_8ch_1_m0_lrcktx
&i2s_8ch_1_m0_mclk
&i2s_8ch_1_m0_sdo0
&i2s_8ch_1_m0_sdo1_sdi3
&i2s_8ch_1_m0_sdo2_sdi2
&i2s_8ch_1_m0_sdo3_sdi1
&i2s_8ch_1_m0_sdi0>;
}; //rockchip,grf = <&grf>; 为什么要将这个屏蔽掉 ?这个是16ch必要的属性。另外i2s_8ch_1_m0_sdo1_3是既可以做输入也可以做输出的,你要确定它被正确设置为输出。 飞神 发表于 2019-5-17 11:31
//rockchip,grf = ; 为什么要将这个屏蔽掉 ?这个是16ch必要的属性。另外i2s_8ch_1_m0_sdo1_3是既可以做输 ...
读寄存器是输入状态,确实不对,但我在RK3308.dtsi中将其配置为输出,查看寄存器还是输入,奇了怪了。
i2s_8ch_1_m0_sdo1_sdi3: i2s-8ch-1-m0-sdo1-sdi3 {
rockchip,pins =
<1 RK_PB0 RK_FUNC_2 &pcfg_output_low>;
};
i2s_8ch_1_m0_sdo2_sdi2: i2s-8ch-1-m0-sdo2-sdi2 {
rockchip,pins =
<1 RK_PB1 RK_FUNC_2 &pcfg_output_low>;
};
i2s_8ch_1_m0_sdo3_sdi1: i2s-8ch-1-m0-sdo3_sdi1 {
rockchip,pins =
<1 RK_PB2 RK_FUNC_2 &pcfg_output_low>;
}; 飞神 发表于 2019-5-17 11:31
//rockchip,grf = ; 为什么要将这个屏蔽掉 ?这个是16ch必要的属性。另外i2s_8ch_1_m0_sdo1_3是既可以做输 ...
我这个是8输入,8输出,并不是16通道,所以这个不需要打开。 具体输入输出配置你得看驱动哦,我也不清楚这方面。你现在是8ch输入和8ch输出,那么就是16ch啊,换句话来说就是音频通道拼接为16ch。
页:
[1]