MAX98357I2SD类单声道放大器的使用教程

如果您的微控制器或微型计算机具有数字音频功能,则此放大器适合您!它采用标准的I2S数字音频输入,不仅可以将其解码为模拟,还可以将其直接放大为扬声器。完美地添加紧凑的放大声音,需要2个分支(I2SDAC+Amp),并将它们组合为一个。

I2S(不要与I2C混淆)电路板上使用的协议,用于传递音频数据。许多高端芯片和处理器以数字I2S格式管理所有音频。然后,使用三个或四个引脚输入或输出数据(数据输入,数据输出,位时钟和左右通道选择)。通常,对于音频设备,有一个DAC芯片可将I2S引入并转换为可驱动耳机的模拟信号。

这款小型单声道放大器功能强大,令人惊讶。为4欧姆阻抗扬声器提供3.2瓦功率(5V电源@10%THD)。微型芯片内部是D类控制器,能够以2.7V-5.5VDC的电压运行。由于该放大器是D类,因此效率极高-非常适合便携式和电池供电项目。它具有过热和过流保护功能,但我们几乎无法判断它发烫了。

有一个增益引脚,可以操纵该引脚更改增益。默认情况下,该放大器将为您提供9dB的增益。通过连接上拉或下拉电阻器或直接布线,可以将增益引脚设置为3dB,6dB,9dB,12dB或15dB。

ShutDown/Mode引脚可用于放置芯片处于关闭状态或设置了哪个I2S音频通道通过管道传输到扬声器。默认情况下,放大器将(L+R)/2立体声混音输出为单声道输出。通过添加电阻器,您可以将其更改为左输出或右输出

与RaspberryPi,ArduinoZero以及任何其他具有I2S音频输出的微控制器或微型计算机配合使用,效果很好

规格:

输出功率:4Ω时为3.2W,10%THD,8Ω时为1.8W,10%THD,电源为5V

PSRR:在1KHz时,典型值为77dB(典型值)

I2S采样率从8kHz到96kHz

不需要MCLK

Click+Pop减少

五种引脚可选增益:3dB,6dB,9dB,12dB,15dB

出色的杂音抑制功能

热关断保护

作为经过组装和测试的接线板提供,带有一小块可选的插头和3.5mm接线端子。如果需要的话,需要一些焊接来连接插头和接线盒。

插脚

MAX98357A是I2S放大器-不使用模拟输入,仅支持数字音频输入!不要将I2S与I2C混淆,I2S是一种声音协议,而I2C是用于少量数据。

扬声器输出

该放大器仅用于驱动动圈式扬声器。扬声器阻抗必须为4Ω或更大。输出信号是330KHzPWM方波,其占空比与音频信号成比例。扬声器线圈的电感用作低通滤波器,以均衡高频分量。请勿尝试将其用作前置放大器。

每个通道的输出均为“桥接”,没有接地。这意味着对于每个通道,+和-交替极性可创建具有两倍可用功率的单通道放大器。

使用3.5mm螺钉接线端子连接扬声器。

5V插入4Ω@10%THD-最大3W

5V插入4Ω@1%THD-最大2.5W

3.3Vinto4Ω@10%THD-最大1.3W

3.3Vinto4Ω@1%THD-1.0W最大

5V转换为8Ω@10%THD-最大1.8W

5V转换为8Ω@1%THD-1.4W最大

3.3Vinto8Ω@10%THD的最大-0.8W

3.3Vinto8Ω@1%THD-最大0.6W

电源引脚

这是放大器的功率和放大器的逻辑。您可以提供2.5V至5.5V的电压。请注意,在5V电压下,您最终可以在扬声器中输入高达2.8W的功率,因此请确保您的电源可以轻松处理高达650mA的电流,并且我们建议使用至少800mA的电源规格,以便为您提供一些“房间”

如果您有3.3V逻辑设备,仍然可以从5V为放大器供电,建议您获得最大的输出功率!

I2S引脚

三个引脚用于接收音频数据。这些可以是3.3-5V逻辑

LRC(左/右时钟)-这是告诉放大器何时数据用于左声道以及何时用于左声道的引脚。

BCLK(位时钟)-这是告诉放大器何时读取数据引脚上数据的引脚。

DIN(数据输入)-这是输入实际数据的引脚,左右数据都在该引脚上发送,LRC引脚指示何时发送左或右信号

请注意,此放大器不需要MCLK引脚,如果您具有MCLK输出,则可以将其断开连接!

其他图钉

其他设置由GAIN和SD

增益

GAIN是增益设置。您可以具有3dB,6dB,9dB,12dB或15dB的增益。

15dB如果GAIN直接连接到GAIN和GND

12dB之间,则100K电阻GND

9dB,如果GAIN未连接任何东西(这是默认设置)

如果将GAIN直接连接到Vin

3dB,则6dB在GAIN和Vin

之间,这样,默认增益为9dB,但是您可以通过调整与GAIN引脚。请注意,您可能需要执行电源重置以调整增益。

SD/MODE

此引脚用于关机模式,但也用于设置输出哪个通道。这有点令人困惑,但本质上是:

如果SD直接接地(电压低于0.16V),则放大器关闭》

如果SD上的电压在0.16V至0.77V之间,则输出为(Left+Right)/2,即立体声平均值。

如果SD上的电压介于0.77V和1.4V之间,则输出仅是右声道

如果SD上的电压更高大于1.4V,则输出为左声道。

