首页 > 应用 > 单片机应用
[导读]
引言 早期的数字FM处理芯片TEA5767由Philips公司开发并被广泛地使用,但该芯片需要外加音频放大电路才能驱动耳机。鉴于此,国内锐迪科微电子公司独立开发了一颗具备高接收灵敏度的FM立体声数字芯片RD

引言

本文引用地址: http://www.21ic.com/app/mcu/201805/760855.htm

早期的数字FM处理芯片TEA5767由Philips公司开发并被广泛地使用,但该芯片需要外加音频放大电路才能驱动耳机。鉴于此,国内锐迪科微电子公司独立开发了一颗具备高接收灵敏度的FM立体声数字芯片RDA5807P,具有自动搜台、重低音、静音、休眠、直接驱动耳机等优异的性能。本文介绍用RDA5807P芯片设计和制作了一款带遥控功能的收音机

1 收音机总体设计方案

收音机的总体设计框图如图1所示。本收音机采用单节3.7 V、容量1500 mAh的锂电池作力电源,在使用寿命期内可以用手机充电器反复对它进行充电,使用非常方便。采用低功耗的AVR单片机ATmega8L作为微控制器,负责处理和协调各模块电路的工作,ATmega8L的工作电压为2.7~5.5 V,片内有512字节的EEPROM,不用专门外接EEPROM芯片就可以将掉电前接收电台的频道和音量信息保存起来,重新开机后又可以恢复原来的信息。调频收音机模块采用国产芯片RDA5807P加上少量的外围元件组成,由微控制器通过I2C总线接口对芯片内部寄存器进行写/读操作。通过键盘或红外遥控发射器可以进行自动搜台、手动选台、音量调节、静音操作。LCD用于显示当前收听电台的频率、音量等级等信息。音频功率放大器放大当前收听电台的音频信号,驱动扬声器发出声音。

2 系统硬件电路设计

2.1 电源管理模块电路设计

电源管理模块电路如图2所示。LM2054是一款单节锂电池恒流、恒压线性充电芯片,最大充电电流可达到800 mA。它只需外接极少的外部元件,预设4.2 V充电电压,精度达到±1%。充电时,若锂电池电压低于4.2V,充电指示灯D101亮,充电达到预设值4.2 V后指示灯D101熄灭。

2.2 微控制器及键盘、显示、红外遥控接收电路设计

微控制器及键盘、显示、红外遥控接收电路如图3所示。

键盘K1~K6用于选频、音量调节等。红外遥控接收头连接到单片机ATmega8L的PB0,用单片机的输入捕获功能进行解码。为了减少液晶显示器LCD1602A占用单片机过多的I/O口,数据接口只使用高4位,在写入命令或数据时,分两次写入,先写高4位,再写低4位。为了降低LCD的用电量,LCD的背光灯用单片机的PD3和PC1进行控制,当用户设置好想收听的电台,5 s后LCD背光灯自动熄灭。

2.3 调频收音模块电路设计

调频收音模块电路如图4所示。RDA5807P是国产的FM立体声收音机接收芯片,加上极少的外围元件且基本不需要校准,通过程序设定即可接收欧洲、美国和日本的调频波段。单片机通过I2C总线SCL和SDA将访问RDA5807P芯片所需的地址、命令、数据写入内部的寄存器中,也可以通过该总线读出芯片内部寄存器中的数据,取得接收频道的数据和音量值,供显示使用。RDA5807P的输出经磁珠F301、F302及电容器C30 3、C304抑制高频干扰后,可以直接驱动32 Ω的耳机发出声音,也可以接到下级音频功放进行放大,推动扬声器发出声音。

2.4 音频功率放大电路设计

音频功率放大电路如图5所示。PAM8403是一块D类音频功率放大器芯片,它具有谐波失真低、噪声串扰小、可直接驱动喇叭的特点。用它制作的音频功放,电路简单,工作可靠。在5 V电源和4 Ω负载条件下,能输出3 W的功率。效率可达90%以上,非常适合于用电池供电的便携式电子产品。电路中

