
第三篇终于来了。前两篇把SI4732和ESP32S3 Zero的I2C通信打通、TFT_LCD的频率显示跑起来之后整机算是“能响”但问题也堆了一堆耳机口音量开到头还是觉得闷接3W小喇叭更是像蚊子叫USB供电的时候背景里有说不清的沙沙声换成电池又好一些屏幕一刷新耳机里就跟着“嗒嗒”响。这些问题全都指向两个主题——音频放大和电源优化。这篇就把我的选型过程、外围电路细节、电源树设计、干扰排查链路一次性整理出来。如果你现在正卡在收音机功放底噪、供电纹波或者数字电路干扰这几个问题上这篇内容应该能帮你省下不少弯路。1. 音频放大选型TDA2030、PAM8403与TDA2822M的取舍1.1 先摸清SI4732的音频输出底细SI4732作为DSP收音机芯片音频输出并不像传统AM/FM中放芯片那样给一个“适合直接推耳机”的电平。它的LDOUT/RDOUT引脚输出的是模拟音频信号内部带一定直流偏置数据手册明确要求通过耦合电容接入后级。我实测耳机阻抗32Ω时直推能听清但低频发虚动态一大就发糊换4Ω喇叭声音小到只能贴着耳朵听。原因很简单SI4732的输出级不是功率级它能提供的电流非常有限带高阻耳机勉强凑合带低阻喇叭就是强人所难。这个输出级还有个特点音量由内部数字音量寄存器控制如果把数字音量调高输出电平大概能到几百毫伏到接近1V。问题是电平一高耳机里容易出现“发硬”的感觉说明失真已经上去了。我当时用示波器看输出波形数字音量调到63时波形顶部明显削顶。所以在功放选型上我首先关注的是输入灵敏度和增益适配而不是一味追求后级功率。这里还有一个关键点SI4732输出脚是两路立体声但很多便携收音机只需要单声道。我第一版只取了左声道LDOUTRDOUT悬空没有出问题但保险起见悬空脚最好对地接一个100kΩ电阻避免它像天线一样把环境噪声感应进去干扰另一个声道的参考地。1.2 三款功放芯片的实机对比选功放之前我先在桌面上摆了三款常见芯片做对比TDA2030、PAM8403、TDA2822M。它们的定位差异非常大直接决定适合做成台式还是便携式。项目TDA2030PAM8403TDA2822M放大类型AB类D类AB类供电电压6-36V单电源或±6-±22V双电源2.5-5.5V3-15V最大输出功率约20W4Ω±18V时3W×25V4Ω约1W×29V4Ω外围复杂度高需要散热片和较大滤波电容低阻容极简中等输出需要自举电容音质风格干净、功率余量大高音略干开关底噪要处理暖、柔和但功率小对收音机干扰很小输出是方波不处理会干扰天线很小适合场景桌面台式收音机或桌面音箱便携锂电池收音机简易桌面或学生作品TDA2030是我第一反应想用的因为网上搜“tda2030音频放大电路”能出来一大堆成熟方案资料多不容易翻车。它的输入级是高阻抗场效应管输出电流最大能到3.5A20W功率足够带动书架箱。但问题也明显要达到20W需要较高的供电电压散热片必须安排静态电流也比较大用3.7V锂电池根本推不动。所以它更适合做成台式收音机的外置功放而不是便携机的一部分。PAM8403则完全是另一个方向。5V供电就能输出3W×2D类效率超过80%一颗小芯片加几个阻容就能跑非常适合用18650或单节锂电供电的便携机。但它有一个天生的缺点内部功率管输出的是高频开关方波如果输出端不加滤波或者喇叭线太长方波就会辐射出来干扰收音机天线。我在便携版上吃过这个亏后面会专门讲对策。TDA2822M是很多老收音机里用过的经典功放3V就能工作驱动小喇叭声音很“温暖”而且不会像D类那样产生明显开关噪声。缺点是功率太小9V供电输出约1W想听大动态音乐就不够从容。如果你做的是复古风格小台式它反而比TDA2030更合适。1.3 我的最终方案一台桌面机、一台便携机既然三种芯片各有优劣我干脆做了两套。桌面机用TDA2030单电源接法配12V开关电源加一级线性滤波便携机用PAM8403配3.7V锂电池用一节18650供电。这样两台设备既回应了“TDA2030音频放大电路”的经典方案又满足了随身携带的场景。两套方案在调试时的侧重点完全不一样。桌面版重点处理TDA2030单电源接法的中点偏置和散热便携版重点处理D类功放的输出滤波和电源去耦。TDA2822M作为备选我也搭了但最终装机里只保留了一个用来对比听感。这里有个选型经验先定供电再选功放不要先定功放再凑电源。很多新人喜欢看芯片功率大就上结果发现手头没有双电源被迫改电路浪费一堆时间。TDA2030能不能单电源用能但要在输出端加一个Vcc/2偏置喇叭还要串大电容低频响应会受影响调试成本翻倍。选PAM8403就简单得多几乎不会在供电上卡壳。2. 功放外围电路耦合、增益和防自激的细节2.1 输入耦合电容先把直流偏置问题解决SI4732的LDOUT引脚不是理想电压源它输出的音频信号叠加在内部基准电压上。如果直接接功放输入这个直流分量会被放大导致喇叭线圈一直偏置在某一侧轻则声音不对称重则烧喇叭。所以第一件事就是在信号链上串耦合电容。耦合电容容值不是随便选的。电容和功放输入阻抗构成高通滤波器截止频率f1/(2πRC)。以TDA2030电路为例输入阻抗主要由输入电阻决定官方电路通常配到20kΩ级别PAM8403输入阻抗一般也在20kΩ级别。按20kΩ计算如果想截止频率低于10Hz电容至少是0.8uF。我在两套机器里都用了10uF电解电容低频表现足够而且体积不大。还有个容易被忽略的点耦合电容在焊入之前最好测一下容值和漏电流尤其拆机电容。我遇到过用失效电解电容导致低音几乎没有的情况换了新电容立马正常。安装时注意极性方向正极接SI4732输出负极接功放输入反接轻则容量下降重则电解液泄漏。另外为了给功放输入端一个稳定的直流工作点耦合电容后面要对地接一个偏置电阻。TDA2030数据手册用的是100kΩPAM8403输入脚本身有偏置不用额外加。这里不要省否则输入悬空时容易感应50Hz交流噪声。2.2 增益与音量电位器的匹配功放增益不是越大越好关键在于和信号源电平的匹配。TDA2030经典应用电路里反馈电阻Rf22kΩ、接地电阻Ri680Ω闭环增益约122000/680≈33倍换算成dB大约是30dB。这个增益对CD播放器这类1V左右的音源合适但对SI4732输出可能偏大数字音量开到一半就会削波。我的做法是在功放输入端前加一级10kΩ对数型电位器做音量调节信号先经过电位器分压再进功放。这样功放增益可以保持官方推荐值保证稳定性和音质音量大小交给电位器控制。桌面版测试时SI4732数字音量在40左右电位器拧到9点钟位置就已经有足够响度11点钟开始削波说明余量充足。PAM8403的增益不是靠外部电阻设置的而是通过GAIN引脚的电平组合选择。不同版本引脚定义略有差异我按数据手册设置的增益档位大约在21dB。为什么不用最高的32dB档很简单SI4732输出能力有限用高增益档会把本底噪声也一起放大弱信号时耳朵贴在喇叭上能明显听到“嘘”声。21dB听起来中规中矩实际音量完全够用。2.3 输出网络的防自激处理功放最怕的不是发热而是自激。TDA2030输出接长喇叭线时喇叭线分布电感和电容容易形成LC振荡表现出来就是高频嘶嘶声甚至不输入信号也发热。官方电路在输出端加了一个RC网络我用了10Ω电阻串0.1uF电容并接在输出端对地再加一个1uH左右的电感串在输出回路里实测无论喇叭线怎么甩都没再自激。PAM8403这类D类功放正好相反它的开关输出自带高频成分输出端反而要加LC低通滤波器。很多成品模块为了省成本用贴片磁珠替代但磁珠的截止特性不如LC滤波器干净。我自己搭的时候在输出端放了22uH电感加0.47uF电容组成的二阶低通截止频率大约在30kHz以上既能滤掉开关频率又不损失音频范围内的高频。加了滤波之后便携版对收音机天线的干扰明显降低。防开关机冲击也是功放外围的一个必修课。TDA2030单电源上电瞬间Vcc/2偏置会通过大电容对输出产生一个瞬态电压喇叭里会“砰”的一声。处理办法有两种一是给偏置电路加RC慢启动让Vcc/2缓慢建立二是在输出端加继电器延时接通等稳定了再带喇叭。桌面版我用了第一种把偏置电容从47uF加大到220uF启动时间拉长到约半秒冲击声小了很多。3. 电源树与地线重排LDO对比、去耦电容和单点接地3.1 供电树设计谁和谁绝不能共用收音机的电源优化比一般单片机项目苛刻因为射频前端对电源噪声极其敏感。原则只有一个大电流、高频开关的负载必须和小信号模拟电路分离。便携版的供电树是这样的18650电池直接给PAM8403供电电池再经过防反接和分压后分成两路一路给SI4732供电一路给ESP32S3 Zero和TFT_LCD供电。SI4732那一路用低压差低噪声LDO单独稳压ESP32那一路用大电流LDO。为什么这么分因为ESP32开启WiFi时电流会瞬间跳变几十到几百毫安如果和SI4732共用一颗LDO公共内阻上的电压波动会直接调制到射频芯片电源上现象就是FM弱台的背景噪声跟着WiFi发包节奏一抽一抽。桌面版的供电树要更小心。TDA2030需要12V以上电压我用12V开关电源供电但开关电源本身有几十到几百毫伏的纹波直接给收音机其他部分用会非常脏。我的做法是12V先经过一级LC滤波再给TDA2030供电同时把12V经DC-DC降压到5V5V再经低噪声LDO降到3.3V给SI4732和数字电路。这样功放、射频、逻辑三层电源互相隔开实测底噪比之前直接并联低了几个数量级。很多DIY爱好者容易踩一个坑把USB的5V直接拿来给SI4732供电。USB口的5V来自电脑或充电头纹波和噪声情况千差万别我在电脑USB口上就测到过接近200mV的高频毛刺这种电源给收音机用灵敏度直接下降。所以只要条件允许我都是电池供电或者至少经过LDO再进射频电路。3.2 低噪声LDO的实测对比为了给SI4732选合适电源我用示波器交流档对比了三种LDOAMS1117-3.3、ME6211、LP5907。AMS1117是通用器件压差低、电流大但输出噪声明显在AC耦合下能看到几十毫伏的高频毛刺用在数字部分没问题用在射频部分就不太够。ME6211的噪声比AMS1117小一些是很多ESP32模块板载LDO但也不是专门为射频设计的。LP5907属于专用超低噪声LDO输出噪声典型值在10uVrms以内给SI4732供电后弱信号台的背景“沙沙”声小了一大截。实际操作中在LDO后面补一颗10uF低ESR陶瓷电容是必须的LDO对输出电容有要求。电容不要离SI4732太远我把它放在芯片电源引脚3mm以内。输入侧我放了一颗100uF电解加一颗1uF陶瓷用来吸收来自电池或DC-DC的低频波动。还有一点容易被忽略LDO的静态功耗。便携版整机待机电流大约30mA如果LDO选型不当它的自身功耗可能占到一半。LP5907静态电流只有几十微安非常合适ME6211稍高一点但也能接受AMS1117静态电流偏大便携场景就不推荐了。3.3 地线布局与去耦电容摆放电源优化的另一半是地线。模拟电路地、数字电路地、功放大电流地在PCB上如果胡乱连输入信号再干净也会被地线噪声重新污染。我用的办法是单点接地把模拟地、数字地、电源地在板子电源入口处汇聚成一点模拟地的走线像一条主干各个模拟芯片就近入地不在功放回路上串接。功放地和喇叭线更要注意。喇叭电流是脉冲性的如果喇叭负极和SI4732的地共用一段走线这段走线上的地弹会直接调制到天线输入端。我处理时让喇叭负极走独立的线直接回到电池负极并且把两根喇叭线绞在一起和信号地完全分开。改完以后音量开大时那种“哼”的声音基本消失了。去耦电容布局的原则是“小电容靠近引脚大电容管大局”。每个IC电源脚旁边放0.1uF陶瓷电容SI4732的VDD脚额外放1uF和0.1uF各一颗两颗都贴着芯片TFT背光供电并联100uF电解和0.1uF因为背光电流突变非常容易出现尖峰。实测这个电容组合能有效吸收大部分瞬态电流音频输出端的毛刺小了很多。4. 数字电路干扰定位从TFT刷新啸叫到WiFi底噪4.1 症状屏幕一刷新就“嗒嗒”响WiFi一开就“嘘嘘”吵做到第三篇音频链路和电源树都优化到位了但整机联调又冒出新的问题TFT_LCD刷新时耳机和喇叭里跟着出现“嗒嗒”声WiFi连接后FM弱台开始出现明显的“嘘嘘”噪声短波波段更严重。这种干扰来自系统自身属于数字电路通过传导和辐射两条路径污染了模拟前端。我用示波器同时勾住功放输出和TFT背光电源发现每次屏幕刷新背光电源上都会出现一个幅度不小的尖峰功放输出同时出现对应的脉冲。另一个表现是ESP32天线启动WiFi传输时SI4732的RSSI寄存器读数会周期性跌落这和WiFi的帧间隔完全同步。这说明干扰是可以定位的不是玄学。干扰的本质有两个一是SPI时钟、数据和背光PWM的快速边沿产生高频谐波通过地线或空间耦合到音频和射频通路二是ESP32工作时天线发射的2.4GHz信号虽然不在FM频段但会和SI4732前端的非线性形成互调落到中频或音频范围。理解这两个本质后面设对策就有方向了。4.2 硬件对策串阻、屏蔽、分地先处理TFT的快速边沿。SPI的SCLK和MOSI线上我串了33Ω电阻降低边沿翻转速度让过冲变小实测经天线感受到的干扰强度下降明显。代价是屏幕刷新时有一点拖影但对于显示频率、电台名这种静态文字完全够用。背光PWM频率从1kHz调到22kHz避开了人耳最灵敏的频段“吱吱”的差频噪声消失同时在背光供电串了一颗磁珠再用100uF电容稳住瞬态电流。再给SI4732做局部屏蔽。我用一块薄铜箔把SI4732和它的外围电路罩起来铜箔用导电胶带接地和PCB地焊在一起。屏蔽罩不接地是没用甚至更糟的这一点一定要牢记。因为天线走的是板子另一侧屏蔽之后FM和短波接收都稳定了不少。第三是地线分离。TFT的排线、ESP32的数字地集中铺在板子一侧SI4732模拟地集中在另一侧在电池负极处单点汇合。如果板子空间实在不允许至少要保证功放的喇叭回流不走模拟地。这一条在前面电源优化里已经做了这里再强调一次因为没有它前面的屏蔽和串阻效果都会打折扣。4.3 软件策略改刷新方式和射频调度硬件能解决大部分干扰但我也在软件上做了一些配合。一是把TFT刷新改成DMA方式。过去用轮询逐像素写SPICPU长时间被占用背光电流波动频繁改成DMA整帧刷新后刷新周期变成连续的脉冲群总时间缩短干扰平均能量下降更重要的是CPU可以继续处理SI4732寄存器读取不会把瞬时电流脉冲全部挤在一起。二是降低SPI时钟。我的TFT最高支持40MHz但实际用20MHz刷新就肉眼无感干扰却小很多。如果你也遇到屏幕刷新伴随噪声可以先试着把SPI时钟降到一半看有没有改善这是最省事的验证手段。三是WiFi调度策略。便携式收音机在听广播时我默认关闭WiFi只保留基本功能。如果必须联网我会把WiFi设置为省电模式并降低发射功率同时让WiFi工作在每包间隔拉长的状态避免持续高速收发。对于只能保留WiFi的场景可以做一个简单的时间片轮转WiFi传输一秒然后停一秒听感上比持续发噪好很多。5. 整机装调与数据记录示波器底噪、听感对应和RSSI验收5.1 底噪测量没有专业音频分析仪怎么量化很多人调收音机全凭耳朵调着调着就失去参照。其实条件有限也可以量化底噪用示波器交流档测功放输出音量电位器拧到最小记录残留噪声再把输入信号短路记录噪声电平。没有示波器的话数字万用表的交流mV档也能做相对比较虽然不是真RMS值但在同一个系统的调试前后可以作为可靠参照。我的实测记录桌面版TDA2030在优化前输出端残留噪声约8mV主要是100Hz纹波优化电源树并调整地线后降到2mV。便携版PAM8403在优化前端输入滤波前残留噪声4mV加了输入RC滤波和高频输出滤波后降到1.5mV。这里说的都是音量电位器拧到中位的值结果非常能说明问题。5.2 主观听感与示波器波形的对应当示波器上看到100Hz纹波时听感是“嗡嗡”的交流声这种多半来自电源地线公共阻抗或开关电源纹波看到几十kHz的高频毛刺听感是“丝丝”的沙沙声多半来自LDO输出噪声或D类功放串扰看到间歇的脉冲群听感是“嗒嗒”或“噼啪”声多半来自TFT刷新或WiFi突发。波形特征和听感一一对应排查时就不要再瞎猜了。我按这个方法把前面每项改动前后的波形都拍了下来对比听感桌面版把12V开关电源带来的100Hz纹波滤掉后“嗡嗡”感消失便携版把PAM8403输出端滤波加上后“丝丝”声下降非常明显TFT改DMA刷新后“嗒嗒”声基本不可闻。这一步的收获是以后再做任何音频相关项目都必须先勾波形再调电路效率比纯耳朵好太多。5.3 最终效果用SI4732的RSSI做客观验收主观听感之外SI4732的RSSI寄存器是个免费的好工具。读RSSI和SNR时需要让收音机停在同一个弱台上保持天线位置不变分别记录优化前后的数值。我在本地一个87.5MHz的弱台上测到优化前RSSI显示35dBuV、SNR约21dB优化后RSSI没有明显变化但SNR提高到27dB意味着同样电平下噪声被压下去一大截信号“可用性”完全不同。AM 630kHz的生命信号也清晰了不少夜间台底的交流声明显减弱。客观数据加主观听感都通过后我再提一个装调顺序上的建议先电源、后音频、再射频干扰。很多人一上来就换功放芯片结果底噪还是大其实只要电源树和地线设计正确一颗普通的功放也能出好声。反过来电源问题没解决换多贵的功放都白搭。这个顺序在我这次实践中被反复验证。最后分享一个调试小技巧当整机所有声道都响了之后不要急着装壳。先把线路板和喇叭、天线用跳线连起来裸奔状态下用示波器测底噪、测RSSI确认没问题再装壳装壳后再复测一遍因为机壳、电池、螺丝的位置会影响分布电容和天线负载很多“装好就变差”的问题都出在这个环节。