单片机AT89C52的FM收音机设计.docx
- 文档编号:24662597
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:39
- 大小:602.88KB
单片机AT89C52的FM收音机设计.docx
《单片机AT89C52的FM收音机设计.docx》由会员分享,可在线阅读,更多相关《单片机AT89C52的FM收音机设计.docx(39页珍藏版)》请在冰豆网上搜索。
单片机AT89C52的FM收音机设计
单片机AT89C52的FM收音机设计
1.引言
虽然电视、手机、互联网等媒体和各种便携式娱乐设备已经普及到千家万户,但传统的收音机在丰富的娱乐媒介中任然占有重要地位。
随着信息化的发展,收音机逐渐数字化,集成化,而且成本越来越低,这使得在各种设备中嵌入收音机的现象更加普遍。
TEA5767系列单片数字收音机就被广泛地应用在数字音响,便携式CD、VCD、DVD、MP3、MP4、手机、PDA等数字消费电子系统中。
但是该数字收音机芯片与传统的超外差式收音机的调谐原理不太相同,传统的超外差式收音机的固定频率为10.7MZ,而TEA5767系列数字收音机的固定中频为225KHz,由于固定中频不同,锁相环系统的软件控制就有很大的差别,这就给广大芯片应用设计者带来一定的难度。
本设计采用宏晶科技生产的8位微控制器STC89
C52来控制数字收音机模块TEA5767,构成一个FM数字收音机系统。
该收音机的设计具有电路简单易懂、体积小,易调谐的特点,同时该收音机系统还具有抗干扰能力强,频带宽、音质好的优点。
2.方案设计与论证
本设计是一个数字调频收音机,调频就是频率调制,所谓频率调制就是原来等幅恒频的高频信号的频率,随着调制信号(音频信号)的幅度变化而变化,调频收音机(FMRadio)就是接收这些频率调制的无线电信号,经过解调还原成原信号的电子设备。
FMRadio电路一般主要由接收天线、振荡器、混频器、AGC(自动增益控制)、中频放大器、中频限幅器、中频滤波器、鉴频器、低频静噪电路、搜索调谐电路、信号检测电路及频率锁定环路、音频输出电路等组成。
本设计就是用单片机控制集成了上述所有FM功能的专用芯片,设计一个数字FM收音机系统。
本设计采用模块化设计,整个系统由控制模块、FM音频模块、电源模块和功放模块组成,系统的整体方案框图如下图
(1):
图
(1)系统方案设计框图
(1)控制模块。
控制模块是本设计的核心,通过外围电路和向TEA5767芯片写入相关程序,控制部分要实现能够改变收音机的接收频率、工作模式、音量等各项参数的功能。
因此必须需要一个微控制器才能达到要求,本设计采用STC89C52单片机作为系统的控制核心。
(2)无线FM模块。
无线模块选择是本设计的关键,有两种方案可以选择:
方案
(1)采用无线芯片TEA5767,自己设计外围电路。
方案
(2)采用相关厂家生产的TEA5767模块来实现。
很显然,第一种方案需要自己设计电路、画PCB和焊接,而TEA5767采用的是FVQ
FN40(耐热的薄型四脚扁平封装)封装,在短时间内和有限的条件下实现硬件功能的难度相当大。
所以本设计采用第二种方案——使用现成的模块。
(3)电源模块
单片机的供电电压要求是3.8V~5.5V,TEA5767的供电电压要求是2.5V~5.0V。
由于收音机模块的应用范围很广,比如手机中就采用3.7V锂电池供电,DVD、电视等系统中则是对220V市电进行变压后供电。
本设计中采用7805稳压芯片对系统进行供电,由于这个电源可以很容易得到,设计中不再单独给出。
(4)功放模块
TEA5767音频输出具有立体声方式,也可以采用单声道输出,具体方式可以通过编程设定,为简化设计,本设计采用单声道输出,功放芯片使用TDA2030,供电采用+5V供电,设计中不给出电源设计。
设计既要实现数字FM收音机的基本功能,又要尽量做到简单廉价,综合考虑各项因素,以上设计方案是可行的。
3.单片机简介
本设计采用宏晶科技生产的STC89C52芯片,芯片采用40脚双列直插式封装,32个I/O口,芯片工作电压3.8~5.5V,工作温度0-70°C(商业级),工作频率可高达30MHz,芯片的外形和引脚见下图
(2)
图
(2)STC89C52外形和引脚图
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程Flash。
P0~P3口结构,第一功能、第二功能请参考数据手册(STC89C52数据手册下载地址www.mcu-)。
4.FM芯片简介
4.1TEA5767芯片简介
FM模块的控核心芯片采用飞利浦公司的TEA5767数字立体声FM芯片,该芯片把所有的FM功能都集成到一个不足6*6平方米的用HVQFN40封装的小方块中。
芯片工作电压2.5V~5.0V,典型值是3V;RF接收频率范围是76~108MHz,(最强信号+噪声)/噪声的值在60dB左右,失真度在0.4%左右;双声道音频输出的电压在60~90mV左右,带宽为22.5KHz。
芯片的引脚分布及其引脚定义分别见图(3)和表
(1),图(4)是芯片的应用结构框图。
图(3)TEA5767芯片引脚分布
管脚
定义
管脚
定义
1
空脚
21
空脚
2
锁相环输出
22
左声道输出
3
本振
23
右声道输出
4
本振
24
软静音时间常数
5
本振电源
25
检波输出
6
数字地
26
基准
7
数字电源
27
中频中心频率调整时间常数
8
数据线
28
中频限幅器退藕1
9
时钟线
29
中频限幅退藕2
10
空脚
30
空脚
11
三线读写控制
31
空脚
12
总线模式选择
32
增益控制
13
总线使能端
33
模拟地
14
软口1
34
模拟电源
15
软口2
35
射频输入1
16
晶振
36
高频地
17
晶振
37
射频输入2
18
相位滤波
38
高放AGC时间常数
19
导频低通滤波
39
锁相环开关输出
20
空脚
40
空脚
表
(1)TEA5767管脚定义
图(4)TEA5767应用结构框图
参见内部结构框图,TEA5767主要具有以下特征:
(1)集成高灵敏度的低噪声放大器。
(2)FM到中频的混频器可以工作在87.5-108MHz的欧美频段或76-91MHz的日本频段,并且可预设接收日本108MHz的电视音频信号的能力。
(3)射频具有自动增益控制功能,并且LC调谐振荡器只需固定片装电感。
(4)内置的FM解调器可以省去外部鉴频器,并且FM的中频选择性可以在芯片内部完成。
(5)可以采用32.768KHz或13MHz的振荡器产生参考时钟或可以直接输入6.5MHz的时钟信号。
(6)集成锁相环调谐系统
(7)可以通过I2C或三线串行总线来获取中频计数器值或接收的高频信号电平,以便进行自动调谐功能,本设计采用第一种方式,详细的I2C通信介绍请见第5节。
(8)SNC(立体声噪音抑制)、HCC(高频衰减控制)、静音处理等可以通过串行数字接口进行控制。
(9)免费调谐立体声解码器。
(10)自动调节温度范围(在VCCA,VCC(VCO)和VCCD=5V)。
4.2TEA5767寄存器描述
吃透芯片的寄存器是编好程序的关键。
单片机和TEA5767进行通信有两种方式,一种是I2C模式,一种是三线模式,本设计采用I2C模式,I2C通信协议操作参见第5章。
TEA5767的寄存器一共有五位,数据通信的读写顺序为:
地址——数据字节1——数据字节2——数据字节3——数据字节4——数据字节5,下面就对芯片的寄存器进行详细说明。
(1)芯片寄存器地址的格式如下:
R/W=0为读模式;R/W=1为写模式
(2)写模式下5个数据字节的格式及各位的描述。
数据字节1
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
MUTE
SM
PLL13
PLL12
PLL11
PLL10
PLL9
PLL8
表
(2)数据字节1字节格式
b)位描述
位号
符号
描述
7
MUTE
如果MUTE=1,则左右声道被静音;MUTE=0,左右声道正常工作。
6
SM
如果SM=1,则处于搜索模式;SM=0,不处于搜索模式。
5到0
PLL[13:
8]
设定用于搜索和预设的可编程频率合成器。
表(3)数据字节1位描述
数据字节2
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
PLL7
PLL6
PLL5
PLL4
PLL3
PLL2
PLL1
PLL0
表(4)数据字节2字节格式
b)位描述
位号
符号
描述
7到0
PLL[7:
0]
设定用于搜索和预设的可编程频率合成器。
表(5)数据字节2位描述
数据字节3
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
SUD
SSL1
SSL0
HLSI
MS
ML
MR
SWP1
表(6)数据字节3字节格式
b)位描述
位号
符号
描述
7
SUD
SUD=1,增加频率搜索;SUD=0,减小频率搜索。
6和5
SLL[1:
0]
搜索停止标准:
见下表1。
4
HLSI
高/低充电电流切换:
HLSI=1,高充电电流;HLSI=0,低充电电流。
3
MS
立体声/单声道:
MS=1,单声道;MS=0,立体声。
2
ML
左声道静音:
ML=1,左声道静音并置立体声,ML=0,左声道正常。
1
MR
右声道静音:
MR=1,右声道静音并置立体声,MR=0,右声道正常。
0
SWP1
软件可编程端口1:
SWP1=1,端口1高电平;SWP1=0,端口1低电平。
表(7)数据字节3位描述
注:
搜索停止标准设定
SSL1
SSL2
搜索停止标准
0
0
在搜索模式下禁止
0
1
低:
ADC输出大小为5
1
0
中:
ADC输出大小为7
1
1
高:
ADC输出大小为10
表(8)搜索停止标准
数据字节4
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
SWP2
STBY
BL
XTAL
SMUTE
HCC
SNC
SI
表(9)数据字节4字节格式
b)位描述
位号
符号
描述
7
SWP2
软件可编程端口2:
SWP2=1,端口2高电平;
SWP2=0,端口2低电平。
6
STBY
等待:
STBY=1,处于待机模式,
STBY=0,退出待机模式。
5
BL
波段制式:
BL=1,日本调频制式;
BL=0,美国/欧洲调频制式。
4
XTAL
如果XTAL=1,那么fxtal=32.768KHz;
如果XTAL=0,那么fxtal=13MHz。
3
SMUTE
软件静音:
SMUTE=1,软静音打开;
SMUTE=0,软静音关闭。
2
HCC
白电平切割:
HCC=1,高电平切割打开,
HCC=0,高电平切割关闭。
1
SNC
立体声噪声去除:
如果SNC=1,立体声消噪除打开,
如果SNC=0,立体声消噪除关闭。
0
SI
搜索标志位:
SI=1,SWPORT1输出准备好信号;
SI=0,SWPORT1作为软件可编程端口1用。
表(10)数据字节4位描述
数据字节5
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
PLLREF
DTC
------
------
------
------
------
------
表(11)数据字节5字节格式
b)位描述
位号
符号
描述
7
PLLREF
若PLLREF=1,6.5MHz的锁相环参考频率启用;
若PLLREF=0,6.5MHz的锁相环参考频率关闭。
6
DTC
若DTC=1,去加重时间常数为75us;
若DTC=0,去加重时间常数为50us。
5到0
------
未用,状态不必考虑。
表(12)数据字节5位描述
(3)写模式下5个数据字节的格式及各位的描述。
数据字节1
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
RF
BLF
PLL13
PLL12
PLL11
PLL10
PLL9
PLL8
表(13)数据字节1字节格式
b)位描述
位号
符号
描述
7
RF
准备好标志:
RF=1,有一个频道被搜到或者一个制式已经符合;RF=0,
没有频道被搜到。
6
BLF
波段制式:
BLF=1,一个制式已经符合;
BLF=0,没有制式已经符合。
5到0
PLL[13:
8]
用于搜索和预设后的可编程频率合成器设定结果。
表(14)数据字节1位描述
数据字节2
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
PLL7
PLL6
PLL5
PLL4
PLL3
PLL2
PLL1
PLL0
表(15)数据字节2字节格式
b)位描述
位号
符号
描述
7到0
PLL[7:
0]
设定用于搜索和预设后的可编程频率合成器设定结果。
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
STEREO
IF6
IF5
IF4
IF3
IF2
IF1
IF0
表(16)数据字节2位描述
数据字节3
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
STEREO
IF6
IF5
IF4
IF3
IF2
IF1
IF0
表(17)数据字节3字节格式
b)位描述
位号
符号
描述
7
STEREO
立体声标志位:
STEREO=1,立体声接收;STEREO=0,单声道接
收。
6到0
IF[6:
0]
中频计数器结果。
表(18)数据字节3位描述
数据字节4
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
LEV3
LEV2
LEV1
LEV0
CI3
CI2
CI1
0
表(19)数据字节4字节格式
b)位描述
位号
符号
描述
7到4
LEV[3:
0]
ADC的输出。
3到1
CI[3:
1]
芯片验证号。
0
------
该位内部置0。
表(20)数据字节4位描述
数据字节5
a)字节格式
位7(高位)
位6
位5
位4
位3
位2
位1
位0(低位)
0
0
0
0
0
0
0
0
表(21)数据字节5字节格式
b)位描述
位号
符号
描述
7到0
------
预留为扩展用,由内部置0。
表(22)数据字节5位描述
在采用I2C协议进行通信时,输入电压小于0.2VCCD就被认为是高电平,大于0.45VCCD就被认为是高电平,高电平和低电平的持续时间必须要大于1us,在编程模拟I2C协议时要特别注意到这个时间。
4.3FM模块介绍
在方案设计时就已经确定FM部分采用按照datasheet推荐的应用设计电路图生产的模块。
本设计FM模块采用金秋实生产的B20C封装的完整版收音机模块,外接引脚只有10个,开发者只需要关注引脚而不需要关注模块的内部结构,开发方便简单。
下图(5)是模块的引脚封装和引脚功能简介(引出引脚的功能和芯片引脚的定义完全相同)。
图(5)TEA5767模块引脚图
引脚号
符号
简介
1
ANT
天线接口
2
MPX
FM解调器MPX信号输出(置空)
3
R
右声道输出
4
L
左声道输出
5
GND
地
6
VCC
电源正极
7
WR
读/写模式(仅三线控制有效)
8
MODE
总线模式选择(1为三线模式;0为I2C模式)
9
CLK
总线时钟线输入
10
DATA
总线数据线输入/输出
表(23)TEA5767引脚定义表
5.I2C总线简介
I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。
它只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL。
典型的I2C结构如图(6)所示
图(6)典型的I2C总线结构
I2C总线需通过上拉电阻接正电源,当总线空闲时,两根线均为高电平。
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。
每个接到I2C总线上的器件都有唯一的地址。
主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。
由总线上接收数据的器件则为接收器。
在多主机系统中,可能同时有几个主机企图启动总线传送数据。
为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。
I2C总线的数据字节必需保证是8位长度。
数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
图(7)是I2C总线字节传送与应答时序
图(7)I2C总线字节传送与应答时序
由于某种原因从机不对主机寻址信号应答时(如从机正在进行实时性的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线的数据传送。
如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的“非应答”通知主机,主机则应发出终止信号以结束数据的继续传送。
当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号。
这个信号是由对从机的“非应答”来实现的。
然后,从机释放SDA线,以允许主机产生终止信号。
I2C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。
在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/T),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。
每次数据传送总是由主机产生的终止信号结束。
但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。
在总线的一次数据传送过程中,可以有以下三种组合方式:
(1)主机向从机发送数据,数据传送方向在整个传送过程中不变:
注:
有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。
A表示应答,A非表示非应答(高电平)。
S表示起始信号,P表示终止信号(下同)。
(2)主机在第一个字节后,立即从从机读数据
(3)在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。
I2C总线的寻址在协议有明确的规定:
采用7位的寻址字节(寻址字节是起始信号后的第一个字节),寻址字节的位定义如下
其中D7~D1位组成从机的地址。
D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。
主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/T位将自己确定为发送器或接收器。
从机的地址由固定部分和可编程部分组成。
在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目。
由于本设计采用的STC89C52单片机没有I2C总线接口,所以要通过模拟来实现,利用软件实现I2C总线的数据传送,即软件与硬件结合的信号模拟。
为了保证数据传送的可靠性,标准的I2C总线数据传送有严格的时序要求。
I2C总线的起始信号、终止信号、发送“0”及发送“1”的模拟时序如下图(8)所示[1]。
模拟I2C总线数据传输的程序见………
图(8)I2C总线数据传送模拟时序
6.硬件电路设计
按照设计方案,系统硬件电路由电源部分、微控制器部分和FM模块部分组成,下面的介绍将分块对电路进行设计,其中电源部分由于
6.1电路原理图
(1)微控制器部分
微控制器部分以STC89C52为核心,包括复位电路,晶振电路和按键控制电路,特别注意的是电源输入要加上去藕电容,电路原理图见下图(9)
图(9)微控制器模块原理图
(2)TEA5767模块部分原理图
如图(10)所示,R2、R3是I2C数据线和时钟线的上拉电阻,C5是天线的匹配电容,天线用30cm左右的铜导线代替。
E1是外接天线,C6、C7和R4、R5构成音频输出网络,8脚接地,选择为工作模式。
模块10脚接单片机P2.0,模块9脚接芯片P2.1
图(10)TEA5767模块部分原理图
(3)功放模块原理图
功放部分采用TDA2030单声道A类音频放大芯片,电路原理图如下所示:
图(11)功放电路原理图
(3)电路总原理图
图(12)电路总原理图
6.2电路装配注意事项
设计就采用普通的万用版进行装配,在装配时要注意以下几点:
(1)晶振部分要紧靠着芯片引脚,导线要尽量粗,在焊接时采用用焊锡铺粗来处理
(2)电源输入一定要添加去耦电容
(3)TEA5767模块和单片机引脚的距离尽量靠近,SDA线和CLK线业尽量铺粗。
(4)天线安装尽量靠近芯片引脚,一定要加上匹配电容。
(5)模拟线和数据线尽量要分开,设计采用元器件面走数字线,焊接面走模拟线的方法处理。
7.软件设计
软件采用可移植性强的C语言程序来设计,主要由两大部分组成,一个是模拟I2C总线程序,一个是对芯片寄存器进行操作的主程序。
对芯片寄存器进行操作的关键是设置接收频率,接收频率设置参数可以通过以下式子得到:
FRF:
接收频率(kHz)
FIR:
中频(TEA5767为225kHz)
FREFS:
参考频率(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 AT89C52 FM 收音机 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)