WM8960 Audio HAT 用户手册 前言 本产品是基于树莓派而设计的音频模块, 采用 WM8960 低功耗立体声编解码器, 通 过 I2C 接口控制,I2S 接口传输音频 板载标准 3.5mm 耳机接口, 可通过外接耳机播放音 乐, 同时也可通过双通道喇叭接口外接喇叭播放 板子左右两边有一个高质量 MEMS 硅麦 克风, 可以立体声录音 产品特性 供电电压 :5V 逻辑电压 :3.3V 音频编解码芯片 :WM8960 控制接口 :I2C 音频接口 :I2S DAC 信噪比 :98dB ADC 信噪比 :94dB 耳机驱动 :40mW (16Ω@3.3V) 扬声器驱动 :1W per channel (8Ω BTL) 1 / 9
目录 前言... 1 产品特性... 1 硬件资源... 3 使用指南... 4 安装驱动... 4 检测声卡... 4 录音播放测试... 5 调节音量... 6 设置默认声卡... 6 其他播放软件... 7 使用程序控制播放录音... 9 安装对应的库... 9 2 / 9
硬件资源 LP LN 分别对应左扬声器的正 负极 ; RP RN 分别对应右扬声器的正 负极 管脚配置 功能引脚 树莓派引脚 (BCM) 描述 5V 5V 电源正 (5V 电源输入 ) GND GND 电源地 SDA P2/SDA I2C 数据输入 SCL P2/SDA I2C 时钟输入 CLK P18 I2S 位时钟输入 LRCLK P19 I2S 帧时钟输入 DAC P21 I2S 串行数据输出 ADC P20 I2S 串行数据输入 BUTTON P17 自定义按键 3 / 9
使用指南 安装驱动 将 WM8960 Audio HAT 插到树莓派上, 树莓派需要联网 执行如下命令获取 wm8960 声卡源代码, 并安装所有 Linux 内核驱动程序, 重启后生效 git clone https://github.com/waveshare/wm8960-audio-hat cd WM8960-Audio-HAT sudo./install.sh sudo reboot 重启后运行如下命令看下驱动是否安装成功 如果安装不成功会显示如下, 没有显示内核版本 国内用户可以切换到国内源, 然后再重新安装驱动 sudo nano /etc/apt/sources.list 用 # 注释掉原文件内容, 用以下内容取代 : deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib 检测声卡 运行 aplay -l 和 arecord -l 命令, 看下是否检测到声卡 pi@raspberrypi:~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 7/7 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 4 / 9
Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960- hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 pi@raspberrypi:~ $ arecord -l **** List of CAPTURE Hardware Devices **** card 1: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960- hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 录音播放测试 录播测试 可以用 arecord 录制, 然后用 aplay 播放 :( 不要忘记插耳机或者喇叭 ): sudo arecord -f cd -Dhw:1 aplay -Dhw:1 程序运行后通过耳机或者喇叭会听到麦克风采集到的声音, 注意喇叭不能开靠近麦克风否 则会导致共振产生啸叫 录音 sudo arecord -D hw:1,0 -f S32_LE -r 16000 -c 2 test.wav -D : 设备 -r : 频率 -c : 音轨 -t : 文件类型 -f : 格式 命令表示录制双音轨,16000HZ,32bit 的采样, 输出文件为 test.wav 5 / 9
播放 ( 注意 :aplay 软件只能播放 wav 格式的音频文件 ) sudo aplay -D HW:1,0 test.wav 调节音量 使用 alsamixer 配置声音设置和调整音量 sudo alsamixer 如果 WM8960 声卡没有设置为默认声卡则需要按 F6 选择声卡设备 设置默认声卡 sudo vi /usr/share/alsa/alsa.conf 打开文件找到下面两行语句 defaults.ctl.card 0 defaults.pcm.card 0 将 0 改为 1, 如果 WM8960 声卡设备不是 1, 则改为对应的设备号 6 / 9
其他播放软件 aplay 只能播放 wav 格式的音频文件, 如果要 MP3 等格式的音频文件可以用 mpg123 等软 件 安装 mpg123 sudo apt-get install mpg123 播放音频文件 ( 注意 : 设置 WM8960 声卡为默认声卡 ) sudo mpg123 test.mp3 如果要用图形化播放软件可以 smplayer 安装 smplayer sudo apt-get install smplayer 在界面中右键选择 wm8960-soundcard 为默认 在菜单中打开 smplayer 软件, 打开音频文件即可播放 (smplayer 也可以播放视频 ) 7 / 9
8 / 9
使用程序控制播放录音 安装对应的库 安装依赖库 sudo apt-get install libasound2-dev 获取 pyalsaaudio 源码并安装 cd ~ git clone https://github.com/larsimmisch/pyalsaaudio cd pyalsaaudio sudo python setup.py build sudo python setup.py install 下载示例程序并将程序复制到树莓派目录下解压 播放 : sudo python playwav.py music.wav 录音 sudo python recordwav.py out.wav 9 / 9