开发人员当然可以使用分立组件和 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 旋转以确保有足够的电容,因此一个好的做法是按照您的预期设置电容,但添加一些额外的并行封装,以防您需要调整所需的电容量。
结论
高保真音频正成为许多系统的要求,因为它为用户提供可听反馈,有助于他们了解系统的状态。嵌入式开发团队第一次与音频编解码器合作时,他们可能会感到害怕,但事实是,它们并不像从数据表中第一眼看到的那样糟糕。