这与SD上的内部100K下拉电阻复合在一起,因此您需要在SD上使用上拉电阻来平衡100K内部下拉。

对于分线板,从SD到Vin有一个1Mohm电阻,,以5V供电时,将为您提供“立体声平均”输出。如果仅需要左声道或右声道,或者是使用非5V电源供电,则可能需要尝试使用不同的电阻器在SD

上获得所需的电压

程序集

《表class=“build-table”》

准备标题栏:

如有必要,将条切成一定长度。如果将其插入面包板,则焊接会更容易-长按针脚

添加分线板:

将分线板放在插针上,以便短插针穿过分线垫

还有焊料!

请务必焊接所有引脚以确保可靠的电接触。

(有关焊接的技巧,请务必查看我们的优良焊接指南)。

您已完成!目视检查焊点,然后继续进行下一步

如果要使用接线端子来连接扬声器,请放置3.5mm的接线端子,以使嘴巴指向。

两个引脚上的焊料都带有大量焊料!

RaspberryPi接线

如果您有RaspberryPi,并且希望获得比耳机插孔所能提供的更高质量的音频,则I2S是一个不错的选择!您仅需使用3个引脚,并且由于它是纯数字输出,因此可以减少噪声和干扰。当然,您需要确保您拥有一个不错的5V强电源,因此请确保为您的电源要求增加500mA或更多!

此板还与没有具有像PiZero这样的音频

该技术将适用于任何带有2x20连接器的RaspberryPi。带有2x13连接器的较早的Pi1很难像这样拔出I2S引脚

连接:

AmpVin至RaspberyPi5V

放大器GND至RaspberyPiGND

放大器DIN至RaspberyPi#21

放大器BCLK至RaspberyPi#18

AmpLRCLK到RaspberyPi#19

RaspberryPi设置

目前,RaspberyPilinux内核不支持I2S界面中的单声道音频只能播放立体声,因此任何单声道音频文件可能都需要转换为立体声!

2017-11-2RaspbianPIXEL(“满”)在音量控制方面有问题。I2S可以运行,但是没有软件卷设置,如果需要,请尝试RaspbianLite-我们会找出原因:)

快速安装

幸运的是,它非常容易在Raspbian上安装对I2SDAC的支持。

这些说明完全来自Pimoroni那些可爱的人的PhatDAC说明!

从具有Internet连接的RaspberryPi运行以下内容:

安装后将需要重新启动。

必须重新启动才能启用扬声器硬件!

如果听起来真的很失真,则可能是音量太高。但是,为了使音量控制出现在Raspbian桌面或Retropie中,您必须在进行扬声器测试后再次重启,方法是sudoreboot

您必须重新启动两次*才能启用alsamixer音量(确实如此!)

重新启动后,尝试运行alsamixer,然后使用箭头键降低音量,50%是一个不错的开始。

如果您仍然遇到音频问题,请尝试重新运行脚本,并说N(禁用)/dev/zeroplaybackservice。

然后,您可以转到下一页以测试和优化设置。如果脚本适合您,请在详细的安装上跳过此页面的其余部分!

详细安装

如果由于某种原因,您不能只运行脚本而又想去通过手动安装-这是所有步骤!

更新/etc/modprobe.d(如果存在)

使用

sudonano/etc/modprobe.d/raspi-blacklist.conf

编辑raspi黑名单

如果文件为空,则跳过此步骤

但是,如果看到以下几行:

blacklisti2c-bcm2708

blacklistsnd-soc-pcm512x

blacklistsnd-soc-wm8804

通过在每行之前放置#来更新行

通过键入保存》Control-XY《返回》

禁用耳机音频(如果已设置)

sudonano/etc/modules

编辑raspi模块列表(如果已设置)为空,只需跳过此步骤

但是,如果看到以下行:

snd_bcm2835

输入#

并使用Control-XY

创建asound.conf文件

sudonano/etc/asound.conf

编辑raspi模块列表》

此文件应该为空!

复制并粘贴以下内容xt到文件中

下载:文件

复制代码

pcm.speakerbonnet{

typehwcard0

}

