RK3308B PLUSS CC + MIC阵列录音无声

硬件 : 智能IoT开发套件 + MOD-MIC-4XAnalog麦克风阵列模块
固件:ROC-RK3308B-CC-PLUS-Qt-rgb_7.0inch-VoIP-20200511
操作步骤:

/ # cat /proc/asound/cards
0 [rockchiprk3308b]: rockchip_rk3308 - rockchip,rk3308b-acodec
rockchip,rk3308b-acodec
1 [Audio ]: USB-Audio - AC108 USB Audio
XPowers AND ST AC108 USB Audio at usb-ff440000.usb-1.1, full speed
7 [Loopback ]: Loopback - Loopback
Loopback 1
/ # amixer cset name=‘ADC MIC Group 0 Left Volume’ 3
numid=1,iface=MIXER,name=‘ADC MIC Group 0 Left Volume’
; type=INTEGER,access=rw—R–,values=1,min=0,max=3,step=0
: values=3
| dBrange-
rangemin=0,rangemax=0
| dBscale-min=0.00dB,step=0.00dB,mute=0
rangemin=1,rangemax=1
| dBscale-min=6.60dB,step=0.00dB,mute=0
rangemin=2,rangemax=2
| dBscale-min=13.00dB,step=0.00dB,mute=0
rangemin=3,rangemax=3
| dBscale-min=20.00dB,step=0.00dB,mute=0

/ # amixer cset name=‘ADC MIC Group 0 Right Volume’ 3
numid=2,iface=MIXER,name=‘ADC MIC Group 0 Right Volume’
; type=INTEGER,access=rw—R–,values=1,min=0,max=3,step=0
: values=3
| dBrange-
rangemin=0,rangemax=0
| dBscale-min=0.00dB,step=0.00dB,mute=0
rangemin=1,rangemax=1
| dBscale-min=6.60dB,step=0.00dB,mute=0
rangemin=2,rangemax=2
| dBscale-min=13.00dB,step=0.00dB,mute=0
rangemin=3,rangemax=3
| dBscale-min=20.00dB,step=0.00dB,mute=0

/ # amixer cset name=‘ADC ALC Group 0 Left Volume’ 13
numid=61,iface=MIXER,name=‘ADC ALC Group 0 Left Volume’
; type=INTEGER,access=rw—R–,values=1,min=0,max=31,step=0
: values=13
| dBscale-min=-18.00dB,step=1.50dB,mute=1
/ # ami?[?[?[J
/bin/sh: a: not found
/ # amixer cset name=‘ADC ALC Group 0 Right Volume’ 13
numid=62,iface=MIXER,name=‘ADC ALC Group 0 Right Volume’
; type=INTEGER,access=rw—R–,values=1,min=0,max=31,step=0
: values=13
| dBscale-min=-18.00dB,step=1.50dB,mute=1
/ # arecord -D hw:0,0 -c 8 -r 16000 -f S16_LE test.wav
Recording WAVE ‘test.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Channels 8
^CAborted by signal Interrupt…
/ # ?[J
/ # ?[Jcord -D hw:0,0 -c 8 -r 16000 -f S16_LE test.wav?[J
/ # ls
bin etc linuxrc mnt proc run sys tmp usr
data lib lost+found oem rockchip_test sbin system udisk var
dev lib64 media opt root sdcard test.wav userdata
/ # ls test.wav
test.wav
/ # aplay test.wav
Playing WAVE ‘test.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Channels 8
^CAborted by signal Interrupt…
/ # ls -l test.wav
-rw-r–r-- 1 root root 10176044 Jun 22 20:56 test.wav
/ #
: values=13
| dBscale-min=-18.00dB,step=1.50dB,mute=1
/ # ami?[?[?[J
/bin/sh: a: not found
/ # amixer cset name=‘ADC ALC Group 0 Right Volume’ 13
numid=62,iface=MIXER,name=‘ADC ALC Group 0 Right Volume’
; type=INTEGER,access=rw—R–,values=1,min=0,max=31,step=0
: values=13
| dBscale-min=-18.00dB,step=1.50dB,mute=1
/ # arecord -D hw:0,0 -c 8 -r 16000 -f S16_LE test.wav
Recording WAVE ‘test.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Channels
8
^CAborted by signal Interrupt…

