RK3568开发笔记-RK809音频调试

目录

前言

一、RK809部分原理图

二、设备树配置

三、音频播放测试​​​​​​​

总结


前言

本文主要介绍在RK3568平台介绍RK809电源管理芯片codec spk喇叭功能调试记录。

一、RK809部分原理图

RK809 SPK部分原理图如下所示。

RK3568开发笔记-RK809音频调试_第1张图片

二、设备树配置

原厂SDK默认已经打开了RK809喇叭相关设备树配置,主要配置有以下几点:

1、RK809_sound配置

  rk809_sound: rk809-sound {
                status = "okay";
                compatible = "simple-audio-card";
                simple-audio-card,format = "i2s";
                simple-audio-card,name = "rockchip,rk809-codec";
                simple-audio-card,mclk-fs = <256>;

                simple-audio-card,cpu {
                        sound-dai = <&i2s1_8ch>;
                };
                simple-audio-card,codec {
                        sound-dai = <&rk809_codec>;
                };
        };

2、RK809-codec配置

               rk809_codec: codec {
                        #sound-dai-cells = <0>;
                        compatible = "rockchip,rk809-codec", "rockchip,rk817-codec";
                        clocks = <&cru I2S1_MCLKOUT>;
                        clock-names = "mclk";
                        assigned-clocks = <&cru I2S1_MCLKOUT>, <&cru I2S1_MCLK_TX_IOE>;
                        assigned-clock-rates = <12288000>;
                        assigned-clock-parents = <&cru I2S1_MCLKOUT_TX>, <&cru I2S1_MCLKOUT_TX>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&i2s1m0_mclk>;
                        hp-volume = <20>;
                        spk-volume = <5>;
                        //mic-in-differential;
                        adc-for-loopback;
                        status = "okay";
                };
        };

 3、板级设备树配置文件配置

&rk809_sound {
        status = "okay";
};

三、音频播放测试

使用aplay命令进行音频播放测试:aplay 8k8bpsMono.wav

 发现喇叭并没有任何声音输出,结果排查,由于板卡有HDMI接口,且设备树配置了HDMI音频输出,设备默认驱动并不支持HDMI和RK809音频同时输出,且默认以HDMI为主,故需要关闭HDMI音频输出,设备树配置如下所示:

&hdmi {
        status = "okay";

        rockchip,phy-table =
                <92812500  0x8009 0x0000 0x0270>,
                <165000000 0x800b 0x0000 0x026d>,
                <185625000 0x800b 0x0000 0x01ed>,
                <297000000 0x800b 0x0000 0x01ad>,
                <594000000 0x8029 0x0000 0x0088>,
                <000000000 0x0000 0x0000 0x0000>;

};

&hdmi_in_vp0 {
        status = "okay";
};

&hdmi_in_vp1 {
        status = "disabled";
};

&hdmi_sound {
        status = "disabled";
};

&route_hdmi {
        status = "okay";
        logo,uboot = "logo.bmp";
        logo,kernel = "logo.bmp";
        logo,mode = "center";
        charge_logo,mode = "center";
        connect = <&vp0_out_hdmi>;
};

此外以下是瑞芯微对播放无声给出的一些排查思路,可以借鉴参考:

  1. 确认音频源为 非静音文件
  2. 使用 aplay 或者 tinyplay 播放,定位问题是发生在用户态还是内核态
  3. 播放等待10秒以上确认是否为 I/O error 问题
  4. 使用 amixer 或者 tinymix 检查 CODEC 内部 DAC 通路是否打开,音量是否静音
  5. 查看 寄存器 配置,配合芯片手册或者 CODEC 手册确认配置是否正确:IOMUX,DAI,CODEC。
  6. 使用 万用表 和 示波器 测量电压,时钟,数据。确认电压,时钟正常,数据线上有波形;测量
  7. CODEC 近端 模拟输出信号是否正常,测量 PA 使能 gpio 电平,逐级定位问题点
     

总结

以上为本人调试RK809-sound功能的调试记录,在确保硬件无问题的情况下,没有声音可以参考本文介绍方式排查。

你可能感兴趣的:(RK3568开发笔记,c语言,架构,linux,后端)