PCM5122 Audio Board (A) 使用教程

说明

产品简介

前言

本产品是基于树莓派而设计的音频模块,专为树莓派设计的音频声卡扩展板,立体声编解码,支持高音质播放。

产品特性

  • 供电电压:5V
  • 逻辑电压:3.3V
  • 音频编解码芯片:PCM5122
  • 控制接口:I2C
  • 音频接口:I2S
  • DAC信噪比:112dB

硬件资源


LP、LN分别对应左扬声器的正、负极; RP、RN分别对应右扬声器的正、负极。

功能引脚树莓派引脚(BCM)描述
5V5V电源正(5V电源输入)
GNDGND电源地
SDAP2/SDAI2C数据输入
SCLP3/SCLI2C时钟输入
CLKP18I2S位时钟输入
LRCLKP19I2S帧时钟输入
DACP21I2S串行数据输出
ADCP20I2S串行数据输入
BUTTONP17自定义按键

树莓派使用

(本产品例程只适用于树莓派官方系统)

安装驱动

屏蔽树莓派默认音频:

sudo nano /boot/config.txt

找到dtparam=audio=on,在最前面加上#号,将其改成#dtparam=audio=on,改成ctrl+c然后Y保存退出

更新软件源:

sudo apt-get update
sudo apt-get full-upgrade
sudo reboot

检查内核版本:

uname -a
下载驱动程序:
git clone https://github.com/waveshare/WM8960-Audio-HAT

安装WM8960驱动:

cd WM8960-Audio-HAT
#需要等待一定的时间
chmod +x install.sh
sudo ./install.sh 
sudo reboot

重启后运行如下命令看下驱动是否加载成功。

sudo dkms status
pi@raspberrypi:~ $ sudo dkms status 
wm8960-soundcard, 1.0, 4.19.58-v7l+, armv7l: installed

注意:首次安装如果更新了内核可能会出现有噪声等问题,需要重启后再次运行命令安装驱动就可以了。
这里提供的是一个完成教程,如果安装多次还是无法出现驱动可以使用我们做好的镜像(版本2019-07-10,密码l9jz)使用。

检测声卡

  • 检查播放:aplay -l
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
  • 检查录音:arecord -l
pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

录音播放测试

录播测试

sudo arecord -f cd -Dhw:0 | aplay -Dhw:0

程序运行后通过耳机或者喇叭会听到麦克风采集到的声音,注意喇叭不能开靠近麦克风,否则会导致共振产生啸叫。

录音

sudo arecord -D hw:0,0 -f S32_LE -r 16000 -c 2 test.wav

test.wav是录制生成的文件名。

播放

sudo aplay -Dhw:0 test.wav

播放刚刚录制的音频

调节音量

默认的音量是比较小的

sudo alsamixer

如果 WM8960 声卡没有设置为默认声卡则需要按 F6 选择声卡设备。

实际上右边还有很多可以调节的选项。

mpg123播放器

aplay只支持wav的音乐,实际上MP3格式的音乐会更加多,安装:

sudo apt-get install mpg123 
sudo mpg123 music.mp3

需要注意,这里的music.mp3需要替换成你的mp3音乐。

图形化smplayer

如果是命令行系统可以跳过,如果你的是桌面系统,安装:

sudo apt-get install smplayer

在界面中右键选择wm8960-soundcard为默认

在菜单中打开smplayer软件,打开音频文件即可播放。(smplayer也可以播放视频)


程序控制

我们提供了一个简单的python控制例程。

  • 安装对应的库
sudo apt-get install libasound2-dev
git clone https://github.com/larsimmisch/pyalsaaudio
cd pyalsaaudio
sudo python setup.py build
sudo python setup.py install
  • 下载例程
wget http://www.waveshare.net/w/upload/1/19/WM8960_Audio_HAT_Code.tar.gz
tar zxvf WM8960_Audio_HAT_Code.tar.gz
sudo chmod 777 -R WM8960_Audio_HAT_Code
  • 播放
sudo python playwav.py music.wav
  • 录音
sudo python recordwav.py out.wav

VisionFive2使用

加载驱动

在 U-boot 打印到图示位置试,按下任意键可以进入设备树的切换

将开机时的命令换成如下

ext4load mmc 1:3 a0000000 /boot/uEnv.txt 
env import a0000000 17c
setenv fdtfile starfive/jh7110-visionfive-v2-wm8960.dtb 
sysboot mmc 1:3 ext2 b0000000 /boot/extlinux/extlinux.conf

202302 系统,加载驱动

开机,正常进入系统,输入命令

nano /boot/uEnv.txt

进入系统启动配置文件,将 1 部分的内容注释掉,添加 2 部分的内容