pcm.dmixer{

typedmix

ipc_key1024

ipc_perm0666

slave{

pcm“speakerbonnet”

period_size1024

buffer_size8192

rate44100

channels2

ctl.dmixer{

pcm.softvol{

typesoftvol

slave.pcm“dmixer”

control.name“PCM”

control.card0

ctl.softvol{

pcm.!default{

typeplug

slave.pcm“softvol”

}pcm.speakerbonnet{

period_time0

照常保存文件

添加设备树覆盖

sudonano/boot/config.txt

编辑您的Pi配置文件,然后向下滚动至底部。如果您看到一行显示:dtparam=audio=on

通过在前面放置#禁用它。

然后添加:

dtoverlay=i2s-mmap

在下一行。保存文件。

使用sudoreboot

重启您的PiRaspberryPi测试

扬声器测试!

好的,您可以使用任何喜欢的软件播放音频,但是如果您想测试扬声器的输出,可以使用以下一些快速命令来验证放大器和扬声器是否正常工作!

简单的白噪声扬声器测试

运行speaker-test-c2会在扬声器之间产生左右交替的白噪声。

如果您有单声道输出放大器,则I2S放大器会合并左右声道,因此您会听到连续的白噪声

简单的WAV扬声器测试

一旦您有了一些东西出来,尝试使用扬声器测试(对于WAV文件,而不是MP3)播放音频文件

speaker-test-c2--test=wav-w/usr/share/sounds/alsa/Front_Center.wav

听到来自左右交替扬声器的音频

简单的MP3扬声器测试

如果要播放音乐流,可以尝试

sudoapt-getinstall-ympg123

如果您想在命令中播放MP3,请查看本教程,其中涵盖了如何进行设置。

目前,JessieRaspberyPi内核不支持单声道音频在I2S界面之外,您只能播放立体声,因此任何单声道音频文件都可能需要转换为立体声!

omxplayer似乎没有将I2S接口用于音频-仅是HDMI-因此您将无法使用它

音量调节

许多程序,例如PyGame和SonicPi在应用程序中具有音量控制。对于其他程序,您可以使用名为alsamixer的命令行工具来设置音量。只需输入alsamixer,然后使用向上/向下箭头设置音量。设置完后按Escape键

在RaspbianPIXEL中,您可以使用菜单项控件来设置音量。如果它有一个X,请尝试重新启动Pi(安装后必须重新启动两次,以使PIXEL识别音量控制

PiI2S调整

此页面已弃用,我们的安装程序已执行这些步骤为您服务,但我们会将其保留在此处供存档使用!

减少爆音

对于遵循我们原始安装说明并进行简单alsa配置的用户,他们可能会发现播放新音频时会弹出I2S音频。

解决方法是使用软件混频器向I2S设备输出固定的采样率,以使位时钟不变。我使用ALSA,因此我配置了dmixer,并且不再有任何弹出声或点击声。请注意,默认情况下,RaspPiI2S驱动程序不支持dmixer,您必须按照提供的这些说明进行添加。继续逐步了解如何启用它!

步骤1

首先通过修改/boot/config.txt来添加dtoverlay=i2s-mmap

运行sudonano/boot/config.txt,然后将文本添加到底部,如下所示:

保存并退出。

然后将/etc/asound.conf更改为:

通过运行sudonano/etc/asound.conf

,这将创建一个称为Speakerbonnet的PCM设备,该设备已连接到硬件I2S设备。然后,我们制作一个名为typedmix的新“dmix”设备(pcm.dmixer)。我们为它提供了唯一的进程间通信密钥(ipc_key1024)和可在世界范围内读取的(ipc_perm0666权限)混合器将控制硬件pcm设备Speakerbonnet(pcm“speakerbonnet”)并具有一个缓冲区设置好它的好又快。设置了通信缓冲区,因此没有延迟(period_time0,period_size1024和buffer_size8192正常工作)。默认的混合速率是44.1khz立体声(rate44100channels2)

最后,我们设置了一个控制接口,但最终效果最好是仅将硬件设备放在此处-ctl.dmixer{typehwcard0}

保存并退出。然后重新启动Pi以启用混音器。另外,虽然它会极大地减少弹出声,但有时还是会偶尔碰到一次-特别是在第一次播放音频时!

添加软件音量控制

此处使用的基本I2S芯片组未内置软件控制。因此我们必须“欺骗”Pi来创建软件音量控件。幸运的是,一旦您知道如何做就不难了。

这假定您将调音台设置为不弹出!

保存并退出

现在,这就是窍门,您必须重新启动,然后通过alsa播放一些音频,然后重新启动以使alsamixer正确同步:

然后然后您可以键入alsamixer以使用“经典”alsa控制音量混合界面

只需按向上和向下箭头设置音量,然后按ESC退出

使用PyGame播放音频

您可以使用mpg123进行基本测试,但要动态更改音量或有一个互动程序。为了获得更强大的音频播放,我们建议使用PyGame播放各种音频格式(包括MP3!)

安装PyGame

首先安装pygame支持,您需要在具有网络访问权限的Pi上打开控制台并运行:

sudoapt-getinstallpython-pygamesudoapt-getinstallpython-pygame

下一步,将该pygame示例zip下载到您的Pi

点击下载PyGame示例代码和示例mp3

在命令行上运行

unzippygame_example.zip

运行演示

在zip内的示例是pygam,eMP3.py

此示例将播放脚本文件夹中的所有MP3。为了演示您也可以在pygame中调整音量,第二个参数是要播放的音量。使用介于0.0和1.0之间的命令行参数指定要播放的音量

例如,以下是如何以75%的音量播放:

pythonpygameMP3.py0.75pythonpygameMP3.py0.75

如果您有自己的mp3,请使用以下代码!

‘’‘pg_midi_sound101.py

playmidimusicfiles(alsomp3files)usingpygame

testedwithPython273/331andpygame192byvegaseat

’‘’

#!/usr/bin/python

importsys

importpygameaspg

importos

importtime

defplay_music(music_file):

‘’‘

streammusicwithmixer.musicmoduleinblockingmanner

thiswillstreamthesoundfromdiskwhileplaying

clock=pg.time.Clock()

try:

pg.mixer.music.load(music_file)

print(“Musicfile{}loaded!”.format(music_file))

exceptpygame.error:

print(“File{}notfound!{}”.format(music_file,pg.get_error()))

return

pg.mixer.music.play()

#Ifyouwanttofadeintheaudio.。。

#forxinrange(0,100):

#pg.mixer.music.set_volume(float(x)/100.0)

#time.sleep(.0075)

##checkifplaybackhasfinished

whilepg.mixer.music.get_busy():

clock.tick(30)

freq=44100#audioCDquality

bitsize=-16#unsigned16bit

channels=2#1ismono,2isstereo

buffer=2048#numberofsamples(experimenttogetrightsound)

pg.mixer.init(freq,bitsize,channels,buffer)

iflen(sys.argv)》1:

user_volume=float(sys.argv[1])

exceptValueError:

print“Volumeargumentinvalid.Pleaseuseafloat(0.0-1.0)”

pg.mixer.music.fadeout(1000)

pg.mixer.music.stop()

raiseSystemExit

print(“Playingatvolume:”+str(user_volume)+“”)

pg.mixer.music.set_volume(user_volume)

mp3s=[]

forfileinos.listdir(“。”):

iffile.endswith(“.mp3”):

mp3s.append(file)

printmp3s

forxinmp3s:

play_music(x)

time.sleep(.25)

exceptKeyboardInterrupt:

#ifuserhitsCtrl/Cthenexit

#(worksonlyinconsolemode)

else:

print(“Pleasespecifyvolumeasafloat!(0.0-1.0)”)‘’‘pg_midi_sound101.py

print(“Pleasespecifyvolumeasafloat!(0.0-1.0)”)

Arduino接线和测试

基于ATmega328P的经典Arduino(如UNO和Metro328)没有I2S接口,因此不能》与他们一起使用此突破

但是基于零速,MetroM0和FeatherM0的新型基于ATSAMD21的板可以!(注意,GemmaM0和TrinketM0没有可用的I2S引脚)。甚至新的基于ATSAMD51的板卡(例如MetroM4和FeatherM4)也可以。

要在M0或M4板上使用I2S,您需要安装AdafruitZeroI2S库。可通过库管理器使用。您可以搜索(见下文),然后单击安装按钮。

接线

基本测试

要进行测试,请尝试运行下面的演示。它随库安装一起提供,因此您可以通过以下方式找到它:

文件-》示例-》Adafruit零I2S库-》基本

请确保更改此行:

Adafruit_ZeroI2Si2s(0,1,9,2);Adafruit_ZeroI2Si2s(0,1,9,2);

,以匹配用于设置的引脚。如果已按照本指南中的说明进行接线,则可以通过将默认线路更改为以下方式来尝试使用默认引脚:

Adafruit_ZeroI2Si2s;Adafruit_ZeroI2Si2s;

下载:ProjectZip或basic.ino|查看Github

Temporarilyunabletoloadcontent:

DMA测试

上面的基本测试是通过循环使用i2s.write()函数直接创建输出的。另一种方法是使用DMA生成输出。使用这种方法,您可以进行一些初始设置来配置DMA引擎以进行回放。然后,它可以在后台生成输出,从而允许您在代码中执行其他操作。

要采用这种方法,您将需要安装ZeroDMA库。您可以通过库管理器来做到这一点:

然后您可以使用在零I2S库中找到的DMA示例:

文件-》示例-》Adafruit零I2S库-》dma

下载:ProjectZip或dma.ino|在Github上查看

#include

#include“utility/dma.h”

/*maxvolumefor32bitdata*/

#defineVOLUME((1UL《《31)-1)

/*createabufferforboththeleftandrightchanneldata*/

#defineBUFSIZE256

intdata[BUFSIZE];

Adafruit_ZeroDMAmyDMA;

ZeroDMAstatusstat;//DMAstatuscodesreturnedbysomefunctions

Adafruit_ZeroI2Si2s;

voiddma_callback(Adafruit_ZeroDMA*dma){

/*wedon‘tneedtodoanythinghere*/

voidsetup()

{

Serial.begin(115200);

//while(!Serial);//WaitforSerialmonitorbeforecontinuing

Serial.println(“I2SoutputviaDMA”);

int*ptr=data;

/*theI2SmodulewillbeexpectingdatainterleavedLRLR*/

for(inti=0;i/*createasinewaveontheleftchannel*/

*ptr++=sin((2*PI/(BUFSIZE/2))*i)*VOLUME;

/*createacosinewaveontherightchannel*/

*ptr++=cos((2*PI/(BUFSIZE/2))*i)*VOLUME;

Serial.println(“ConfiguringDMAtrigger”);

myDMA.setTrigger(I2S_DMAC_ID_TX_0);

myDMA.setAction(DMA_TRIGGER_ACTON_BEAT);

Serial.print(“AllocatingDMAchannel.。。”);

stat=myDMA.allocate();

myDMA.printStatus(stat);

Serial.println(“Settinguptransfer”);

myDMA.addDescriptor(

data,//movedatafromhere

#ifdefined(__SAMD51__)

(void*)(&I2S-》TXDATA.reg),//tohere(M4)

#else

(void*)(&I2S-》DATA[0].reg),//tohere(M0+)

#endif

BUFSIZE,//thismany.。。

DMA_BEAT_SIZE_WORD,//bytes/hword/words

true,//incrementsourceaddr?

false);

myDMA.loop(true);

Serial.println(“Addingcallback”);

myDMA.setCallback(dma_callback);

/*beginI2Sonthedefaultpins.24bitdepthat

*44100samplespersecond

*/

i2s.begin(I2S_32_BIT,44100);

i2s.enableTx();

stat=myDMA.startJob();

voidloop()

Serial.println(“dootherthingsherewhileyourDMArunsinthebackground.”);

delay(2000);

/*wedon’tneedtodoanythinghere*/

CircuitPython接线和测试

CircuitPython3.0及更高版本内置了I2S,这意味着您可以在支持的M0和M4ExpressCircuitPython板上轻松使用此突破口!支持的板是FeatherM0Express,FeatherM4Express,MetroM0Express,MetroM4Express和ItsyBitsyM0Express。

请注意,饰品M0,GemmaM0和ItsyBitsyM4不支持I2S(最后一个不是错字!)

M0板具有多个可用的I2S引脚组合。我们将为每块板演示单个引脚组合。

以下接线图显示了如何将MAX98357分支连接到CircuitPython板上。您将使用电压输入,接地,位时钟,左/右时钟和数据引脚。

VIN是red线。

GND是黑色导线。

BCLK是蓝色导线。

LRC是黄色导线。

DIN是《绿色电线。

对于FeatherM0Express,ItyBitsyM0Express和MetroM0Express:

在突破口上连接VIN到板上的3V/3.3。

将分支上的GND连接到主板上的G/GND。板。

在分支上连接BCLK连接到板上的D1/TX。

将分支中的LRC连接到板上的D0/RXstrong》。

将分组中的DIN连接到板上的D9。

对于FeatherM4Express:

将分支上的VIN连接到板上的3V。

连接分支上的GND到板上的Gind。

将分支上的BCLK连接到《。

将分组中的LRC连接到板上的D10。

将分组中的DIN连接到板上的D11。

对于MetroM4Express:

在分支上连接VIN》连接到板上的3.3。

将分支中的GND连接到板上的GNDstrong》。

在分支上将BCLK连接到板上的D3。

在分支上将LRC连接连接到板上的D9。

将分支中的DIN连接到板上的D8。

代码示例

我们有两个CircuitPython代码示例。前者在分组讨论中通过扬声器播放生成的音调。第二个播放波形文件。让我们看一下!

音调生成

第一个示例生成一个正弦波的一个周期,然后循环生成一个音调。您可以通过更改关联的变量来更改音量和音调的Hz。在循环内,我们播放音调一秒钟,然后将其停一秒钟。

下载:ProjectZip或CircuitPython_I2S_Tone.py|在Github上查看

importarray

importmath

importaudioio

importboard

importaudiobusio

sample_rate=8000

tone_volume=.1#Increaseordecreasethistoadjustthevolumeofthetone.

frequency=440#SetthistotheHzofthetoneyouwanttogenerate.

length=sample_rate//frequency#Onefreqencyperiod

sine_wave=array.array(“H”,[0]*length)

foriinrange(length):

sine_wave[i]=int((math.sin(math.pi*2*frequency*i/sample_rate)*

tone_volume+1)*(2**15-1))

#ForFeatherM0Express,ItsyBitsyM0Express,MetroM0Express

audio=audiobusio.I2SOut(board.D1,board.D0,board.D9)

#ForFeatherM4Express

#audio=audiobusio.I2SOut(board.D1,board.D10,board.D11)

#ForMetroM4Express

#audio=audiobusio.I2SOut(board.D3,board.D9,board.D8)

sine_wave_sample=audioio.RawSample(sine_wave,sample_rate=sample_rate)

whileTrue:

audio.play(sine_wave_sample,loop=True)

time.sleep(1)

audio.stop()

对于羽毛M0Express,ItsyBitsyM0Express和MetroM0Express,

对于羽毛M4Express,注释掉audio=audiobusio.I2SOut(board.D1,board.D0,board.D9)并取消注释#audio=audiobusio.I2SOut(board.D1,board.D10,board.D11)。

对于MetroM4Express,注释掉audio=audiobusio.I2SOut(board.D1,board.D0,board.D9)并取消注释#audio=audiobusio.I2SOut(board.D3,board.D3,board.D8)。

现在您将听到440Hz音调的一秒钟和一秒钟的声音。沉默

您可以尝试更改音调的Hz以产生不同的音调。尝试更改time.sleep()中的秒数以产生更长或更短的音调。

波形文件

第二个示例播放波形文件。我们以可读格式打开文件。然后在循环中,我们播放文件,并告诉代码继续播放文件,直到完成为止。您可以使用任何受支持的wave文件。我们已经在代码中包含了wave文件。

StreetChicken.wav

下载:ProjectZip或CircuitPython_I2S_Wave.py|在Github上查看

wave_file=open(“StreetChicken.wav”,“rb”)

wave=audioio.WaveFile(wave_file)

audio.play(wave)

whileaudio.playing:

pass

代码中的对象设置与上面相同。

对于FeatherM0Express,ItsyBitsyM0Express和MetroM0Express,无需更改即可运行代码。

对于FeatherM4Express,注释掉audio=audiobusio.I2SOut(board.D1,board.D0,board.D9)并取消注释#audio=audiobusio.I2SOut(board.D1,board.D10,board.D11)。

对于MetroM4Express,注释掉audio=audiobusio.I2SOut(board.D1,board.D0,board.D9)并取消注释#audio=audiobusio.I2SOut(board.D3,board.D3,board.D8)

现在,您将听到wave文件播放并循环播放。

此示例可以做很多事情。尝试播放其他波形文件,或者包括whileaudio.playing:pass而不是包含time.sleep(),以使其播放指定的秒数。查阅CircuitPythonEssentials指南中的pause和resume功能的“音频输出”页面。

我的I2S在哪里?

我们之前提到过,支持的M0板具有多个I2S引脚组合供您使用。M4板有一种选择。无论哪种方式,如果您想知道可用的选项,请将以下代码复制到code.py,连接到串行控制台和检查输出。

这些是ItsyBitsyM0Express的结果。

下载:ProjectZip或I2S_Test_Script.py|在Github上查看

frommicrocontrollerimportPin

defis_hardware_i2s(bit_clock,word_select,data):

p=audiobusio.I2SOut(bit_clock,word_select,data)

p.deinit()

returnTrue

returnFalse

defget_unique_pins():

exclude=[‘NEOPIXEL’,‘APA102_MOSI’,‘APA102_SCK’]

pins=[pinforpinin[

getattr(board,p)forpindir(board)ifpnotinexclude]

ifisinstance(pin,Pin)]

unique=[]

forpinpins:

ifpnotinunique:

unique.append(p)

returnunique

forbit_clock_pininget_unique_pins():

forword_select_pininget_unique_pins():

fordata_pininget_unique_pins():

ifbit_clock_pinisword_select_pinorbit_clock_pinisdata_pinorword_select_pin\

isdata_pin:

continue

ifis_hardware_i2s(bit_clock_pin,word_select_pin,data_pin):

print(“Bitclockpin:”,bit_clock_pin,“Wordselectpin:”,word_select_pin,

“Datapin:”,data_pin)

I2S音频常见问题解答

嘿,在RaspbianPixel桌面中,扬声器图标已X化!

播放一些音频后,尝试重新启动一次。另外,请确保您具有我们最新的alsa配置(请检查RaspberryPi安装页面上的详细安装页面中的/etc/asound.conf!

。如果它仍然不起作用,您仍然可以更改音量,只需在终端命令提示符下使用alsamixer。

即使启用了dmixer,当Pi首次启动或当它第一次开始播放音频时

是的,这是RaspbianLinux的已知东西是的Linux!我们没有修复程序,如果可以让您感觉更好,我的高档Windows开发计算机会对台式机扬声器执行相同的操作。

i2s设置脚本中的“/dev/zeroplay”选项(我们于2018年10月添加了该选项),但您仍然可能会得到一个初始弹出音

我的DAC上的音频听起来真的很差/失真

请确保降低了音量。默认值为100%,太高了!使用alsamixer将音量降低到50%左右

可以与我最喜欢的软件一起使用吗?

它将与任何支持alsa音频的一起使用。有成千上万个linux程序,所以我们不能保证它们都能正常工作,但这是我们确定能做到的!

PyGame-请参阅播放音频的页面以PyGame为例的代码。可以在pygame

mpg123-命令行mp3音频播放中控制音量。使用alsamixer控制音量

播放-用于在命令行上播放wav文件

SonicPi-已在像素桌面。使用SonicPi设置面板更改音量-似乎并不在乎您设置的全局音量!

Scratch2-已在Pixel桌面上进行了测试。效果很好,但可能会有所延迟,并且在您第一次播放音频时会发出爆裂的声音。您可以使用alsamixer设置音量,也可以通过应用程序使用将音量设置为nn%块

从头开始1设置音量-无效,有些

RetroPie/EmulationStation不能在Scratch1上设置?-音频在游戏中有效(我们测试了NES和MAMElibretro),但在“主屏幕”中不起作用‘(选择要玩的游戏界面)

THE END
1.2023中国体育彩票v2.19.0.091817老旧历史版本安装包官方免费下载扫一扫下载 中国体育彩票v2.19.0.091817截图 1. 修复已知问题 2. 优化用户体验 中国体育彩票介绍 本应用为国家体育总局体育彩票管理中心官方出品的体育彩票客户端。向您提供及时、权威、准确的体彩开奖信息,同时提供方案预选、附近门店查询、赛事数据、开奖直播、热门资讯等体彩相关服务。 https://www.wandoujia.com/apps/7840670/history_v2190000
2.www.gdsklife.com/yyys/157557.htm大发彩票平台app大全下载 55.76MB 57好评 羞羞漫画精品漫画入口 办公室里呻吟的丰满老师电影 云南省XXXXXL17 16.84MB 2382好评 最黄视频在线观看 虾米平台的7IIII2扣 天天干天天色天天搞 02.21MB 87好评 啊啊啊好污的网站 喂春药不让自慰 教室不要好痛 33.64MB 49好评 亚洲国产精华液2021年http://www.gdsklife.com/yyys/157557.htm
3.入口登录网址app平台首页 软件 游戏 应用集 专栏 攻略 下载负债超5亿!官方:里昂被禁止冬窗引援 若无法改善财务将降至法乙-直播吧安装你想要的应用 更方便 更快捷 发现更多 87%好评(81人) 64http://m.yhangc.com/065692.html
4.www.hndfzx.com/xxxr53313939软件大小: 59.44MBMB 最后更新: 2024-11-17 16:26:53 最新版本: V30.30.1 文件格式: apk 应用分类:ios-Android 看看中国女人的小骚逼被操的视频 使用语言: 中文 : 需要联网 系统要求: 5.41以上 应用介绍 一,伴岛体育app下载安装官网 ,大鸡巴后入大屁股视频 二,亚洲免费观看啪啪啪视频,高清http://www.hndfzx.com/xxxr53313939
5.www.aaeedu.cn/yyys/41124042.html啊~你tm怎么这么大APP下载 催眠小说调教 日韩三级制服诱惑 29.92MB 997好评 人女日b~ 四虎剧场 日韩精品在线观看免费网站学校 62.94MB 358好评 别揉我奶头软件 最新版本beeg少妇 浴火视频 51.87MB 408好评 六十路近亲强姦 博弘平台 麻7IIII2扣不错 欧美人成电影免费观看 78.91MB 770好评http://www.aaeedu.cn/yyys/41124042.html
6.pseinu.cn/xxxr/957848.htm网易云音乐「崩了」,网页端报错,App 无法使用,什么原因?你那受影响了吗? 根据《中国人民政治协商会议章程》工作总则第二十二条:中国人民政治协商会议全国委员会由中国共产党、各民主党派、无党派人士、人民团体、各少数民族和各界的代表,香港特别行政区同胞、澳门特别行政区同胞、台湾同胞和归国侨胞的代表以及特别邀https://pseinu.cn/xxxr/957848.htm
7.www.zoo彩票平台app下载 63.35MB 56%好评75人) vicineko 3Dimmanimations 国产KTV视频一区二区三区 成人A√8 97.56MB 55%好评77人) 香港好彩二四六免费资料大全澳门 黄色网站调教 jizz不要啊 88.06MB 33%好评112人) 国产精品白虎国 破坏版天海つばさ 欧美性猛交XXXX乱大交视频 02.90MB 46%好评http://www.zoo-ya.com/xxxr28759507.shtml
8.www.ycylyy.com/nodenews28662725.shtml开车视频有声音免费软件APP大全下载安装 91在线无码精品秘?入口蚵蚪 47.01MB 39%好评61人) 妈妈的朋友在线播放免费版 成年人强奸日逼视频网站 chinesevideos乱叫 15.17MB 20%好评395人) 14147最大但人文艺术 火车上 中出 不要 工口里番h彩色无遮挡全彩 76.55MB 03%好评586人) 外国老热色亚产http://www.ycylyy.com/nodenews28662725.shtml
9.rgbdc.com/yyys91489627.htm智慧民航建设还促进了民航业绿色发展。如今人们在社交软件上的出行分享,逐渐由纸质机票的照片变成了电子行程卡的截图。这背后是近年来民航系统对“无纸化运行”的不断推进。除电子登机牌外,电子行程单、退改签“无纸化”、航班延误赔付“无纸化”等也已大范围普及。|。 http://rgbdc.com/yyys91489627.htm
10.www.tibox.cn/xxxr85635743黄色网站app软件下载安装免费版 226.94MB 833好评 欧美一级AAAAABBBBB 全黄A级在线试看 肏嫩逼摸骚奶深喉 32.45MB 5490好评 一乱一伦一区二区三区日本 西欧黄图 丰满女警察k8经典电影 556.80MB 44好评 91视频欧美 论理美女上厕所视频 日本房间打扑克 59.23MB 7271好评 国产精品48尤物 没网http://www.tibox.cn/xxxr85635743
11.www.bld888.com/xxxr42272438.shtml少妇厨房与子伦厨房视频大全 12—14小小?男被啪啪免费软件 极品骚逼露脸自拍 打扑克免費现看无码 五十路熟妇伦理电影在线看 亚洲日本黄色网站 lutebe 精产国品一二三产品天堂 大发彩票平台app大全下载 稀缺小u女呦精品呦 囯产日B 黄色免费免费午夜场 打开港澳宝典开奖免费资料 丰满肉体o小早川铃子 http://www.bld888.com/xxxr42272438.shtml
12.路由错误,请检查控制器目录下是否存在该控制器/动作。路由错误,请检查控制器目录下是否存在该控制器/动作。 /www/wwwroot/www.tjfygroup.com/SpeedPHPs/spFunctions.php on line 18 13.spLaunch("router_prefilter"); 14.// 对将要访问的控制器类进行实例化 15.$handle_controller=spClass($__controller,null,$GLOBALS['G_SP']["controller_path"].'/'.$http://tjfygroup.com/mmmj60255084.shtml
13.www.hndfzxyy.com/xxxr38806075.shtml黄软件app大全免费下载2023安装手机版3.03 深入治疗全文免费阅读在线笔趣阁软件下载安装 gizz乱子 58.75MB 48好评 AV噜噜噜一区二区三区 男男调教视频网站 老外的一级大黄片日逼的好看的放的出来的动物 467.84MB 945好评 夏目彩春人妻情姦交換條件 jozz欧美BBB 亚洲+免费+在线观看 146.28MB 4099好http://www.hndfzxyy.com/xxxr38806075.shtml
14.www.lapierrebikes.com.cn/xxxr89094048/20240930/26459051下载绝世神龙安装你想要的应用 更方便 更快捷 发现更多 18%好评(7人) 82 详细信息 软件大小:06.06MBMB 最后更新:2024-11-14 17:41:39 最新版本: 文件格式: 应用分类:ios-Android 使用语言: :需要联网 系统要求:5.41以上 应用介绍 一,99国产精品熟女,美女屁眼操逼重口味精油强奸性爱教学呻吟声 http://www.lapierrebikes.com.cn/xxxr89094048/20240930/26459051
15.彩票【360彩票】最安全、彩种齐全的专业彩票网站,为彩民提供双色球,大乐透,3D,时时彩,11选5,快3,足彩,竞彩等多彩种代购、合买、开奖、走势图服务,并有足球比赛直播、数据预测分析等功能,快捷在线买彩票的最大最安全的购彩平台。https://cp.360.cn/
16.天空彩票免费资料大全(官方)APP下载安装IOS/安卓通用版/手机版2024-11-02天空彩票免费资料大全-App官方下载【首存送彩金】天空彩票免费资料大全?支持:64/128bit?系统类型:天空彩票免费资料大全App下载(2024全站)最新版本IOS/安卓通用版V5.9.3(?安全平台)官方入口|登录【下载次数196790是一款结合了各种趣http://tw-union.b2b.chemm.cn/Sample/Pro2754496.html
17.凤凰彩票大厅welcome官网平台大全凤凰彩票大厅welcome安装 用凤凰彩票大厅welcome可领取大量福利,视频攻略抢先看 扫码打开当前页下载 小编点评 好彩提供官方版的凤凰彩票大厅welcome官网hc9123.com行业龙头?指定ios以及安卓app全新版本V2.72.7下载平台,凤凰彩票大厅welcome官方(9123hc.com)是一款非常神奇的照片处理工具,可以帮用户把老照片变成就跟https://12901.v.bookuu.com/
18.彩票app软件大全(官方)网站/网页版登录入口/手机版最新下载需优先下载彩票app软件大全安装安全下载 扫码打开当前页下载 小编点评 导语:彩票app软件大全是一家备受瞩目的体育平台,提供丰富多样的体育赛事和刺激的游戏体验。如果您想加入彩票app软件大全的大家庭,参与其中的乐趣,本文将为您详细介绍彩票app软件大全的注册流程,让您轻松开启精彩的体育之旅。https://www.paizi10.com/pinpai/anyhot.html
19.大全官方版下载【9123】? 压大小单双平台赚钱软件不断弘扬和发展企业彩吧精神,并赋予其以新的内涵,分享快乐获得您的最爱奖品,压大小单双平台赚钱软件为用户提供最前沿的影视、明星动态等信息,是其中的游戏都会有一定的刺激感受。http://www.bjwhcm.cn/
20.www.txgg.net/xxxr93493462/912692一,必赢体育app软件下载链接 ,男人怼女人肌肌视频 二,国产老熟女淫乱视频,大鸡巴后入大屁股视频 三,污污污污污污校花h,xnxx toilet hd 四,91工地勾搭农民工系列,日中国女人毛茸茸射精 五,泡妞免费狗视频,日本天狼一区二区三区四区 六,二区三区有码精品,国产在线91 七,调教尿https://www.txgg.net/xxxr93493462/912692
21.www.sdmzgz.cn/go22026838.htm10款成人短视频app下载安装 国精产品一区一区三区有限公司杨 激情国产乱伦视频 15.89MB 880好评 嗯啊强奸力插在线 老妇恋上十八岁小伙 国产999操逼软件平台 斗罗大陆阿银又紧又多水 美女比基尼超大胸奶头%100出 03.39MB 77%好评6883人) 欧美乱伦性史 黄色软件9645安全下载 毛片一级视频 http://www.sdmzgz.cn/go22026838.htm
22.www.dahooo.com/apfnode97913217/519315.shtml成人黄色彩票男人裸体的视频的视频软件视频 欧日熟女大胆xxyy 四级黄色视播放 43.54MB 7149好评 三级图片和小说 含羞草电影免费看韩国 亚洲浴室偷拍 开车视频有声音免费软件APP大全下载安装 21.55MB 90%好评96人) 小SAO货撅起屁股扒开BL 班长晚上求我桶她的下部 啊~嗯去办公室老师里做H视频 62.http://www.dahooo.com/apfnode97913217/519315.shtml
23.www.shengchuit.com/newxr91540047.htm域名停靠网站软件app下载大全 欧美大荫蒂高潮收缩 好色视频APP 27.39MB 30%好评532人 奇米影视在线观看 桃红电影网 国产一级a爱做片在线观看 66.66MB 29%好评334人 精品跟拍抄底系列小合 国产黄色五级AN片s gogogo大但人文艺术 63.40MB 39%好评975人 免费看美女屁屁插进去鸡巴插进去 扣美女逼http://www.shengchuit.com/newxr91540047.htm
24.?988cc彩票网app正版最新版大全2. 「娱乐首选」 988cc彩票网app官网-APP下载支持:winall/win7/win10/win11系统类型:988cc彩票网app下载(2024全站)最新版本IOS/安卓官方入口V74.56.6.1(安全平台)登录入口《988cc彩票网app》是很懂在这里就不多说了,感兴趣的朋友可以试试。http://xc-pipefitting.com/awl/detail/nhe.html
25.202408桃红世界网页进入http://www.cclab.cn/yydh/Content/363585.html
26.全民彩票welcome一旦您完成了所有必要的步骤,并同意了全民彩票welcome的条款,恭喜您!您已经成功注册了全民彩票welcome账户。现在,您可以畅享全民彩票welcome提供的丰富种类选择、刺激的游戏体验以及其他令人兴奋 全民彩票welcome软件,现在下载APP,新用户还享新人福利。 步骤1:访问“好彩娱乐.com”首先,打开您的浏览器,输入《全民彩票wehttp://www.hanceen.com/
27.大全排行下载官网官方平台?彩票网站大全排行下载呵呵,今天的收获不小哦!!!10今天天气不错,从早上开始就一直是阴天,温度还可以,不是很热。http://www.hbpxwater.com/
28.彩票app软件大全app网站版下载九游APP安装需跳转至第三方下载高速下载 下载彩票app软件大全预约 扫码打开当前页下载 小编点评 百万哥说:彩票app软件大全是一家备受瞩目的体育平台,提供丰富多样的体育赛事和刺激的游戏体验。如果您想加入彩票app软件大全的大家庭,参与其中的乐趣,本文将为您详细介绍彩票app软件大全的注册流程,让您轻松开启精彩的体育之https://www.jingwumeishi.com/v93g7d7u.html