Milkv-duo/duo256 麦克风测试

milkv-duo256 开发板板载了一个麦克风,可以用来采集声音信号,采用的是 MIC4015P 高灵敏度咪头,焊接的时候注意正负极性,负极接 GND。
mic4015p

采用的是 SG200X 芯片自带 Audio ADC,在芯片的第 2 脚输入。

ADC 驱动

当前最新版本的 duo-buildroot-sdk (v1.1.4) 默认已经支持 Audio ADC,在内核中已经加载。

ADC 在设备树 build/boards/default/dts/cv181x/cv181x_base.dtsi 中配置如下:

adc: adc@0300A100 {
        compatible = "cvitek,cv182xaadc";
        reg = <0x0 0x0300A100 0x0 0x100>;
        clocks = <&i2s_mclk 0>;
        clock-names = "i2sclk";
        clk_source = <0x04130000>; /* MCLK source is I2S3 */
    };

ALSA 配置

duo-buildroot-sdk 默认已经配置好 ALSA 相关工具,可以直接使用。配置文件位于 buildroot-2021.05/configs/milkv-duo256m-sd_musl_riscv64_defconfig,其中已经配置好录音和播放设备,如下:

BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI=y

运行

正常启动进入 Linux 后,可在 Linux 命令行中查看设备:

$ ls /dev/snd
 controlC0  controlC1  pcmC0D0c   pcmC1D0p   timer
  • controlC0:用于声卡控制,C0 表示声卡0,对应上文的录音设备。
  • controlC1:用于声卡控制,C1 表示声卡1,对应上文的播放设备。
  • pcmC0D0c:用于录音的 pcm 设备,最后面的 “c” 是 capture 的缩写,表示录音
  • pcmC1D0p:用于播放的 pcm 设备,最后面的 “p” 是 play 的缩写,表示放音
  • timer :定时器
  1. 查看录音设备
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: cv182xaadc [cv182xa_adc], device 0: cviteka-adc 300a100.adc-0 [cviteka-adc 300a100.adc-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
  1. 设置麦克风音量,范围:0-24
$ amixer -Dhw:0 cset name='ADC Capture Volume' 24
  1. 录音
$ arecord -Dhw:0,0 -d 3 -r 48000 -f S16_LE -t wav test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

将录音存储在 test.wav 文件中。其中:

  • -Dhw:0,0: 指定录音设备。hw:0,0表示使用第一个声卡的第一个硬件设备
  • -d 3: 设置录音时长为3秒。
  • -r 48000: 设置录音采样率为48000赫兹(Hz),这是CD音质的标准采样率。
  • -f S16_LE: 设置录音格式为16位小端(Little Endian)PCM编码,这是音频处理中常用的一种格式。
  • -t wav: 设置输出文件格式为WAV,这是一种无损音频格式。
  • test.wav: 这是输出的音频文件名。

由于 milkv-duo256 开发板上默认没有喇叭可以测试录音文件,可以传到电脑上用音频播放软件播放。

$ scp root@192.168.188.34:/root/test.wav .
1 Like

Надад Duo 256M хөгжүүлэлтийн самбар байгаа бөгөөд үүн дээр микрофон харагдахгүй байна. Та хаана байгааг нь зураг дээр нь зааж өгч болох уу?
Урьдчилан баярлалаа.

3 Likes

Such a cool microphone, thanks for the joke.

1 Like

I like the little smiley face. :slight_smile:

It’s worth noting that this mic and ADC may also work on the Duo 64. There is a location on the board for it and I’ve been able to record sound by wiring up a signal generator to the pads on the circuit board.

1 Like