基于单片机和TEA5767HN的FM收音机系统的设计
摘要:为了在电子产品中嵌入立体声FM数字收音机功能。采用单片机AT89S52和TEA5767HN为硬件核心,运用I2C总线通信方式进行软件设计,给出了实现手动搜台、自动搜台等功能的FM数字调频收音机的设计方法。该方法采用PT2257对音频进行处理,以实现立体声输出,因而具有轻巧、方便、频带范围宽、低功耗、高灵敏度等特点,并可以嵌入MP3、手机、便携式播放器等小型电子产品中。
关键词:单片机;AT89S52;TEA5767HN;PT2257
0 引言
在当前数字信息技术和网络技术高速发展的PC时代。嵌入式技术越来越同人们的生活紧密相关。其中掌上嵌入式电子产品更是给人们的生活带来了很大方便和很多快乐。尽管生活方式不断发生变化,但无线电仍然很流行。因此,本文针对TEA5767HN数字收音机芯片的控制机理,阐述了通过该芯片和C51单片机来将FM数字收音机嵌入智能电子产品的设计方法。
1 系统整体设计思路
本立体声FM数字收音机的设计目标是通过单片机AT89S52来控制FM接收芯片TEA5767HN,从而实现可自动搜索并存储10多个电台节目(也可手动搜索并存储电台节目)。所收听电台的频率和台号及时钟可在显示模块中的LCD上显示,音量则可通过音量加、减按键自主控制,并能存储关机时设定的数据以及闹钟功能。具体系统设计框图如图1所示。
本系统主要由单片机AT89S52控制模块、TEA5767HN收音模块、音量控制模块、ROM存储模块、显示模块、按键模块和电源模块七部分组成。本系统硬件设计的关键则在于FM接收、音频处理等模拟部分;软件设计的关键在于控制模块与收音模块之间的通信。
从图1中可以看出,控制模块仅仅通过I2C总线与收音模块连接并控制收音机工作。本设计使用单片机P3口的两个I/O脚来模拟I2C总线的SDA和SCL时序并与TEA5767HN通信;TEA5767HN输出的左右声道音频信号可通过音量控制模块进行前级放大及音量控制,然后输入到TDA7057进行后级功率放大,最后输出到扬声器。单片机可通过I2C总线进行音量调节;ROM存储模块主要用于存储电台数据、音量数据和时钟数据,为存储和读取数据带来方便。系统可通过按键进行操作,通过MCU检测按键信号并经单片机实现手动搜台、自动搜台、音量控制、时钟调整等功能,各项操作提示和操作结果均可通过LCD显示出来。稳压电源模块产生的5 V和3.3 V电压可分别为各个模块器件供电。
2 硬件系统电路设计
由于本系统硬件设计的关键在于FM接收、音频处理等模拟电路部分,其余电路均为常规电路,因而其硬件系统的设计着重分析收音模块、音量控制模块这两部分电路。
2.1 收音模块电路分析
FM接收电路是系统硬件电路中的核心部分之一,本硬件系统采用单芯片TEA5767HN作为FM接收电路的核心元器件。Philips公司提供的TE-A5767HN芯片为低电压、低功耗和低价位的全集成单芯片立体声无线电产品,它只需要极少的外围元件,并且基本上不需要外部对高频信号的手动调准。另外,其频带范围较宽,可以完全免费调到欧洲、美国和日本的调频波段。
图2所示为TEA5767HN的FM应用电路连接图。图中,VCC接稳压电源模块中的3.3 V电源,并通过磁珠FB及电容器进行干扰抑制。22μF的电容选用钽电容,两个0.1μF的电容可以选用介电常数高、高频性能好的陶瓷电容,以保证整个收音模块的电源系统更加稳定。R_OUT、L_OUT为FM的音频信号输出。DATA和CLK为I2C通信的数据线和时钟线,系统的MCU通过I2C接口来对FM Module进行控制。芯片上的W/READ引脚在本系统中没有使用,故空接。CLK、DATA用于与系统的MCU实现串行通信。BUS-ENABLE为总线使能信号,当BUS-ENABLE为低时,芯片上的FM-Mod-ule引脚进入省电模式,所以采取空接方式。RF为FM收音模块的天线接口,即射频信号输入脚。
2.2 音量控制模块
音量控制电路使用的单芯片PT2257是由CMOS技术制造而成的2声道音量控制IC,可采用I2C控制,具有0~79 dB的衰减范围,而且噪音低、立体声分离度高、使用外围元件少,是较为流行的AV视频产品音量控制元件。
音量控制电路采用I2C控制方式,其音量大小由MCU控制,因而省去了电位器,避免了电位器产生的杂音干扰音频信号。但其不足之处是该IC过载能力较差,不能带动功率稍大的喇叭,所以,本设计把音量控制电路放置在前置信号输入端,然后再接入TDA7057进行后级放大。
3 系统软件设计
基于AT89S52单片机控制平台的TEA5767HN数字收音机的软件设计主要包括六个部分:I2C总线通信协议、TEA5767HN收音模块控制、PT22 57音量控制、时钟闹钟模块的中断服务、AT24C02存储模块控制、键盘扫描及状态显示。本文的软件系统设计应当着重分析TEA5767HN收音模块控制、PT2257音量模块这两部分的工作原理以及编程思路。
本系统程序使用C语言编写,主程序由启动、初始化、键盘扫描、按键处理、液晶显示等5大模块组成。其中系统初始化包括AT89S52的初始化、TEA5767HN的初始化和LCD的初始化;按键处理通过调用函数的方法实现按键复用功能,可实现手动搜台、自动搜台、音量控制、时间调整、闹钟调整等操作;显示模块可显示系统的各个工作状态。
3.1 TEA5767HN模块的软件设计
3.1.1 TEA5767HN读写寄存器
TEA5767HN有5个写寄存器和5个读寄存器,每个寄存器可存储8位数据。
写寄存器可以存储控制信息,包括软件静音、模式选择、PLL可编程计数器的设置、向上向下搜索模式选择、静左/右音频、可编程端口的设置、待机节能模式、欧洲/日本频段选择、晶振频率选择、ADC门限设置、去加重设置等。
读寄存器可检测接收电路状态,反馈控制信息,包括搜索到有效电台标志位、搜索到有效电台后PLL可编程计数器的状态、4 b ADC的输出、以及7 b IF中频输出等。
3.1.2 TEA5767HN的数据传输
TEA5767HN的数据顺序是:地址、字节1、字节2、字节3、字节4、字节5,数据传送必须按照这个顺序。每个字节将控制不同的功能。
每个字节的第七位为最高位,并作为字节的第一位传送。在时钟的下降沿,数据变为有效信号。在每一字节后面加停止信号可以缩短传送时间。在整个传输完成之前,发送一个停止条件,其保留的字节将包含以前的信息。如果一个字节没有传送完,新的字节将被使用,但新的调谐周期不会开始。
3.1.3 TEA5767HN的读写流程
根据TEA5767HN的读写协议,调用公用I2C驱动即可编写出TEA5767HN的读写函数:radio_write(),radio_read()。它们可为手动搜台、自动搜台等FM功能调用,以实现程序的模块化,优化程序结构。TEA5767HN的读写流程如图3所示。其中I2C_Start(FM)和I2C_Stop(FM)分别表示启动和停止I2C总线,Check_(FM)为应答信号。
系统 设计 收音机 FM 单片机 TEA5767HN 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)