[RK3588-Android12] 关于ES8388 喇叭+PDM回采 4+2配置

问题描述:

ES8388 喇叭+PDM回采 4+2配置如下:


解决方案:

	// MIC
	pdmics: dummy-codec {
		status = "okay";
		compatible = "rockchip,dummy-codec";
		#sound-dai-cells = <0>;
	};

	// MIC
	pdm_mic_array: pdm-mic-array {
		status = "okay";
		compatible = "simple-audio-card";
		simple-audio-card,name = "rockchip,pdm-mic-array";
		simple-audio-card,cpu {
			sound-dai = <&pdm0>;
		};
		simple-audio-card,codec {
			sound-dai = <&pdmics>;
		};
	};

	// 声卡ES8388
	es8388_sound: es8388-sound {
		status = "okay";
		compatible = "rockchip,multicodecs-card";
		rockchip,card-name = "rockchip-es8388";
		// hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
		io-channels = <&saradc 3>;
		io-channel-names = "adc-detect";
		keyup-threshold-microvolt = <1800000>;
		poll-interval = <100>;
		// SPK_CTL_H 喇叭脚自行配置
		spk-con-gpio = <&gpioX RK_PXX GPIO_ACTIVE_HIGH>;
		// 耳机控制GPIO
		// hp-con-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
		linein-type = <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 = <&es_det>;
		play-pause-key {
			label = "playpause";
			linux,code = <KEY_PLAYPAUSE>;
			press-threshold-microvolt = <2000>;
		};
	};

&i2c7 {
	status = "okay";

	//这里需要根据新老SDK配置 clock部分的配置不一样
	//新SDK如下
	es8388: es8388@11 {
		status = "okay";
		#sound-dai-cells = <0>;
		compatible = "everest,es8388", "everest,es8323";
		reg = <0x11>;
		clocks = <&mclkout_i2s0>;
		clock-names = "mclk";
		assigned-clocks = <&mclkout_i2s0>;
		assigned-clock-rates = <12288000>;
		pinctrl-names = "default";
		pinctrl-0 = <&i2s0_mclk>;
	};
	//旧SDK如下
	es8388: es8388@11 {
		status = "disabled";
		#sound-dai-cells = <0>;
		compatible = "everest,es8388", "everest,es8323";
		reg = <0x11>;
		clocks = <&cru I2S0_8CH_MCLKOUT>;
		clock-names = "mclk";
		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
		assigned-clock-rates = <12288000>;
		pinctrl-names = "default";
		pinctrl-0 = <&i2s0_mclk>;
};

// 根据原理图自行配置clk 和sdi通路 有几路配置几路
&pdm0 {
	status = "okay";
	// 通道顺序 自行配置
	//rockchip,path-map = <0 1 2 3>;
	pinctrl-names = "default";
	pinctrl-0 = <&pdm0m0_clk1
		     &pdm0m0_sdi0  &pdm0m0_sdi2>;
};

使用查看声音命令 cat /proc/asound/cards 如下在这里插入图片描述
如声卡未能注册成功,自行使用 dmesg | grep pdm 检查相关声音注册是否有报错,需要注意pdm的sdio脚是否有复用,如果复用需要去除。

以上声卡注册成功后,使用命令进行录音采集。因为回采使用系统的录音应用是录制不到声音的。
使用 tinycap /mnt/rec.wav -D 1 -d 0 –c 4 对声卡1进行声音录制。
使用adb pull /mnt/rec.wav E:\ 将声音转出

最后使用电脑端的Audacity软件播放声音查看声道如下:
在这里插入图片描述
这里可以看到声音被正常录制到,左右声道正常。


  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Android 12 RK3588多应用录音适配是指在搭载Android 12操作系统的RK3588芯片平台上,实现多个应用程序同时进行录音的适配工作。 首先,Android 12为开发者提供了新的录音API,使得应用程序可以直接访问设备的录音功能。这些API允许应用程序获取麦克风输入并进行录音,并提供了诸如音频格式、编码器选择和文件输出等功能。在RK3588芯片平台上,开发者可以使用这些API来实现多个应用程序同时进行录音的需求。 其次,多应用录音适配需要对RK3588芯片平台的硬件进行适配。RK3588芯片平台通常搭载高性能的多核处理器和专业级音频芯片,这些硬件可以支持多个应用程序同时进行录音的需求。开发者需要确保录音API在RK3588芯片平台上的稳定性和兼容性,以保证多应用录音的正常使用。 此外,开发者还需要考虑多应用录音的隐私和安全问题。在Android 12中,录音权限被认为是一项敏感权限,需要用户明确授权才能被应用程序访问。开发者需要遵循Android 12的权限管理规则,确保用户在进行多应用录音时的隐私和安全得到有效的保障。 综上所述,Android 12 RK3588多应用录音适配需要开发者利用Android 12新的录音API,对RK3588芯片平台进行硬件适配,以及遵循权限管理规则,保障多应用录音的稳定性、兼容性、隐私和安全。这将为用户提供更好的录音体验,同时为开发者提供更大的应用场景。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值