引脚可通过单片机输出低电平控制其进行静音和关闭功放系统。

2.5 红外发射模块电路设计

红外遥控发射器电路如图6所示。BA5104是一块红外遥控编码芯片,内接有上拉电阻,无键按下时,电路中无电流流通,振荡电路不起

振,无遥控编码信号输出。当有某一键按下时,电路产生455 kHz的振荡信号,由BA5104内部电路进行12分频,获得38 kHz的载波信号。此时按键的编码信息和C1、C2引脚的状态信息对38 kHz载波进行编码调制,经15引脚串行输出,由三极管Q501、Q502构成的达灵顿驱动电路放大,经外发射管向空间发射,同时14引脚输出高电平,发射状态指示灯D501点亮。

3 系统软件程序设计

软件程序设计主要包括读写RDA5807P芯片相关的模块程序、频率及音量显示模块程序、按键检测与功能设定模块程序、遥控解码及功能设定模块程序等。本设计选用CodeVisionAVR作为开发软件,软件中集成有LCD1602、I2C总线驱动程序,不用再编写相应的底层函数,使用非常方便。故在此仅介绍RDA5807P芯片工作在RDA5807P模式及采用I2C总线接口进行搜台的程序设计和红外遥控解码程序的设计。

3.1 搜台程序设计

搜台程序可用硬件模式进行搜台,也可以采用软件模式进行搜台。本文着重介绍硬件模式搜台,软件模式搜台可参照硬件搜台模式进行编程。

I2C总线接口是由START、命令字节、数据字节及每个字节后的ACK及NACK比特、STOP组成。RDA58027P芯片写器件地址为0x20,读器件地址为0x21。RDA5807P芯片内部的I2C总线接口有4个写数据寄存器,其地址分别是0x02、0x03、0x04、0x05。2个读数据寄存器,其地址分别为0x0A、0x0B,每个数据寄存器又分为高字节和低字节。这些数据寄存器的地址是不可见的,不能通过单片机直接对指定地址的数据寄存器进行读/写操作。因此,单片机在发出读/写命令字节后,接下来必须对数据寄存器进行连续地读/写操作。其子程序如下:

硬件模式搜台程序设计主要是通过调用连续写和连续读操作子程序来对收音模块寄存器进行读/写,其程序流程图如图7所示。

根据该流程图编写的子程序如下:

3.2 红外遥控解码程序设计

由BA5104的编码格式可知;遥控码的一帧长度为12位,其中包括3位起始码、2位用户码、7位指令码。遥控码的每一帧时间间隔为4T,T=1.6879 ms为一位遥控码的周期。一帧完整的遥控码如图8所示。

遥控码中“1”用3T/4的高电平与T/4的低电平表示,“0”用T/4的高电平与3T/4的低电平表示,一位遥控码的波形如图9所示。

由图9可见,要用单片机来判断遥控发射器发出的是“0”还是“1”,关键是要判断接收脉冲下降沿至上升沿之间的时间。可以采用外部中断法,也可以采用输入捕获功能法,本文采用后一种方法。解码的思路是:初始化时,将ATmcga8L的ICP1引脚设置为输入状态,下降沿触发,当红外接收头接收到红外遥控信号时,产生下降沿,单片机自动将TCNT1寄存器中的值保存至ICR1寄存器中,在捕获中断服务程序中将ICR1中的值保存至T1中;然后将ICP1设置为上升沿触发,当再次产生捕获中断时,将ICR1中的值保存至T2中,将ICP1设置为下降沿触发,并将TCNT1置0。之后计算出T2-T1的时间并保存至事先开辟的数组中,要注意的是,T2-T1有可能出现负值,此时要将(T2-T1+0xffff)再保存,直到接收完12位数据。

保存在数组中的数据,当其值为3/4×1.687 9ms≈1266μs时,被认为接收到“1”,当其值为1/4×1.687 9 ms≈422 μs时,被认为接收到“0”。由于遥控发射器和单片机所使用的晶振频率与标称值会有一定的偏差,所以在程序中要留有一定的余量。

