rk3588调试es8388语音编解码IC小结

news/2024/10/22 7:57:49/

本次调试es8388语音编解码IC,按照以下思路(如果出现内核崩溃的问题,建议可以同步下rk原厂代码):

1、dts的配置
  &i2c7 {  //i2c总线确认status = "okay";pinctrl-names = "default";pinctrl-0 = <&i2c7m0_xfer>;  //总线IO要配置对es8388: es8388@11 {status = "okay";#sound-dai-cells = <0>;compatible = "everest,es8388", "everest,es8323";reg = <0x11>;clocks = <&cru I2S0_8CH_MCLKOUT>;clock-names = "mclk";//               sda-gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;//               scl-gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;assigned-clock-rates = <12288000>;pinctrl-names = "default";pinctrl-0 = <&i2s0_mclk>;};};
es8388_sound: es8388-sound {status = "okay";compatible = "rockchip,multicodecs-card";rockchip,card-name = "rockchip,es8388";hp-det-gpio = <&gpio1 2 1>;spk-con-gpio = <&gpio1 3 0>;hp-con-gpio = <&gpio0 8 0>;rockchip,format = "i2s";rockchip,mclk-fs = <256>;rockchip,cpu = <&i2s0_8ch>;rockchip,codec = <&es8388>;rockchip,audio-routing ="Headphone", "LOUT1","Headphone", "ROUT1","Speaker", "LOUT2","Speaker", "ROUT2","Headphone", "Headphone Power","Headphone", "Headphone Power","Speaker", "Speaker Power","Speaker", "Speaker Power","LINPUT1", "Main Mic","LINPUT2", "Main Mic","RINPUT1", "Headset Mic","RINPUT2", "Headset Mic";pinctrl-names = "default";pinctrl-0 = <&hp_det>;};
 &i2s0_8ch {  status = "okay";pinctrl-0 = <&i2s0_lrck  //I2S0的pin的配置,注意使用哪个就添加哪个,注意IO不要跟其他配置冲突&i2s0_sclk&i2s0_sdi0&i2s0_sdo0>;
};
2 确认i2s0打开,对应的GPIO没有复用,可以通过以下命令确认(硬件原理方面对应原理图确认):
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
cat /sys/kernel/debug/gpio 
以及查找dts编译后的文件确认:.rk3588-evb3-lp5-v10-linux.dtb.dts.tmp
3、验证过程:

查看声卡设备:
root@VC-RK3588:/# cat /proc/asound/cards
0 [rockchipes8388 ]: rockchip_es8388 - rockchip,es8388
rockchip,es8388
root@VC-RK3588:/#

1、安装工具
① apt-get update
② apt install ffmpeg
③ apt install alsa-utils

ffmpeg -f alsa -i hw:0,0 out.wav //录音
aplay -D hw:0,0 out.wav //放音

如果播放单声道音频文件(mono)要加plug:
aplay -D plughw:0,0 zangyuquli.wav

hw:0,0 声卡0和设备0的确定,使用 aplay -l 查看:
root@VC-RK3588:/# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipes8388 [rockchip,es8388], device 0: dailink-multicodecs ES8323.7-0011-0 [dailink-multicodecs ES8323.7-0011-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

从上面可以看出我的audio设备是:
card 0: rockchipes8388 [rockchip,es8388], device 0: dailink-multicodecs ES8323.7-0011-0 [dailink-multicodecs ES8323.7-0011-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

声卡id为0(因为是card 0),设备id为0(device 0),所以aplay -D plughw:0,0 xxx.wav 即可。


http://www.ppmy.cn/news/1539001.html

相关文章

Linux服务器安全-使用非root账号登陆

在实际的业务场景中&#xff0c;如果root登录Linux操作系统的ECS实例&#xff0c;则可以获取系统最大权限。该方式虽然便于进行系统运维操作&#xff0c;但如果ECS实例被入侵&#xff0c;则会存在影响严重的数据安全风险。 对于该场景&#xff0c;建议如下处理&#xff1a; 1、…

2024年【四川省安全员A证】考试内容及四川省安全员A证复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 四川省安全员A证考试内容根据新四川省安全员A证考试大纲要求&#xff0c;安全生产模拟考试一点通将四川省安全员A证模拟考试试题进行汇编&#xff0c;组成一套四川省安全员A证全真模拟考试试题&#xff0c;学员可通过…

Mac pro 之Android Studio之解决logcat日志无法输出问题

分析可能原因&#xff1a; 手机没连接电脑&#xff0c;或者adb服务没连接上adb链接上&#xff0c;设备启动太多&#xff0c;没选对正确设备adb链接上&#xff0c;设备也选择正确&#xff0c;排查下是否添加过滤条件且正确如果还不出来再确定下&#xff0c;设备的开发者选项是否…

多线程(三):线程等待获取线程引用线程休眠线程状态

目录 1、等待一个线程&#xff1a;join 1.1 join() 1.2 join(long millis)——"超时时间" 1.3 join(long millis&#xff0c;int nanos) 2、获取当前线程的引用&#xff1a;currentThread 3、休眠当前进程&#xff1a;sleep 3.1 实际休眠时间 3.2 sleep的特殊…

QD1-P4 HTML标题标签(h)水平线标签(hr)

本节视频 www.bilibili.com/video/BV1n64y1U7oj?p4 ‍ 本节学习&#xff1a; title标签&#xff08;页面标题&#xff09;h标签&#xff08;文章标题&#xff09;hr标签&#xff08;横线&#xff09;body标签的属性&#xff08;网页背景色&#xff0c;字体颜色&#xff09…

Nginx和Lua配合使用

在NGINX中使用Lua进行开发时&#xff0c;可以通过不同的配置块来指定Lua脚本的执行位置。这些配置块被称为“phase hooks”&#xff0c;即阶段挂钩。每个阶段挂钩都有其特定的作用时间和目的。以下是NGINX Lua模块中常见的配置指令及其用途&#xff1a; 常见的Phase Hooks 1.a…

金融市场中的量化交易与算法优化分析

量化交易在现代金融市场中扮演着越来越重要的角色&#xff0c;通过数学模型和算法的分析&#xff0c;量化交易能够帮助投资者在复杂的市场环境中做出高效的投资决策。本文将探讨量化交易的基本原理、常见策略以及如何通过算法优化提高交易效果。 #### 一、量化交易的基本概念 …

vue3 同一路由不同参数打开多个详情tag

一、router.js 路由中新增路由并添加 /:tabId 起自己的名字 { // 仅 示 例path: "detail/:tabId",component: () > import("/views/kingenta/tender/details"),name: "Details",meta: { title: "详情", affix: false },…