
简易收音机
简介
你是否记得夏日的傍晚,你坐在院子里听着收音机和爷爷奶奶姥姥姥爷一起乘凉,你是否记得夏日傍晚的小喇叭节目
简介:你是否记得夏日的傍晚,你坐在院子里听着收音机和爷爷奶奶姥姥姥爷一起乘凉,你是否记得夏日傍晚的小喇叭节目开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
项目简介
这是一个简易的FM收音机,儿时的夏天,我喜欢在爷爷的房间听收音机。滴答滴答滴答,现在是北京时间20点整,中央人民广播电台中国之声,然后便是滴滴答滴滴答,小朋友们,小喇叭开始广播了。
很多年过去了,我己经记不得当时的主持人是哪一位姐姐,但是我怀念我的爷爷,也怀念我的童年。这次夏日主题的活动,制作一个建议的收音机来回忆我的童年。同时我是一个业余无线电爱好者,业余无线电在无数的抢险救灾中发挥着重要的作用,也对战争年代牺牲的情报工作者致敬,向永不消逝的电波致敬。
本工程有一个ESP32版本的,开源链接为 https://oshwhub.com/laobainb/jian-yi-shou-yin-ji-esp32-ban
- 收音机芯片选择 DRA5807m,它是新一代单片机广播调频立体声调谐器,极少的外围元件,使用 I²C 与单片机通讯
- 音频功放选择PAM8403,此芯片立体声功率放大器能够以 D 类放大器的效果提供 AB 类功率放大器的性能。要极少的外围元件,节省了PCB空间,以及还发设计成本
- 电源管理采用IP5306,这是一款集成升压转换器、锂电池充电管理、电池电量指示的多功能电源管理 SOC,同样不需要太多的外围元件,只需一个电感实现降压与升压功能,同步升压系统提供最大 2.4A 输出电流,转换效率高达 92%。空载时,自动进入休眠状态,静态电流降至 100uA。
成本估算(白嫖到极致)
嘉立创有的
电子耗材
包括,电池管理芯片,音频功率放大芯片,喇叭等主要原件,以及电容电阻等周边原件。活动酱给了耗材券,不多不少刚刚好。且有个包邮券。所以耗材是免费且包邮的
3D外壳
因为有多个版本,所以打了两套外壳。活动酱给的券,免费的。外加5元运费,支付宝付款加收0.02手续费
面板
活动酱给了券,也是免费的,和耗材一起下单的,所以也是包邮的。另外面板负责人黄工非常的认真负责。由于第一版的面板喇叭口间隙太小可能导致生产融掉,黄工一直跟进检查,非常nice
PCB
这个是免费的,且包邮的
嘉立创没有的
RDA580,螺丝,螺母,天线,均采购自某宝,通过各种优惠叠加,入手香得很,羊毛都快给薅秃了,哈哈~~~~~~
原理解释
收音机播放的基本流程是 广播电台把音频信号进行调制 ————→ 通过天线发射 ————→ 在空间中传播 ————→被收音机接受 ————→ 被收音机解调后通过喇叭播放
调制
因为我们平时听到的声音是低频信号,但是低频信号传播距离很小。如果想把信号传播到而更远的地方,需要高信号,所以我们就把声音信号(大约几百Hz)叠加到高频信号(可能是几百MHz)上面。然后传输,调制方式有调幅(AM)和调频(FM)两种
调制方式 | 解释 |
---|---|
调频(FM) | 幅度不变,频率随着低频信号改变而改变 |
调幅(AM) | 频率不变,幅度随着低频信号改变而改变 |
图示解释
声音信号
高频信号(相当于一个载体)
调频(FM)
调幅(AM)
发射
传播
传播方式有天波(经电离层反射后返回地面的无线电波),地波(沿地球表面传播的无线电波),空间波(从发射点经空间直线传播到接收点的无线电波)等等
天波
地波
空间波
接受
解调
硬件解释
RDA5807M
RDA5807M系列是新一代单片机广播调频立体声调谐器,全集成合成器、中频选择性、RDS/RBDS和MPX解码器。调谐器采用CMOS工艺,支持多接口需要最少的外部元件。所有这些都使其非常适用于便携式设备。
RDA5807M系列拥有强大的低IF数字音频处理器这使其在不同接收条件下具有最佳音质。
该RDA5807M系列支持的频率范围是从50MHz到115MHZ。
- 1,3,8 引脚为GND,接地
- 7 脚是供电,根据芯片手册,供电电压位2.7V~3.3V,分别使用47uF的电解电容和100nF的贴片电容,分别滤除电源上的低频噪声和高频噪声
- 6 脚连接晶振,根据芯片手册,选择32.768kHz的电容,并在PCB设计的时候包地,并且设计禁止区域禁止铺铜,同时注意在晶振区域的所有层禁止通过电源线
- 4,5 引脚是RDA5807m的 I²C 通讯引脚,与核心板相连,这里要查询芯片手册,查看支持 I²C 的IO口。我们使用 I²C时,可以选择然间 I²C以及硬件 I²C。为了方便后期开发,我们选择带有I²C复用功能的引脚(PA0,PA1),这样就有了硬件 I²C的支持,如果我们使用软件 I²C,无非巴塘当作一个铺铜的IO口来使用罢了。
- 9,10 引脚是音频输出接口,各通过一个100nF的耦合电容与功放芯片PAM8403连接
音频功率放大电路
PAM8403是一款优秀的音频功率放大集成IC,。PAM8403 能够高于 85%的效率提供 3W 功率,同时具有系统关断及静音控制功能。特殊的线路架构增强了抗噪音能 ,减力少了射频干扰。
根据芯片手册(可以查看附件)电路之这样的
- 6 脚是电源引脚,供电采用5V,11 脚是地,使用 100nF 与 1uF 的电容分率滤除高频噪声与低频噪声
- 4 ,13 脚是功率电源,2 ,15 脚是功率地。考虑到功率不大,没有做与模拟信号做隔离,但是为了避免地的偏移,使用了一个22uF的电动,这颗电容要尽量的靠近功率电源和功率地(一旦电路中存在地偏移,那么原来的5V电压就可能不是5V了,而是变成了其他电压。因为5V电压是参考GND地线0V而言,如果地偏移使得GND地线由0V抬升到了1V,那么之前的5V(5V-0V=5V)电压就变成了的4V(5V-1V=4V))
- 8 脚是内部基准源,从 连接一个100nF旁路电容到 GND
- 7 ,10 脚分别是左右声道的输入,根据芯片手册串联10k~20k的电阻以及0.47uf的电容
- 1 ,3 , 16 , 14 脚分别为左声道的正负极,与右声道的正负极,直接连接喇叭(喇叭接口)
- 5 脚为静音控制输入,低电平有效,通过一个10k的上拉电阻将其拉到高电平,并且连接到单片机核心板,后期可以用程序来控制
- 12 脚是系统关断控制,低电平有效,同样通过一个10k的上拉电阻将其拉到高电平,并且连接到单片机核心板,后期可以用程序来控制
- 9 脚是空脚,悬空处理
电池管理
使用IP5306,来进行充放电管理,外围电路简单,控制方便
- 1 脚是电源输入连接typec输入
- 8 脚是输出,给整个电路供电
- 6 脚连接电池正极
- 2,3,4 脚连接电量指示led
软件解释
RDA5807支持I²C通讯,我们可以使用软件I²C和硬件I²C的方式与其通信,为了代码简洁(太懒,不想写复杂的代码处理时序信号,数据信号,错误检测,信号冲突。。。。)毕竟是建议收音机嘛,所以使用硬件I²C,通过查看芯片手册,我们使用PA0和PA1。
定义变量,和晶振
#ifndef __RDA5807_H
//正负反馈
#define ACK 0
#define NACK 1
//布尔变量
#define TRUE 1
#define FALSE 0
//读写标识
#define READ 1
#define WRITE 0
#define ADRW 0x20 //RDA5807P写寄存器地址
#define ADRR 0x21 //RDA5807P读寄存器地址
/*
* 本收音机用到的RDA5807M模块,使用的是32.168KHz晶振,如果使用其他晶振,根据频率使用不同的宏定义
*/
//#define _SHARE_CRYSTAL_24MHz_ //24MHz晶振
//#define _SHARE_CRYSTAL_12MHz_ //12MHz晶振
#define _SHARE_CRYSTAL_32KHz_ //32KHz晶振
//#define _FM_STEP_50K_ //50K步进
然后是配置I²C,不同的厂商配置方式不同,但是流程一样,都是开启时钟,配置SCL,SDA的引脚复用与功能,配置IC地址,使能应答。这个项目适用于 GD32 CW32 STM32 ,不同的主控的函数库,以及初始化方式不同,但是管理RDA5807的方式是一样的
设置频率
void RDA5807_SetFreq(short int curFreq)
{
unsigned short int curChan;
curChan = RDA5807_FreqToChan(curFreq);
//SetNoMute
RDA5807_REGW[0] |= 1 << 7;
RDA5807_REGW[2] = curChan >> 2;
RDA5807_REGW[3] = (((curChan & 0x0003) << 6) | 0x10) | (RDA5807_REGW[3] & 0x0f);
OperationRDAFM_2w(WRITE, &(RDA5807_REGW[0]), 4);
delay_ms(50);
}
读取频率
unsigned short int RDA5807_RegToInt(void)
{
unsigned char RDA5807_REGR[10] = {0x0};
unsigned short int temp;
OperationRDAFM_2w(READ, (unsigned char *)&RDA5807_REGR[0], 10);
temp = RDA5807_REGR[0];
temp = ((temp << 8) | RDA5807_REGR[1]);
temp = (temp & 0x03FF) * 10 + 8700;
return temp;
}
设置静音
void RDA5807_SetMute(int mute)
{
if(mute == TRUE){
RDA5807_REGW[0] &= ~(1<<6);//使能02H寄存器第14位为0,开启静音
}
else{
RDA5807_REGW[0] |= 1<<6;
}
OperationRDAFM_2w(WRITE, &(RDA5807_REGW[0]), 2);
delay_ms(50); //Dealy 50 ms
}
总结
最后,我想对大家说,,,,结束了,我也不知道该说什么,但是总结的仪式感还是要有的。再次致敬永不消逝的电波吧,This is BG5AWB
设计图

BOM


评论