600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 使用TEA5767和stm32制作一台数字FM收音机

使用TEA5767和stm32制作一台数字FM收音机

时间:2019-07-17 03:38:44

相关推荐

使用TEA5767和stm32制作一台数字FM收音机

本节我们来使用stm32控制一款集成收音机芯片TEA5767,来制作一台FM收音机。

TEA5767是一款低功耗立体声收音IC,接收频率76MHz~108MHz(适应日本/美国/欧洲各FM频段选择)并可以使用软件进行静音和消除噪音。

主要电性能指标:工作电压:2.5V~5.0V,工作电流10mA,立体声分离度30dB,信噪比60dB,输出信号电平75mV。支持I2C总线通信、3-wire总线。

1)硬件设计

TEA5767芯片外围需要搭配较多的电阻、电容、电感、晶振等器件,而且高频电路的PCB设计是有一定难度的,稍不注意可能会造成很大干扰。

实际设计电路时,我们可以使用如下这种TEA5767的模块,它已经把芯片外围一些必要的器件集成到一个小电路板上了,这样可以省去这部分难度较大的PCB设计,只用关注单片机和模块的接口。

相关的电路图如下所示:

供电直接使用和单片机一致的3.3V,建议串联一个磁珠,以滤除数字电路对收音机芯片的干扰(这个图里没有画);

天线处需要连接较长的导线,否则信号质量会变差(一般在70~80cm,也不严格要求);

模块的输出是L和R两个喇叭,具有左右声道分别输出;由于芯片输出的音量有限,只能接到耳机输出,如果有兴趣,可以在后端增加功率放大器,连接喇叭;

第3引脚接地,选择使用I2C总线进行通信;

模块与stm32的接口只需要连接I2C总线。

2)软件设计

TEA5767有5个字节的控制寄存器,通过向寄存器写入控制字,它才能正常工作。这5个控制字中,只有前两个字节中的PLL字段与设置FM频率有关,所以,我们在写入控制字时,可以只修改前两个字节。

依据以下公式计算,将频率转换为PLL:

HLSI=1时:(frequencry+225000)*4/32768(HZ)

HLSI=0时:(frequencry-225000)*4/32768(HZ)

HLSI是第3个控制字中的bit4,用于选择高端/低端本振输入,如果我们固定后面的控制字不改变,则换算PLL值的公式也是固定的。

假如固定选择低端本振输入,我们要把频率设置为107.8MHz,则如下计算:

PLL = (107.8*10^6-225000)*4/32768 = 13132 = 0x334B

这样,我们需要写入TEA5767的5个字节为:0x33、0x4B、0xC0、0x17、0x00。具体的解释见下面几个表:

第一字节:

第二字节:

第三字节:

第四字节:

第五字节::

使用I2C写入时,TEA5767的地址为0xC0,读出时地址为0xC1;

这里我们只需要用到写入,先写地址,再依次写入5个字节的控制字即可,写寄存器write_TEA5767函数实现的代码如下所示:

其中调用的I2C操作的相关函数都是使用的软件模拟I2C,实现如下:

Main函数中,我们使用串口来接收数据,调用write_TEA5767函数设置频率:

我们需要修改的只有前两个字节,后面的可以不改变:

程序实现的是,用户通过串口按此格式发送:FM107.58,可以设置收音频率为107.58MHz。

这样,我们的收音机的基本功能就做好了。

3)更加完善的设计

要想更加完善地设计出一个收音机,我们还需要考虑增加很多功能。

这里开源一个小白白已经实现的收音机的全套资料,包括原理图、PCB以及软件实现代码,可以关注文末的公众号获取。

原理图如下所示,实现了:锂电池的充电、供电,显示频段、电量,按键调节频率,存储默认频道,音频放大输出等功能。

PCB图如下:

资料目录:

欢迎关注我的微信公众号“小白白学电子”,可留言“资料”获取所有电路、源码和参考资料:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。