/ # ?[J
/ # ?[Jcord -D hw:0,0 -c 8 -r 16000 -f S16_LE test.wav?[J
/ # ls
bin etc linuxrc mnt proc run sys tmp usr
data lib lost+found oem rockchip_test sbin system udisk var
dev lib64 media opt root sdcard test.wav userdata
/ # ls test.wav
test.wav
/ # aplay test.wav 无声!
Playing WAVE ‘test.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Channels 8

  1. 如上进行了录音操作, adb pull到电脑上回放没有声音, 是未能录音成功!

  2. 尝试Usb audio设备, 仍然不成功

arecord -D hw:1,0 -c 8 -r 16000 -f S16_LE test.wav

  1. 怀疑是3.5mm耳机插着的原因, 取下3.5mm耳机, 再次用MIC阵列录音也未能成功。

本帖最后由 firefly_zhongw 于 2020-6-29 15:29 编辑

  1. VoIP的固件,案例会占用声卡设备
  2. 要使用录音功能,可以用ROC-RK3308B-CC-PLUS官网Public固件,维基教程资源下载那有

改用ROC-RK3308B-CC-PLUS-NoUi-20200417 仍然无声音。 操作是按照WiKi在做, 而且我还尝试了设定全部通道的Gain但也没有声音。

amixer cset name='ADC MIC Group 0 Left Volume'  3   # mic1,range 0->3
amixer cset name='ADC MIC Group 0 Right Volume' 3   # mic2,range 0->3
amixer cset name='ADC ALC Group 0 Left Volume'  13  # mic1,range 0->31
amixer cset name='ADC ALC Group 0 Right Volume' 13  # mic2,range 0->31

amixer cset name='ADC MIC Group 1 Left Volume'  3   # mic1,range 0->3
amixer cset name='ADC MIC Group 1 Right Volume' 3   # mic2,range 0->3
amixer cset name='ADC ALC Group 1 Left Volume'  13  # mic1,range 0->31
amixer cset name='ADC ALC Group 1 Right Volume' 13  # mic2,range 0->31

amixer cset name='ADC MIC Group 2 Left Volume'  3   # mic1,range 0->3
amixer cset name='ADC MIC Group 2 Right Volume' 3   # mic2,range 0->3
amixer cset name='ADC ALC Group 2 Left Volume'  13  # mic1,range 0->31
amixer cset name='ADC ALC Group 2 Right Volume' 13  # mic2,range 0->31

amixer cset name='ADC MIC Group 3 Left Volume'  3   # mic1,range 0->3
amixer cset name='ADC MIC Group 3 Right Volume' 3   # mic2,range 0->3
amixer cset name='ADC ALC Group 3 Left Volume'  13  # mic1,range 0->31
amixer cset name='ADC ALC Group 3 Right Volume' 13  # mic2,range 0->31

arecord -D hw:0,0 -c 8 -r 16000 -f S16_LE test.wav

看到Wiki上写了内置codec的mic录音没声音要检查偏置电压,请问我所用的MIC阵列是否也需要检查?
我这里只用FPC线把MIC和3308B连接起来了,没有额外供电。

本帖最后由 firefly_zhongw 于 2020-6-29 17:48 编辑

  1. MOD-MIC-4XAnalog板子,是已经添加了偏置电压的
  2. 检查FPC线是否接对了或者接触良好,参考维基教程http://wiki.t-firefly.com/zh_CN/Core-3308Y/module_speech.html
  3. 尝试用usb的方式连接来录音是否可以(usb的方式,应该是card 1)?

firefly_zhongw 发表于 2020-6-29 17:37

  1. MOD-MIC-4XAnalog板子,是已经添加了偏置电压的
  2. 检查FPC线是否接对了或者接触良好,参考维基教程htt …

将FPC连接3308的那头换了方向后可以录音了。怀疑WiKi上的连接图有无误!

tszhicheng 发表于 2020-6-30 09:58
将FPC连接3308的那头换了方向后可以录音了。怀疑WiKi上的连接图有无误!

老哥,你用USB的接线的方式,能录音不?

这个板子自带的mic能录音吗