RK平台之DP声卡的调试

        简单介绍rk平台dp声卡的调试以及注意事项,希望对一些刚入门音频的同学有帮助。

        首先了解下这个DP和EDP;DP接口属于外部视频接口,只能用作显示器与驱动板之间的传输,不可以用芯片与芯片之间的传输;EDP接口属于内部视频接口,可以用作芯片与芯片之间的传输,也可以用作显示器与驱动板之间的传输。EDP是基于DP架构和协议基础上的一种接口,是同宗关系,性能上是没有什么区别的,只是EDP的功能比较多。

        DP声卡在SOC内走的是spdif,可以通过cat /proc/asound/cards查看下3588 evb上自带DP声卡,如下所示

        插拔dp时可以看下extcon的状态是什么,如下命令,DP=0,表示未插入,DP=1,表示插入。dp插入检测代码位于frameworks\base\services\core\java\com\android\server\WiredAccessoryManager.java

cat /sys/class/extcon/extcon*/state

        dp声卡,其hal层走hardware\rockchip\audio\spdif_hal\audio_hw.c;所以当tinyplay指定DP声卡有声音输出,而android无声音输出,需要在hal层的struct dev_proc_info SPDIF_OUT_NAME[]加上dp声卡的id即可;

        kernel目录下的.config文件中设置CONFIG_SND_SOC_ROCKCHIP_CDNDP=y;dts配置可以参考如下;

/ {
dp_sound: dp-sound {
status = "okay";
compatible = "rockchip,cdndp-sound";
rockchip,cpu = <&spdif>;
rockchip,codec = <&cdn_dp 1>;
};
};

&spdif {
status = "okay";
};

&cdn_dp {
status = "okay";
extcon = <&fusb0>;
phys = <&tcphy0_dp>;
};

&dp_sound {
status = "okay";
};

        这边需要注意的是,rockchip_cdndp.c这个是4.19及以前的kernel用的,5.10之后,alsa更新了;例如3399平台kernel 5.10,可让客户使用如下配置来注册dp声卡;

	hdmi_dp_sound: hdmi-dp-sound {
		status = "okay";
		compatible = "rockchip,rk3399-hdmi-dp";
		rockchip,cpu = <&i2s2>;
		rockchip,codec = <&cdn_dp>;
	};

        如果客户编译dp驱动会报错,我们先不用dp驱动,建议直接使用simple-card去配置注册;

    dp_codec: dp-codec {
        compatible = "simple-audio-card";
        simple-audio-card,format = "i2s";
        simple-audio-card,mclk-fs = <256>;
        simple-audio-card,name = "dp-sound";
        simple-audio-card,cpu {
            sound-dai = <&spdif>; //修改这,才出声音
        };
        simple-audio-card,codec {
            sound-dai = <&cdn_dp 1>; 
        };
    };
&i2s2 {
    #sound-dai-cells = <0>;
    status = "okay";
};

### RK3568 平台 4344 声卡调试方法及常见问题解决方案 #### 1. 环境准备 为了成功完成 RK3568 上的 4344 声卡调试工作,需确保开发环境已经正确搭建完毕。这包括但不限于安装好必要的编译工具链、获取最新的 OpenHarmony 源码并打上补丁以支持特定硬件特性[^1]。 #### 2. 配置 DTS 文件 针对 4344 声卡的支持,在设备树源文件 (DTS) 中定义相应的节点是非常重要的一步。这些节点描述了声卡的具体参数及其与其他组件之间的连接关系。对于 4344 声卡而言,重点在于设置正确的 I2S 接口配置以及与 Codec 的通信方式[^2]。 ```c sound { compatible = "simple-audio-card"; simple-audio-card,name = "rk3568-4344-codec"; simple-audio-card,format = "i2s"; ... }; ``` #### 3. 修改 HCS 配置 HCS 是一种用于描述硬件资源和服务接口的语言。在 OpenHarmony 下调整音频子系统的功能时,通常也需要同步修改对应的 .hcs 文件来反映新的变化。特别是当涉及到不同类型的 DAC 或 ADC 组件集成时,更应该仔细校验这部分内容是否匹配实际使用的硬件规格。 #### 4. 编译烧录固件 完成上述准备工作之后,就可以尝试重新编译整个项目并将生成的目标镜像刷入目标板中进行测试验证。如果一切顺利的话,则可以在启动日志里看到关于新加入声卡的相关初始化信息输出;反之则可能需要回溯前面几个环节查找潜在错误原因所在。 #### 5. 测试与优化 通过命令行工具如 `aplay` 和 `arecord` 来检验麦克风输入和扬声器输出的效果如何。注意观察是否有异常噪音干扰或是音量过低等问题发生,并据此作出适当调整直至达到满意效果为止[^3]。 #### 6. 解决常见问题 - **无法识别声卡**: 检查 DTS 文件中的设备名称是否拼写无误,确认内核模块加载正常。 - **声音失真严重**: 尝试降低采样率或改变缓冲区大小,避免数据溢出造成质量问题。 - **录音无声**: 查看 ALSA Mixer 设置,保证 MIC Boost 开启状态,同时排查线路连接情况确保物理接触良好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值