Firefly开源社区

[应用开发] ROC-3308-CC I2S_1 8通道输出的问题

43

积分

0

威望

0

贡献

技术小白

积分
43
发表于 2019-5-16 19:27:08     
我们现在使用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>;
};
回复

使用道具 举报

166

积分

1

威望

0

贡献

技术小白

积分
166
发表于 2019-5-17 11:31:35     
//rockchip,grf = <&grf>; 为什么要将这个屏蔽掉 ?这个是16ch必要的属性。另外i2s_8ch_1_m0_sdo1_3是既可以做输入也可以做输出的,你要确定它被正确设置为输出。
回复

使用道具 举报

43

积分

0

威望

0

贡献

技术小白

积分
43
发表于 2019-5-20 10:34:13     
飞神 发表于 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>;
                        };
回复

使用道具 举报

43

积分

0

威望

0

贡献

技术小白

积分
43
发表于 2019-5-20 10:44:08     
飞神 发表于 2019-5-17 11:31
//rockchip,grf = ; 为什么要将这个屏蔽掉 ?这个是16ch必要的属性。另外i2s_8ch_1_m0_sdo1_3是既可以做输 ...

我这个是8输入,8输出,并不是16通道,所以这个不需要打开。
回复

使用道具 举报

166

积分

1

威望

0

贡献

技术小白

积分
166
发表于 2019-5-20 11:10:39     
具体输入输出配置你得看驱动哦,我也不清楚这方面。你现在是8ch输入和8ch输出,那么就是16ch啊,换句话来说就是音频通道拼接为16ch。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表