资讯详情

基于STM32的DAC音频输出实验

基于STM32的DAC音频输出实验

新年新迹象,辞旧迎新,小飞哥先跟大家拜年!经过2020年的种种困难,迎来了2021年,首先祝大家不要太泰来,新年一切顺利,工作顺利,都能健康!

2020年10月左右,小飞哥开始分享微信官方账号的技术。非常感谢朋友们的支持。未来,小飞哥会继续陪伴大家,和大家一起变得更好,努力分享有价值有意义的文章,希望得到更多志同道合的朋友的支持!

寒暄过后,来,干!

------------------------------------------------------------------------------------------------------------------------------------------------------------

硬件资源:

STM32f103ZET6最小系统板

TDA2030年音频功放模块

扬声器或小扬声器

按键

软件资源:

定时器模块

DAC模块

音频文件生成软件:

读女:生成简短WAV文件

WavToC:把WAV文件转换为二进制文件

实现目标:

按键控制,DAC短提示语音频输出

硬件连接:

图片

核心板 TDA2030模块 TDA2030模块 喇叭(不分)
VCC5V VCC GND 接线1
GND GND OUT 接线2
PA4(DAC) IN

-----------------------------------------------------------------------------------------------------------------------------------------------------------

一、生成音频二进制文件 1.阅读使用女性 这里只做一个简短的使用说明,更多的我没有使用太多,合作伙伴可以百度哈。您可以在线下载或留下的地址,直接点击安装,安装后打开软件,界面如下图所示。

默认有两种发音,你可以在网上下载你最喜欢的声音,http://www.443w.com/tts/?post=2.打开此网站或直接点击红框中的下载发音人,只需在输入框中输入我们想要的语音即可。

点击生成声音文件,选择要保存的路径,可以随意选择,记住自己。

选择WAV文件格式,点击开始生成,等待提示完成之后,我们的语音就生成啦,软件默认生成的是16bit、16K采样率的声音

2、WavToC的使用

打开WavToC软件,导入我们刚刚生成的软件WAV文件中需要注意几个音频的关键参数,包括采样速率、输出采样率和输出压缩水平。采样率和采样位宽从WAV输出采样率与采样速率有关,一般符合奈奎斯特采样定律

奈奎斯特采样定理:奈奎斯特采样定理解释了采样率与测量信号频率的关系fs它必须大于被测信号对最高频率分量感兴趣的两倍。这个频率通常被称为奈奎斯特频率fN。

fs>2*fN

WAV文件采样频率为16K理论上,输出采样频率应该是<8000,所以你可以选择6400或8000以尝试不同采样率下声音的还原效果。我选择了6400的输出采样率,还原度还是挺高的。

接下来,点击生成代码。我们需要的代码已经出现在右转换输出框中。我们只需要将代码复制到我们现有的工程文件中或保存它们.h文件直接包含在我们的项目中。

以下是对生成代码的简要分析:以下几点也是我们在程序设计中需要注意的,采样率为6400,所以如何实现,软件代码生成也向我们解释,只需配置我们的定时器周期为156us,打开定时器中断,156us中断一次。f = 1/156us = 6410HZ,它大约是6400,还给出了函数原型,我们只需要按照这个说明编写函数。

二、软件实现

了解原理后,软件实现相对简单,我们只需要配置DAC和定时器可以。

1.我在这里使用定时器3。定时器的配置如下:分频系数、参数传入和向上计数模式。

2、STM32 DAC输出配置

STM32F103ZET6 的 DAC 通道 1 在 PA4 因此,我们必须首先使能量 PORTA 的时钟, 然后设置 PA4 模拟输入。DAC 它本身是输出,但为什么端口要设置为模拟输入模式呢?因为一但使能 DACx 通道后,相应的 GPIO 引脚(PA4 或者 PA5)会自动与 DAC 模拟输出连接,设置为输入,以避免额外的干扰。 STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的 DAC。DAC 可以配置为 8 位或 12 位模式,也可以和 DMA 配合使用控制器。DAC 工作在 12 数据可以设置为左对齐或右对齐DAC 模块有 2 每个输出通道都有单独的转换器。在双DAC 模式下, 2 一个通道可以独立转换,也可以同时转换和更新 2 输出一个通道。DAC 可通过引脚输入参考电压 VREF 以获得更准确的转换结果。STM32 的 DAC 模块的主要特点是: ① 2 个 DAC 转换器:每个转换器对应 1 个输出通道 ② 8 位或者 12 位单调输出 ③ 12 位模式下数据左对齐或者右对齐 ④ 功能同步更新 ⑤ 产生噪声波形 ⑥ 三角形波形生成 ⑦ 双 DAC 同时或分别转换通道 ⑧ 每个通道都有 DMA 功能 代码配置如下:

为什么选8?bit对齐模式,而不是12位,这与我们生成的语音文件数据格式有关,生成8位bit所以这里选择8个模式文件bit对齐模式。

3、定时器,DAC输出已经配置,然后编写我们的语音播放功能函数,只需要在定时器中断调用,功能函数如下,只需要中断函数,功能函数,我们只需要输出语音文件数组DAC可以,播放完成后关闭中断,关闭DAC输出,避免干扰杂音。

三、音频功率放大器TDA2030介绍

仅仅依靠DAC输出电压驱动能力很弱,需要功率放大信号功率放大,驱动喇叭,如果手头没有功率放大模块,耳朵靠近喇叭,非常近,也许能听到微弱的声音,哈哈,小飞哥第一次没有功率放大器,开始如何调整没有输出声音,最后突然意识到驱动能力问题。

1.模块图:

模块参数:

1)、单声道18W放电路设计

2)、板载喇叭接线座

3)、板载10K可调电阻,可以调节放大的音量

4)、板载电源指示灯

5)、芯片主要的引脚已经引出,可以直接输入音频信号

6)、工作电压:6~12V

2、TDA2030音频功放芯片介绍

资料链接:https://www.chip37.com/scp/TDA2030#catalog10

      TDA2030A音频功放电路,常采用V型5脚单列直插式塑料封装结构。如图所示,按引脚的形状引可分为H型和V型。该集成电路广泛应用于汽车立体声收录音机、中功率音响设备,具有体积小、输出功率大、失真小等特点。并具有内部保护电路。意大利SGS公司、美国RCA公司、日本日立公司、NEC公司等均有同类产品生产,虽然其内部电路略有差异,但引出脚位置及功能均相同,可以互换。

引脚说明:

典型应用电路(单电源):

      通过调节滑动变阻器分压实现输入电压幅值调整,进而调整输出声音的大小,放大倍数为Au=R1/R2。  

如果你觉得对自己有帮助的话,给个赞,点个关注,点个在看,感谢前进的道路上有你的陪伴!

欢迎大家关注 Embeded小飞哥  ,我是小飞哥,让我快点遇到优秀的你,然后一起变得更加优秀,加油!!!

小飞哥微信号:w974762670,加好友进群一起交流呀! 演示视频:

见公众号!

资料链接地址: 链接:https://pan.baidu.com/s/1VyglPMiofhvl8Qa3VhSMZw 提取码:m6a4

标签: au3电阻器定时器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台