
1. 项目概述用Si4731和PIC18F57K42打造个性化收音机最近在整理工作室时翻出一台老式收音机让我想起学生时代熬夜调频找电台的日子。现在虽然手机能听一切但那种旋钮调谐的仪式感再也找不回来了。于是决定用Si4731数字调谐芯片和PIC18F57K42单片机做一个能自定义收藏电台的现代版复古收音机。这个项目的独特之处在于Si4731芯片支持从150kHz到108MHz的全频段接收包含FM/AM/LW/SW而PIC18F57K42自带LCD驱动和触摸感应功能两者结合既能实现专业收音机的接收性能又能通过触摸屏实现频道收藏、音效调节等现代化操作。特别适合想深入理解数字调谐技术又希望做出实用作品的电子爱好者。2. 硬件选型与核心元件解析2.1 Si4731芯片的关键特性这颗Silicon Labs的数字调谐芯片堪称收音机界的瑞士军刀全频段覆盖FM64-108MHz、AM520-1710kHz、LW150-285kHz和SW2.3-26.1MHz一网打尽数字中频处理内置DSP实现自动增益控制(AGC)、噪声抑制、软静音等专业功能极简外围电路相比传统超外差方案只需少量阻容元件晶振即可工作I2C控制接口方便与单片机通信寄存器配置灵活实际使用中发现Si4731的3.3V供电很关键电压波动会导致接收灵敏度下降。建议使用低压差线性稳压器(LDO)单独供电。2.2 PIC18F57K42单片机的优势选择为什么选这款可能不太常见的PIC型号主要考虑三点自带段式LCD驱动最多支持4x32段显示正好用于展示频率和信号强度电容触摸感应外设实现旋钮/按键的触摸交互无需额外触摸芯片丰富的外设资源2个I2C接口分别连接Si4731和EEPROM、硬件PWM输出控制音量芯片的Memory Access Partition功能还能将Flash划分为固件区和用户数据区完美存储个人收藏的电台频率。3. 电路设计要点与避坑指南3.1 射频前端设计虽然Si4731高度集成但天线输入部分仍需注意ANT → 33pF电容 → 220Ω电阻 → Si4731 ANT引脚 ↑ 1.5kΩ电阻到地这种设计既保证50Ω阻抗匹配又提供静电防护。实测在FM波段用一根20cm导线作天线就能稳定接收本地电台。3.2 音频输出处理芯片内置的音频放大器驱动能力有限约10mW推荐两种增强方案直接线路输出从SI4731的AUDIOOUT引脚接10μF隔直电容→10kΩ电位器→功放IC如PAM8403耳机驱动方案添加TS4871耳放芯片通过跳线切换线路/耳机输出曾踩过的坑Si4731的音频输出有2.2V直流偏置必须加隔直电容否则会烧毁后续设备。4. 软件架构与关键代码实现4.1 初始化流程void SI4731_Init() { I2C_Write(0x22, 0x01); // 上电复位 delay_ms(500); I2C_Write(0x22, 0x11); // 开启FM接收模式 I2C_Write(0x22, 0x21); // 设置频段为87.5-108MHz I2C_Write(0x22, 0x40); // 开启AGC功能 }4.2 频率调谐算法采用二分法快速锁定电台核心逻辑设置起始频率如87.5MHz读取RSSI信号强度值以100kHz步进增加频率当RSSI阈值时切换为10kHz步进微调找到RSSI峰值点即为最佳接收点4.3 触摸旋钮实现利用PIC的CTMU模块检测电容变化uint16_t Read_Touch() { CTMU_StartCharge(); delay_us(50); return ADC_Read(TOUCH_PIN); }通过滑动平均值滤波消除误触旋转角度与频率调整量成正比。5. 成品调试与性能优化5.1 接收灵敏度测试使用信号发生器实测性能频段灵敏度 (μV)信噪比 (dB)FM3.560AM2545SW50405.2 常见问题排查频率漂移问题检查32.768kHz晶振负载电容建议22pFI2C通信失败上拉电阻取值4.7kΩ3.3V系统触摸误触发在PCB上做guard ring环绕触摸焊盘6. 功能扩展思路已完成基础功能后可以尝试RDS解码通过Si4731的RDS/RBDS功能获取电台名称/节目信息自动扫描存储信号强度阈值的频率自动存入EEPROM蓝牙转发添加HC-05模块将收音音频转发到蓝牙音箱我在实际制作中发现用3D打印一个复古收音机外壳配合老式指针表头改装为信号强度指示能让整个项目瞬间情怀满满。最后提醒调试FM接收时建议先用本地强信号电台如交通广播测试再逐步挑战弱信号。