Firefly开源社区

标题: RK3308 2通道模拟MIC无法录音 [打印本页]

作者: zhangfengzan    时间: 2020-3-20 16:05
标题: RK3308 2通道模拟MIC无法录音

pdm_i2s_dais: pdm-i2s-dais {
                status = "okay";
                compatible = "rockchip,rk3308-multi-dais", "rockchip,multi-dais";
                dais = <&pdm_8ch>, <&i2s_8ch_2>;
                capture,channel-mapping = <6 2>;
                playback,channel-mapping = <0 2>;
                bitclock-inversion = <1 0>;
        };
我用的RK3308-ROC-CC请教下,我插入耳机录音为什么录到的所有通道都是空的,没数据,按理说前6个通道没数据,最后2个通道有数据的啊?能解释下吗?谢谢
作者: firefly_zhongw    时间: 2020-3-21 14:47
1. pdm_i2s_dais: 这个是适配麦克风阵列板的或者数字mic的
2. 使用耳机mic,可以参考如下
  1. diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts b/kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts
  2. index b996358..735ddb2 100644
  3. --- a/kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts
  4. +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts
  5. @@ -13,7 +13,7 @@
  6.         compatible = "firefly,rk3308-roc-cc-dmic-pdm_emmc", "firefly,rk3308";

  7.         pdm_i2s_dais: pdm-i2s-dais {
  8. -               status = "okay";
  9. +               status = "disabled";
  10.                 compatible = "rockchip,rk3308-multi-dais", "rockchip,multi-dais";
  11.                 dais = <&pdm_8ch>, <&i2s_8ch_2>;
  12.                 capture,channel-mapping = <6 2>;
  13. @@ -34,13 +34,23 @@
  14.         };

  15.         vad-sound {
  16. -               status = "okay";
  17. +               status = "disabled";
  18.                 compatible = "rockchip,multicodecs-card";
  19.                 rockchip,card-name = "rockchip,rk3308-vad";
  20.                 rockchip,cpu = <&pdm_i2s_dais>;
  21.                 rockchip,codec = <&acodec>, <&vad>;
  22.         };

  23. +       vad_acodec_sound: vad-acodec-sound {
  24. +                status = "okay";
  25. +                compatible = "rockchip,multicodecs-card";
  26. +                rockchip,card-name = "rockchip,rk3308-acodec";
  27. +                rockchip,codec-hp-det;
  28. +                rockchip,mclk-fs = <256>;
  29. +                rockchip,cpu = <&i2s_8ch_2>;
  30. +                rockchip,codec = <&acodec>, <&vad>;
  31. +        };
  32. +
  33.      leds {
  34.          status = "okay";
  35.          compatible = "gpio-leds";
  36. @@ -63,6 +73,14 @@
  37.         status = "disabled";
  38. };

  39. +&acodec {
  40. +    rockchip,micbias1;
  41. +    rockchip,micbias2;
  42. +    rockchip,en-always-grps = <0 1 2 3>;
  43. +    rockchip,adc-grps-route = <0 1 2 3>;
  44. +    /delete-property/rockchip,loopback-grp;
  45. +};
  46. +
  47. &bluetooth_sound {
  48.      status = "okay";
  49. };
  50. @@ -74,7 +92,7 @@
  51. };

  52. &pdm_8ch {
  53. -       status = "okay";
  54. +       status = "disabled";
  55.         #sound-dai-cells = <0>;
  56.         rockchip,no-dmaengine;
  57.         pinctrl-names = "default";
  58. @@ -88,7 +106,7 @@

  59. &vad {
  60.         status = "okay";
  61. -       rockchip,audio-src = <&pdm_8ch>;
  62. +       rockchip,audio-src = <&i2s_8ch_2>;
  63.         rockchip,det-channel = <0>;
  64.         rockchip,mode = <1>;
  65.         rockchip,buffer-time-ms = <200>;
  66. @@ -102,7 +120,7 @@
  67. };

  68. &pdm_i2s_dais {
  69. -       status = "okay";
  70. +       status = "disabled";
  71.         #sound-dai-cells = <0>;
  72. };
复制代码

作者: firefly_zhongw    时间: 2020-3-23 10:45
本帖最后由 firefly_zhongw 于 2020-3-23 11:19 编辑

1. 数字音频总线跟内置codec mic是不一样的通道
2. 数字音频接口数据拼接: capture,channel-mapping = <6, 2>;表示pdm占据前6ch,i2s占据后2ch,构成录音8ch
3. 如果要用内置的codec mic录音就要配置内置codec并检查原理图上的耳机座子是否有接入mic


作者: zhangfengzan    时间: 2020-3-23 13:03
本帖最后由 zhangfengzan 于 2020-3-23 13:46 编辑


MIC是有的,第一环就是,应该是美标的。我的意思就是i2s_8ch_2和pdm不能同时work的吗?按理说不用配的啊,i2s_8ch_2播音的时候(adc),pdm也是使能的啊,耳机能听到声音不需要配的啊

作者: firefly_zhongw    时间: 2020-3-23 14:21
1.可以同时工作,只要gpio口不复用
2. ROC-RK3308-CC和ROC-RK3308B-CC是不同的开发板,拿到的开发板找对应的原理图
作者: sai-blf    时间: 2020-3-31 23:07
firefly_zhongw 发表于 2020-3-21 14:47
1. pdm_i2s_dais: 这个是适配麦克风阵列板的或者数字mic的
2. 使用耳机mic,可以参考如下

你好,我按照上面的修改,耳机mic录不到音,aplay播音耳机也不出声,arecord -l查看到的设备如下:# arecord -l
**** List of CAPTURE Hardware Devices ****
card 7: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 7: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

录音指令采用:arecord -D hw:7,0 -c 8 -r 16000 -f S16_LE --period-size=1024 --buffer-size=4096 mic7-0.wav和
                        arecord -D hw:7,1 -c 8 -r 16000 -f S16_LE --period-size=1024 --buffer-size=4096 mic7-0.wav
录到的文件无声。
请问这是哪里不对呢?


rk3308-roc-cc-dmic-pdm_emmc.pdf

3.09 KB, 下载次数: 16, 下载积分: 灯泡 -1 , 经验 -1


作者: firefly_zhongw    时间: 2020-4-1 09:10
本帖最后由 firefly_zhongw 于 2020-4-1 09:11 编辑

1. 先确定开发板的型号
2. ROC-RK3308-CC开发板耳机座子没有接mic

QQ截图20200401090823.png (84.92 KB, 下载次数: 2994)

QQ截图20200401090823.png

作者: sai-blf    时间: 2020-4-1 18:37
本帖最后由 sai-blf 于 2020-4-1 18:51 编辑
firefly_zhongw 发表于 2020-4-1 09:10
1. 先确定开发板的型号
2. ROC-RK3308-CC开发板耳机座子没有接mic

开发板型号是:ROC-RK3308-CC;看的原理图是roc-rk3308-cc-v1_3.pdf,所以一直认为有mic。roc-rk3308-cc_v00.pdf原理图确实没有mic,同时也没有模拟mic录音。按照上面的改法,aplay耳机没声音,怎么回事呢?

作者: sai-blf    时间: 2020-4-1 18:58
sai-blf 发表于 2020-4-1 18:37
开发板型号是:ROC-RK3308-CC;看的原理图是roc-rk3308-cc-v1_3.pdf,所以一直认为有mic。roc-rk3308-cc_ ...

公司有种类型的板子,我在V13的版本上测的,有mic录音

2.png (411.8 KB, 下载次数: 3244)

2.png

1.png (351.64 KB, 下载次数: 3136)

1.png

作者: firefly_zhongw    时间: 2020-4-2 09:50
1. kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts修改文件贴出来
2. 从arecord -l看,声卡设备0都没有
arecord -l查看到的设备如下:# arecord -l
**** List of CAPTURE Hardware Devices ****
card 7: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 7: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

作者: sai-blf    时间: 2020-4-2 11:13
firefly_zhongw 发表于 2020-4-2 09:50
1. kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts修改文件贴出来
2. 从arecord - ...

文件见附件,劳烦检查一下!

rk3308-roc-cc-dmic-pdm_emmc (2).pdf

3.09 KB, 下载次数: 23, 下载积分: 灯泡 -1 , 经验 -1


作者: firefly_zhongw    时间: 2020-4-3 09:45
本帖最后由 firefly_zhongw 于 2020-4-3 10:05 编辑
  1. &i2s_8ch_2 {
  2.         status = "okay";
  3. };
复制代码
  1. &acodec {
  2.         rockchip,micbias1;
  3.         rockchip,micbias2;
  4.         rockchip,en-always-grps = <0 1 2 3>;
  5.         rockchip,adc-grps-route = <3 0 1 2>;
  6.         /delete-property/rockchip,loopback-grp;
  7. };
复制代码
具体参考附件dts

rk3308-roc-cc-amic_emmc.dts.rar

1.13 KB, 下载次数: 32, 下载积分: 灯泡 -1 , 经验 -1


作者: sai-blf    时间: 2020-4-8 09:52
firefly_zhongw 发表于 2020-4-3 09:45
具体参考附件dts

参照附件的修改了,声卡设备0有了,能播放wav文件了,耳机录音还是没声音,请问耳机用美标还是国标?您这边有验证可以的update.img,发一下我验证一下吗?我看看是我这边的硬件问题还是软件问题?
作者: firefly_zhongw    时间: 2020-4-8 19:02
手头上没有ROC-RK3308-CC V13的开发板
作者: sai-blf    时间: 2020-4-8 21:45
firefly_zhongw 发表于 2020-4-8 19:02
手头上没有ROC-RK3308-CC V13的开发板

有么有其它办法呢?还得麻烦大神想想办法!
作者: sai-blf    时间: 2020-4-8 22:07
sai-blf 发表于 2020-4-8 21:45
有么有其它办法呢?还得麻烦大神想想办法!

可以录音了,之前录音的方法不对
作者: sai-blf    时间: 2020-4-8 22:45
sai-blf 发表于 2020-4-8 22:07
可以录音了,之前录音的方法不对

acodec模拟录音,通道到-c必须是8吗?录部分通道测试好像不可以啊!
arecord -D hw:0,0 -c 2 -r 16000 -f S16_LE --period-size 1024 --buffer-size 65536 -t wav -d 30   aaa.wav
作者: firefly_zhongw    时间: 2020-4-9 09:06
录音通道有效性,要看硬件上接了几个mic
作者: zhangfengzan    时间: 2020-4-21 11:12
本帖最后由 zhangfengzan 于 2020-4-21 11:19 编辑
firefly_zhongw 发表于 2020-4-1 09:10
1. 先确定开发板的型号
2. ROC-RK3308-CC开发板耳机座子没有接mic

现在原理图有roc-rk3308-cc-v1_3.pdf,这个是有耳机mic的,另一个roc-rk3308-cc_v00.pdf,是没有mic的,我的evb版本是ROC-RK3308-CC  2019-03-02 V13,现在到底用哪个为准?另外板子上硬件是有如下模拟麦克硬件接口,但是roc-rk3308-cc_v00.pdf是找不到的,这怎么解释?




作者: firefly_zhongw    时间: 2020-4-21 16:51
以开发板上的版本丝印为准,找对应的原理图。
作者: gyjk    时间: 2020-11-20 14:50
firefly_zhongw 发表于 2020-4-3 09:45
具体参考附件dts

最近也在整这个录音,有点困难
作者: zzz1228    时间: 2020-12-18 10:45
一样录不到音
作者: zzz1228    时间: 2020-12-18 11:40
录制声音
作者: zzz1228    时间: 2020-12-18 13:32
看一下资料都好难啊
作者: 中国移动,我不    时间: 2020-12-28 09:28
请问我想配置那个端口做音频输入和那个端口做音频输出,请问有相关的教程吗?一直不懂怎么配置DTS软件怎么写,请问有相关的文档吗
作者: 中国移动,我不    时间: 2021-7-23 17:46
请问楼主为什么我开启这个设备树为什么会出现kernel panic?
作者: 中国移动,我不    时间: 2021-7-24 16:42
firefly_zhongw 发表于 2020-4-3 09:45
具体参考附件dts

请问您这个dts可以使用vad_acodec_sound节点的声卡来录制4个mic的声音吗?
作者: 陆跃    时间: 2021-8-13 11:26
中国移动,我不 发表于 2020-12-28 09:28
请问我想配置那个端口做音频输入和那个端口做音频输出,请问有相关的教程吗?一直不懂怎么配置DTS软件怎么 ...

这个配置解决了吗。
作者: 中国移动,我不    时间: 2021-10-27 09:21
请问我把pdm的设备树打开为什么内核就跑死了????楼主有遇到过吗??
作者: 中国移动,我不    时间: 2021-10-27 09:25
firefly_zhongw 发表于 2020-4-2 09:50
1. kernel/arch/arm64/boot/dts/rockchip/rk3308-roc-cc-dmic-pdm_emmc.dts修改文件贴出来
2. 从arecord - ...

请问官方的每块核心板是不是只能支持一种,比如我现在用的是rk330b-cc的,我能否编译出i2s的数字麦的版本的内核,核心板是不是不支持???
作者: 中国移动,我不    时间: 2021-10-27 09:29
陆跃 发表于 2021-8-13 11:26
这个配置解决了吗。

不会啊
作者: 中国移动,我不    时间: 2021-11-3 14:15
firefly_zhongw 发表于 2020-3-23 14:21
1.可以同时工作,只要gpio口不复用
2. ROC-RK3308-CC和ROC-RK3308B-CC是不同的开发板,拿到的开发板找对应 ...

请问rk3308b支持i2s的版本吗????
作者: yp_wang    时间: 2022-10-8 17:32
验证一下,谢谢
作者: 华杞    时间: 2023-9-18 14:43
试试
作者: kiutao    时间: 2024-5-7 17:52
这块很麻烦很麻烦。RK的文档跟屎一样




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1