由于在树莓派Zero上并没有预置音频接口,这个时候我们可以使用GPIO来制作一个简易的音频输出。
在树莓A型B型板子上都有一个预置的耳机接口,根据官方资料其采用的是也是GPIO音频输出,音频插孔输出是由PWM通道0和1提供的。PWM通道0连接在GPIO40
,用于(立体声)右声道;PWM通道1连接在GPIO45
,用于(立体声)左通道。
然而在树莓派Zero上并没有对GPIO40
和GPIO45
引脚引出,那怎么办?
通过官方GPIO说明查阅可知PWM通道还是有很多个的,具体如下:
PWM0: GPIO12 GPIO18 GPIO40
PWM1: GPIO13 GPIO19 GPIO41 GPIO45
在树莓派Zero的GPIO上,我们可以使用其他4个引脚端口作为音频输出。
在知道硬件引脚信息后我们就可以自定义使用我们需要的引脚了,由于系统默认使用GPIO40
和GPIO45
作为音频输出,这时候我们还需要进行软件上的引脚更改。
在boot
分区内有一个配件文件,我们通过修改/boot/config.txt
文件来自定义使用音频引脚的序号。用文本编辑器打开,在文件的末尾添加一行参数,然后保存:
dtoverlay=pwm-2chan,pin=18,func=2,pin2=19,func2=4
这时候我们就可以使用GPIO18
和GPIO19
作为音频输出,你也可以修改成GPIO12
或者GPIO13
。
但是这样操作我们还不能直接使用,参观官方原理图,我们还需要对PWM通道输出添加相应的电路才可以驱动耳机喇叭:
1.png至此树莓派Zero就可以使用GPIO作为音频输出了,我们好不容易给树莓派Zero添加了音频输出,但是发现效果一般。我们可以采用如下方法消除部分白噪:
软件方面
方法一:在/boot/config.txt
文件中添加一行:disable_audio_dither=1
(可以调整输出的PWM脉冲宽度)
方法二:在/boot/config.txt
文件中添加一行:audio_pwm_mode=2
(这是一个新的音频驱动程序,可以显着改善音质)
硬件方面
可以将系统音量调至最大,外部耳机接口可以使用支持硬件调音的耳机线,类似下图:
2.jpg
网友评论