基于Si4731与PIC18F57K42的数字调谐收音机设计
1. 项目概述:用Si4731和PIC18F57K42打造个性化收音机
最近在整理工作室时翻出一台老式收音机,让我想起学生时代熬夜调频找电台的日子。现在虽然手机能听一切,但那种旋钮调谐的仪式感再也找不回来了。于是决定用Si4731数字调谐芯片和PIC18F57K42单片机,做一个能自定义收藏电台的现代版"复古收音机"。
这个项目的独特之处在于:Si4731芯片支持从150kHz到108MHz的全频段接收(包含FM/AM/LW/SW),而PIC18F57K42自带LCD驱动和触摸感应功能,两者结合既能实现专业收音机的接收性能,又能通过触摸屏实现频道收藏、音效调节等现代化操作。特别适合想深入理解数字调谐技术,又希望做出实用作品的电子爱好者。
2. 硬件选型与核心元件解析
2.1 Si4731芯片的关键特性
这颗Silicon Labs的数字调谐芯片堪称收音机界的"瑞士军刀":
- 全频段覆盖:FM(64-108MHz)、AM(520-1710kHz)、LW(150-285kHz)和SW(2.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) |
|---|---|---|
| FM | 3.5 | 60 |
| AM | 25 | 45 |
| SW | 50 | 40 |
5.2 常见问题排查
- 频率漂移问题:检查32.768kHz晶振负载电容(建议22pF)
- I2C通信失败:上拉电阻取值4.7kΩ(3.3V系统)
- 触摸误触发:在PCB上做guard ring环绕触摸焊盘
6. 功能扩展思路
已完成基础功能后,可以尝试:
- RDS解码:通过Si4731的RDS/RBDS功能获取电台名称/节目信息
- 自动扫描存储:信号强度>阈值的频率自动存入EEPROM
- 蓝牙转发:添加HC-05模块将收音音频转发到蓝牙音箱
我在实际制作中发现,用3D打印一个复古收音机外壳,配合老式指针表头改装为信号强度指示,能让整个项目瞬间情怀满满。最后提醒:调试FM接收时,建议先用本地强信号电台(如交通广播)测试,再逐步挑战弱信号。