结语

经过多次比对测试,该收音机可以清晰、稳定地收听省府及本地所发射的调频电台信号。


换一批

延伸阅读

[单片机应用] avr单片机proteus仿真第四课:控制继电器

avr单片机proteus仿真第四课:控制继电器

继电器(Relay),作用是用弱电控制强电。比如,我们用avr单片控制一个220V电压的灯泡,这就必须用到继电器。本课用avr单片机来控制继电器的吸合与断开。Proteus仿真实验器件:1 atmega128一块2 button,按键一个3......

关键字:avr单片机 proteus仿真 控制继电器

[单片机应用] PIC32MX单片机外设库使用(Ⅰ)- 系统时钟及I/O口基本设置

PIC32MX单片机外设库使用(Ⅰ)- 系统时钟及I/O口基本设置

开发环境:MAPLAB X IDE v1.85编译器:MPLAB XC 321.使用说明:PIC32外设库提供用于设置和控制32位外设的函数和宏。希望使用外设库的应用程序只需在其源文件中包含一个头文件即可访问任意受支持的函数和宏。 备注:......

关键字:PIC32MX 单片机 外设库 系统时钟 基本设置

[单片机应用] 51单片机学习笔记:定时器产生PWM可调方波,控制led灯亮度

51单片机学习笔记:定时器产生PWM可调方波,控制led灯亮度

使用定时器T0产生PWM方波,用按键调整占空比,20级可调控制led灯的亮度等级.C代码#include"my51.h"#include"timer0.h"#definegrading20//亮度20......

关键字:51单片机 定时器 PWM 可调方波 led灯亮度

[单片机应用] 单片机 Modbus 多机通信程序设计

单片机 Modbus 多机通信程序设计

给从机下发不同的指令,从机去执行不同的操作,这个就是判断一下功能码即可,和我们前边学的实用串口例程是类似的。多机通信,无非就是添加了一个设备地址判断而已,难度也不大。我们找了一个 Modbus 调试精灵,通过......

关键字:单片机 Modbus 多机通信

[单片机应用] STC单片机掉电断电失电瞬间EEPROM数据保存处理办法

STC单片机掉电断电失电瞬间EEPROM数据保存处理办法

  由于客户在请人设计开发一设备,但是设备用户处总停电,造成设备及其周边耗材损耗严重,因此请我司在现有STC为主要芯片的基础上做掉电瞬间EEPROM里的20个参数保存,上电后通过读取EEPROM中的参数回到掉电的状态,......

关键字:STC单片机 掉电断电 失电瞬间 EEPROM 数据保存

[单片机应用] 51单片机(STC89C52RC)小综合实验

51单片机(STC89C52RC)小综合实验

  这个实验包含以下几个内容:51单片机最小系统单片机外接继电器整流桥的使用lm393电压比较器的使用  首先先上实验结果图:前面两个继电器,中间是最小系统,最下脚是整流器和lm393电压比较器.好,下面来说这个板子制......

关键字:51单片机 STC89C52RC 小综合实验

[单片机应用] 单片机与PC之间串行通信实验 仿真及程序

单片机与PC之间串行通信实验 仿真及程序

单片机与PC之间串行通信实验作业 包括DSN .C .HEX文件源程序:#include sbit button=P3^5; void init_tx() {TMOD=0x20; TH1=0xfd; TL1=0xfd; ......

关键字:单片机 PC 串行通信

[单片机新品] HOLTEK新推出HT66F0195 – 8K×16 A/D MCU with EEPROM

HOLTEK新推出HT66F0195 – 8K×16 A/D MCU with EEPROM

Holtek A/D Flash MCU with EEPROM系列新增HT66F0195,此颗MCU为HT66F0185的延伸产品,提供较丰富的系统资源,ROM size增为8K×16,RAM增为512 Bytes及ADC扩充为12 Ch......

关键字:HOLTEK MCU EEPROM

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客