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

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

1、dts的配置
c 复制代码
  &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>;
           };
 };
c 复制代码
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>;
 };
c 复制代码
 &i2s0_8ch {  
         status = "okay";
         pinctrl-0 = <&i2s0_lrck  //I2S0的pin的配置,注意使用哪个就添加哪个,注意IO不要跟其他配置冲突
                      &i2s0_sclk
                      &i2s0_sdi0
                      &i2s0_sdo0>;
};
2 确认i2s0打开,对应的GPIO没有复用,可以通过以下命令确认(硬件原理方面对应原理图确认):
bash 复制代码
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 即可。

相关推荐
报错小能手4 分钟前
linux学习笔记(18)进程间通讯——共享内存
linux·服务器·前端
第四维度412 分钟前
【全志V821_FoxPi】6-2 IMX219 MIPI摄像头适配
linux·ipc·tina·v821·imx219
杜子不疼.15 分钟前
【Linux】进程的初步探险:基本概念与基本操作
linux·人工智能·ai
de之梦-御风1 小时前
【Linux】 开启关闭MediaMTX服务
linux·运维·服务器
Morphlng1 小时前
wstunnel 实现ssh跳板连接
linux·服务器·网络·ssh
星如雨落1 小时前
Linux VScode 安装PHP环境
linux·php·visual studio code
深思慎考2 小时前
Linux二进制查看工具——hexdump
linux·c++·二进制·文件查看·hexdump
云边有个稻草人3 小时前
从内核调优到集群部署:基于Linux环境下KingbaseES数据库安装指南
linux·数据库·金仓数据库管理系统
Raymond运维3 小时前
MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
linux·数据库·mysql
夜月yeyue3 小时前
ART 加速器、流水线与指令预测的关系详解
linux·服务器·c语言·单片机·嵌入式硬件·性能优化·嵌入式高阶技巧