Audio 测试

QuecPi Alpha 单板电脑支持 Audio 外置 MIC 录制、 3.5mm 耳机录制和 3.5mm 耳机播放。

查看声卡信息

  • 在终端中输入下面命令,查看声卡的挂载情况:
root@qcm6490-idp:/opt# cat /proc/asound/cards
 0 [qcm6490idpsndca]: qcm6490 - qcm6490-idp-snd-card
                      qcm6490-idp-snd-card
  • 在终端中输入下面命令,查看已分配的 pcm 流列表:
root@qcm6490-idp:/opt# cat /proc/asound/pcm
00-00: CODEC_DMA-LPAIF_RXTX-RX-0 multicodec-0 :  : playback 1
00-01: CODEC_DMA-LPAIF_RXTX-TX-3 multicodec-1 :  : capture 1
00-02: CODEC_DMA-LPAIF_VA-TX-0 va_macro_tx1-2 :  : capture 1

外置 MIC 录制

1.使用外置 MIC 录制请输入以下命令

root@qcm6490-idp:/opt# systemctl stop pulseaudio
root@qcm6490-idp:/opt# tinymix set "VA DMIC MUX0" "DMIC0"
root@qcm6490-idp:/opt# tinymix set "VA_AIF1_CAP Mixer DEC0" "1"
root@qcm6490-idp:/opt# tinymix set "VA_DEC0 Volume" "100"
root@qcm6490-idp:/opt# agmcap test1.wav -D 100 -d 101 -c 1 -r 48000 -b 16 -i "CODEC_DMA-LPAIF_VA-TX-0"
pcm_plug_open: dlopen successful for libagm_pcm_plugin.so
Capturing sample: 1 ch, 48000 hz, 16 bit
diag: Diag_LSM_Init: invoked for pid: 1599 with init_count: 0
diag:successfully connected to socket 17
diag: Diag_LSM_Init: done for pid: 1599 with init_count: 1
diag: Successfully registered commands with the driver
  • PulseAudio 可能会占用音频设备,导致直接硬件访问(如 agmcap)失败。停止后可确保独占访问。
  • -c 1 单声道录音
  • -r 48000 采样率 48 kHz
  • -b 16 采样位深 16-bit
  • -i "CODEC_DMA-LPAIF_VA-TX-0" 指定输入设备接口为发送(录音)通道 0

2.若想停止录制,请按下 ctrl+c 键,将在当前目录下生成名为 test1.wav 的音频文件

root@qcm6490-idp:/opt# ls
cni  containerd  test1.wav

3.5mm 耳机录制

1.使用 3.5mm 耳机录制前需将 gpio8 和 gpio68 电平置高

root@qcm6490-idp:/opt# rgpiod &
root@qcm6490-idp:/opt# sleep 1
root@qcm6490-idp:/opt# rgs c 999 go 4
root@qcm6490-idp:/opt# rgs c 999 gso 0 8
root@qcm6490-idp:/opt# rgs c 999 gw 0 8 1
root@qcm6490-idp:/opt# rgs c 999 gso 0 68
root@qcm6490-idp:/opt# rgs c 999 gw 0 68 1
  • gpio8------------耳机国标/美标切换控制开关,置0:欧标,置1:美标
  • gpio68-----------耳机电源供电使能开关,置0:禁用,置1:使能

2.使用 3.5mm 耳机录制请输入以下命令

root@qcm6490-idp:/opt# systemctl stop pulseaudio
root@qcm6490-idp:/opt# tinymix set "TX DEC0 MUX" "SWR_MIC" 
root@qcm6490-idp:/opt# tinymix set "TX SMIC MUX0" "ADC1" 
root@qcm6490-idp:/opt# tinymix set "TX_AIF1_CAP Mixer DEC0" "1" 
root@qcm6490-idp:/opt# tinymix set "ADC2 MUX" "INP2" 
root@qcm6490-idp:/opt# tinymix set "ADC2 Switch" "1" 
root@qcm6490-idp:/opt# tinymix set "ADC2_MIXER Switch" "1" 
root@qcm6490-idp:/opt# tinymix set "TX_DEC0 Volume" "80" 
root@qcm6490-idp:/opt# tinymix set "ADC2 Volume" "20" 
root@qcm6490-idp:/opt# agmcap test2.wav -D 100 -d 101 -c 1 -r 48000 -b 16 -i "CODEC_DMA-LPAIF_RXTX-TX-3"
pcm_plug_open: dlopen successful for libagm_pcm_plugin.so
Capturing sample: 1 ch, 48000 hz, 16 bit
diag: Diag_LSM_Init: invoked for pid: 1384 with init_count: 0
diag:successfully connected to socket 17
diag: Diag_LSM_Init: done for pid: 1384 with init_count: 1
diag: Successfully registered commands with the driver

3.若想停止录制,请按下 ctrl+c 键,将在当前目录下生成名为 test2.wav 的音频文件

root@qcm6490-idp:/opt# ls
cni  containerd  test2.wav

3.5mm 耳机播放

1.使用 3.5mm 耳机播放前需将gpio8和gpio68电平置高

root@qcm6490-idp:/opt# rgpiod &
root@qcm6490-idp:/opt# sleep 1
root@qcm6490-idp:/opt# rgs c 999 go 4
root@qcm6490-idp:/opt# rgs c 999 gso 0 8
root@qcm6490-idp:/opt# rgs c 999 gw 0 8 1
root@qcm6490-idp:/opt# rgs c 999 gso 0 68
root@qcm6490-idp:/opt# rgs c 999 gw 0 68 1
  • gpio8-------------耳机国标/美标切换控制开关,置0:欧标,置1:美标
  • gpio68------------耳机电源供电使能开关,置0:禁用,置1:使能

2.使用 3.5mm 耳机播放请输入以下命令

root@qcm6490-idp:/opt# systemctl stop pulseaudio
root@qcm6490-idp:/opt# tinymix set "RX_MACRO RX0 MUX" "AIF1_PB" 
root@qcm6490-idp:/opt# tinymix set "RX_MACRO RX1 MUX" "AIF1_PB" 
root@qcm6490-idp:/opt# tinymix set "RX INT0_1 MIX1 INP0" "RX0" 
root@qcm6490-idp:/opt# tinymix set "RX INT1_1 MIX1 INP0" "RX1" 
root@qcm6490-idp:/opt# tinymix set "RX INT0 DEM MUX" "CLSH_DSM_OUT" 
root@qcm6490-idp:/opt# tinymix set "RX INT1 DEM MUX" "CLSH_DSM_OUT" 
root@qcm6490-idp:/opt# tinymix set "RX_COMP1 Switch" "1" 
root@qcm6490-idp:/opt# tinymix set "RX_COMP2 Switch" "1"
root@qcm6490-idp:/opt# tinymix set "HPHL Switch" "1" 
root@qcm6490-idp:/opt# tinymix set "HPHR Switch" "1" 
root@qcm6490-idp:/opt# tinymix set "HPHL_RDAC Switch" "1" 
root@qcm6490-idp:/opt# tinymix set "HPHR_RDAC Switch" "1" 
root@qcm6490-idp:/opt# agmplay test.wav -D 100 -d 100 -i "CODEC_DMA-LPAIF_RXTX-RX-0"
  • 音频播放完会自动停止,若想提前停止,可按下 ctrl+c 键