将音频编解码器添加到嵌入式系统的五个技巧

开发 前端
嵌入式系统播放音频的能力正在成为一个相当普遍的功能。音频为用户提供了很好的反馈,但如今有如此多的高保真音频可用,使用哔哔声和啁啾声不再削减它。

开发人员当然可以使用分立组件和 DAC 从系统中获得不错的音频,但音频编解码器已经变得非常便宜,并且为嵌入式开发人员提供了广泛的功能,否则这些功能将耗费时间和成本来实现。在今天的文章中,让我们研究一些将音频编解码器添加到嵌入式系统的技巧。

技巧 #1 – 使用微控制器作为主时钟

音频编解码器通常通过 I2S(IC 间声音)接口连接到系统。许多音频编解码器为开发人员提供了如何为音频编解码器生成时钟的灵活性。例如,时钟源可以由微控制器通过 I2S 总线或连接到编解码器的振荡器生成。编解码器本身可以充当主时钟源并将时钟发送到微控制器。但是,如果开发人员想要最大限度地降低物料清单 (BOM) 成本,最简单的方法是将微控制器设置为主控并为编解码器生成时钟。这最大限度地减少了成本和组件数量,并简化了音频播放系统。

技巧 #2 – 使用外部音频放大器

大多数音频编解码器都带有内置音频放大器。这些放大器通常可以输出 0.5 到 1.5 瓦之间的任何功率,当然也有例外。如果音频应用简单且不需要大量输出,则利用内部放大器再次节省 BOM 成本是有利的。然而,在大多数应用中,内部放大器无法为应用提供足够的输出功率或灵活性。出于这些原因,嵌入式开发人员经常使用外部音频放大器,可以通过扬声器输出系统进行调整以获得更好的性能。在这些应用中,音频编解码器通常设置为绕过内部音频放大器,因为它们通常期望驱动 4 或 8 欧姆负载。然后使用线路输出驱动外部音频放大器。

技巧 #3 – 利用音频块调整扬声器

很多音频编解码器是通常包含的数字块。这个数字音频模块允许开发人员针对他们的应用仔细调整他们的音频播放系统。例如,一个典型的音频块可能包含几个可编程的低通和高通滤波器以及一个多点均衡器。这些可编程组件允许开发人员仔细调整其输出系统,以最大限度地提高音频质量,同时最大限度地减少系统所需的外部组件数量。这些组件的编程方式取决于最终应用中使用的扬声器的频率特性以及将使用的音频类型,例如器乐与人类语音。

技巧 #4 – 将编解码器配置存储在表格中

音频编解码器的配置通常通过 I2C 总线传输,而数字音频流则通过 I2S 接口传输。大多数音频编解码器都有几十个寄存器,需要配置这些寄存器才能使编解码器按照应用程序需要的方式运行,嵌入式开发人员存储此配置信息的一个好方法是将配置表保存在 EEPROM 或闪存中,然后在系统初始化期间将该表加载到 RAM 中。然后,如果需要调整系统性能,例如调整当前音量,用户可以修改 RAM 值。在启用音频播放系统之前的初始化期间,可以通过 I2C 发送初始配置,然后可以根据需要提供单独的寄存器更新。

技巧 #5 – 在 PCB 上添加备用电容封装

电容很重要,因为有时扬声器需要拉出“大量”瞬时能量,而电容充当能量储存器。电容太小,扬声器可能无法按需要移动,因此会产生耳朵听得见的音频缺陷。确保有足够的唯一方法是在系统运行时进行测量。没有人愿意浪费 PCB 旋转以确保有足够的电容,因此一个好的做法是按照您的预期设置电容,但添加一些额外的并行封装,以防您需要调整所需的电容量。

结论

高保真音频正成为许多系统的要求,因为它为用户提供可听反馈,有助于他们了解系统的状态。嵌入式开发团队第一次与音频编解码器合作时,他们可能会感到害怕,但事实是,它们并不像从数据表中第一眼看到的那样糟糕。


责任编辑:华轩 来源: 今日头条
相关推荐

2021-08-03 08:38:21

Netty解码器使用

2021-08-11 10:03:07

iOS 14.8苹果iOS 15

2022-03-11 15:44:11

嵌入式开发技巧技术

2022-10-10 10:38:22

FedoraopenSUSE视频编解码

2021-08-18 10:41:24

GoogleSoundStream神经网络

2022-03-18 14:08:49

嵌入式开发技巧系统

2020-02-19 19:15:27

UbuntuLinux媒体编解码器

2021-04-07 13:52:57

GoogleLyra编译器

2022-02-19 22:47:46

编程语言开发C++

2021-08-20 13:12:18

Google 开源技术

2024-02-28 08:22:07

2021-05-26 14:39:27

FedoraLinux企业域

2021-12-25 16:20:38

微软WindowsWindows 10

2023-06-20 08:34:33

SVT-AV1开源

2020-10-10 15:22:33

Windows 功能系统

2021-10-08 09:38:57

NettyChannelHand架构

2023-07-26 16:31:09

Windows 10Windows 11微软

2020-02-11 12:54:34

Linux日志文件消息

2021-04-22 11:21:03

Windows 10Windows微软

2021-04-12 13:36:59

开源技术 工具
点赞
收藏

51CTO技术栈公众号