fdtfile=starfive/jh7110-visionfive-v2-wm8960.dtb


重启即可

开始使用

安装alsa-utils

apt install alsa-utils

如果一开始没有接入模块,需要重启VisionFive2后才能检测到音频设备
输入 aplay -l 列出声卡和数字音频设备
注意观察图上标出来的位置,这表示声卡和数字音频设备的设备号,其中card0,device0 为VisionFive2主板板载耳机接口,card0,device2为WM8960模块板载耳机接口

输入 arecord -l 列出声卡和录音设备
注意观察图上标出来的位置,这表示声卡和录音设备的设备号,card0,device1为WM8960模块板载的两个贴片麦克风

输入命令:

arecord -Dhw:0,1 -f S32_LE -r16000 -c2 -d 10 -t wav sound_32b_16k.wav

开始录制10秒32位、16kHz的音频,并将其保存在当前目录下,文件名为sound_32b_16k.wav
输入命令:

aplay -Dhw:0,2 -f S32_LE -r16000 -t wav sound_32b_16k.wav

使用WM8960模块板载耳机接口播放音频
注意VisionFive2主板板载耳机接口只支持输出16位音频格式的音频

RDK X3 MODULE使用

录音播放功能

如果您使用的是server的镜像,请导入最新的两个音频软件包到系统,如果不是请跳到驱动安装

wget https://www.waveshare.net/w/upload/3/3b/Audio_Driver_HAT_V2.zip
unzip Audio_Driver_HAT_V2.zip
sudo dpkg -i *.deb
sync
sudo reboot

安装驱动

git clone git@github.com:HorizonRDK/hobot-audio.git
cd hobot-audio
sudo ./install.sh
What type of audio board do you have?
1. WM8960 Audio HAT
2. Audio Driver HAT

此处选择1
运行命令sync && reboot重启开发板,如/dev/snd下出现如下设备节点,说明转接板安装成功

root@ubuntu:~# ls /dev/snd/
by-path  controlC0  pcmC0D0c  pcmC0D0p  pcmC0D1c  pcmC0D1p  timer

录音播放测试

2通道麦克风录音:

tinycap ./2chn_test.wav -D 0 -d 0 -c 2 -b 16 -r 48000 -p 512 -n 4 -t 5

双通道音频播放:

tinyplay ./2chn_test.wav -D 0 -d 1

FAQ

问题:最新的系统安装驱动报错没有kernel-header文件, 无法正常安装?

将以下设置行加到/boot/config.txt 文件的最后一行,保存后重启系统,再安装驱动。

arm_64bit=0


问题:WM8960 Audio HAT驱动装好了,喇叭有声音,但是耳机没有声音?

终端运行以下指令重启声卡服务,然后再测试一下

sudo systemctl restart wm8960-soundcard.service


问题:耳机座子是几段的

耳机座子是4段国标(又称OMTP)耳机接口,如果是美标(又称CTIA)耳机可能会出现麦没有声音现象。


问题:板子的晶振是多大的

24Mhz。


问题:喇叭的功率

两个喇叭都是8欧姆5W的。


问题:是否可以录音边播放?

可以,在说明的录音测试部分有详细说明


问题:WM8960 Audio HAT驱动装好了,怎么检测不到声卡?

1.查看一下/boot/config.txt文件是否屏蔽掉了树莓派默认音频。
2.注意是否用对驱动版本。
3.确保安装驱动的过程没有报错。
4.安装好之后一定要重启。

技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841

TAG: 30kg电机 RP2040-PiZero Arduino UNO R3 Jetson Orin Nano Super 人工智能(AI)开发套件内置8GB显存核心板 树莓派5 UART 树莓派5散热器 Raspberry Pi 5 8G Raspberry Pi Camera Milk-V Duo摄像头教程 树莓派1.3寸LCD显示屏带游戏按键和喇叭适用于Zero 2W /3B/4B/PI5/RP2040-PiZero 树莓派7寸LCD电容触摸HDMI/Type C显示屏1280x800 PC手机电脑副屏 ESP32-AI系列 使用教程 树莓派Pico 2 RP2350 2.8寸LCD开发板电容显示触摸屏 QMI8658 6轴/ PCM5101音频解码 /SD /RTC PCF85063 X1012树莓派5 POE PCIE转M.2 NVME SSD固态硬盘扩展Pi5以太网供电 AI机器视觉套件OAK-D-POE 1200万像素4TOPS OpenCV摄像头 Jetson nano电源 树莓派21.5寸FHD LCD1080x1920触摸显示屏迷你PC LilyGO ESP32-S3 7寸显示屏开发板1024×600 CAN传感器RS485 N16R8 7B BPI-M4 Zero