基于STM32的FM电台 下载本文

内容发布更新时间 : 2024/12/22 15:56:14星期一 下面是文章的全部内容请认真阅读。

数字FM电台设计开发

RDA5820是北京锐迪科推出的一款集成度非常高的立体声FM收发芯片。该芯片具有以下特点:

? FM发射和接收一体

? 支持65Mhz~115Mhz的全球FM接收频段,收发天线共用 ? 支持IIC/SPI接口 ? 支持32.768K晶振 ? 数字音量及自动AGC控制

? 支持立体声/单声道切换,带软件静音功能 支持I2S接口(输入/输出)

内置LDO,使用电压范围宽(2.7~5.5V) 高功率32欧负载音频输出、可以直接驱动耳机

? 集成度高、功耗低、尺寸小(4mm*4mm QFN封装)、应用简单

RDA5820应用范围很宽,在很多手机、MP3、MP4甚至平板电脑上都有应用。RDA5820的引脚图如图1.1所示:

?

RDA5820支持2种通信模式,SPI和IIC,在战舰STM32开发板上面,使用的是RDA5820的IIC模式。通过将图1.1 的MODE脚接GND,RDA5820即进入IIC模式,此时SCLK充当IIC的SCL,SDIO充当IIC的SDA。RDA5820的IIC地址为0X11(不包含最低位),对应读为0X23,写为0X20。

模式设置

RDA5820的模式设置通过40H(寄存器地址0X40)寄存器的CHIP_FUNC[3:0]位来设置,RDA5820可以工作在RX模式、TX模式、PA模式和DAC模式等,本章我们只介绍RX模式和TX模式。

图 1.1 RDA5820引脚图

2

数字FM电台设计开发

通过设置CHIP_FUNC[3:0]=0即可定义当前工作模式为FM接收模式。在该模式下,我们即可实现FM收音机功能。

通过设置CHIP_FUNC[3:0]=1即可定义当前工作模式为FM发送模式。在该模式下,我们即可实现FM电台的功能。

频点设置

软件可以通过配置03H(寄存器地址0X30)寄存器来选择FM频道。搜台(Seek)的步进长度(100KHz、200KHz或50KHz)由SPACE[1:0] 来选择,频道由CHAN[9:0]来选择,频率范围(76MHz~91MHz、87MHz~108MHz或76MHz~108MHz 或用户自定义65MHz~115MHz 范围内频段)由BAND[1:0]来选择。自定义的频段由寄存器53H(chan_bottom)和54H(chan_top)来设置,单位为100KHz,即定义65MHz~76MHz,可设置BAND[1:0]=3(用户自定义频段),并且设置chan_bottom=0x028A,chan_top=0x02f8。

频点计算方法如下(该公式也适用于FM频点的读取):

FMfreq=SPACE*CHAN+FMBTM

其中FMfreq即我们需要的FM频率(Mhz),SPACE为我们设置的步进长度(Khz),CHAN是我们设置的频点值,FMBTM则是我们在BAND里面所选频段的最低频率,当BAND=0的实惠,FMBTM=87Mhz;BAND=1的时候,FMBTM=76Mhz;BAND=2的时候,FMBTM=CHAN_BOTTOM*0.1Mhz。

例如,我们要设置FM频率为93.0Mhz,假设BAND=0,SPACE=100Khz。那么我们只需要设置CHAN=60即可。

频点设置部分,FM接收和FM发送是共用的,对两者都适用。

1.2.2 VS1053简介

VS1053是继VS1003后荷兰VLSI公司出品的又一款高性能解码芯片。该芯片可以实现对MP3/OGG/WMA/FLAC/WAV/AAC/MIDI等音频格式的解码,同时还可以支持ADPCM/OGG等格式的编码,性能相对以往的VS1003提升不少。VS1053拥有一个高性能的DSP处理器核VS_DSP,16K的指令RAM,0.5K的数据RAM,通过SPI控制,具有8个可用的通用IO口和一个串口,芯片内部还带了一个可变采样率的立体声ADC(支持咪头/咪头+线路/2线路)、一个高性能立体声DAC及音频耳机放大器。

VS1053的特性如下:

支持众多音频格式解码,包括OGG/MP3/WMA/WAV/FLAC(需要加载patch)/MIDI/AAC等。

对话筒输入或线路输入的音频信号进行OGG(需要加载patch)/IMA ADPCM编码

高低音控制

3

数字FM电台设计开发

带有EarSpeaker空间效果(用耳机虚拟现场空间效果) 单时钟操作12..13MHz 内部PLL锁相环时钟倍频器 低功耗

内含高性能片上立体声DAC,两声道间无相位差 过零交差侦测和平滑的音量调整 内含能驱动30 欧负载的耳机驱动器 模拟,数字,I/O 单独供电

为用户代码和数据准备的16KB片上RAM 可扩展外部DAC的I2S接口

用于控制和数据的串行接口(SPI) 可被用作微处理器的从机 特殊应用的SPI Flash引导 供调试用途的UART接口

新功能可以通过软件和8 GPIO 添加

VS1053相对于它的前辈VS1003,增加了编解码格式的支持(比如支持OGG/FLAC,还支持OGG编码,VS1003不支持)、增加了GPIO数量到8个(VS1003只有4个)、增加了内部指令RAM容量到16KiB(VS1003只有5.5KiB)、增加了I2S接口(VS1003没有)、支持EarSpeaker空间效果(VS1003不支持)等。同时VS1053的DAC相对于VS1003有不少提高,同样的歌曲,用VS1053播放,听起来比1003效果好很多。

VS1053的封装引脚和VS1003完全兼容,所以如果你以前用的是VS1003,则只需要把VS1003换成VS1053,就可以实现硬件更新,电路板完全不用修改。不过需要注意的是VS1003的CVDD是2.5V,而VS1053的CVDD是1.8V,所以你还需要把稳压芯片也变一下,其他都可以照旧了。

VS1053通过SPI接口来接受输入的音频数据流,它可以是一个系统的从机,也可以作为独立的主机。这里我们只把它当成从机使用。我们通过SPI口向VS1053不停的输入音频数据,它就会自动帮我们解码了,然后从输出通道输出音乐,这时我们接上耳机就能听到所播放的歌曲了。

4

数字FM电台设计开发

图 1.2 VS1053封装图

1.2.3 74HC4052 简介

74HC4052是一款高速CMOS器件,74HC4052引脚兼容HEF4052B。74HC4052遵循JEDEC标准no.7A。

74HC4052是双路4通道模拟多路选择器/多路分配器,带有公共选择逻辑。每个多路选择器包含4个独立输入/输出端(nY0至nY3)和1个公共输入/输出端(nZ)。公用通道选择逻辑包含2个数字选择端(S0和S1)和1个低有效使能端(E)。

E为低时,4个开关的其中之一将被S0和S1选中(低阻态)。E为高时,所有开关都进入高阻态,直接无视S0和S1。

VCC和GND是数字控制端(S0和S1,E)的供电引脚,74HC4052的VCC至

GND范围为2.0 V~10.0 V。74HC4052的模拟输入/输出端(nY0至nY3,nZ)在上限VCC和下限VEE之间摆动,VCC-VEE应当不超过10.0 V。

作为一个数字多路选择器/多路分配器,VEE将被连接到GND上(一般是接地)

宽模拟输入电压范围:-5 V~+5 V 低导通阻抗

VCC - VEE = 4.5 V时,80 欧姆(典型) VCC - VEE = 6.0 V时,70 欧姆(典型) VCC - VEE = 9.0 V时,60 欧姆(典型) 逻辑电平转换:沟通5 V逻辑和+- 5 V模拟信号 典型的内置“先断后合”

5

数字FM电台设计开发

遵循JEDEC标准no.7A ESD保护

人体模式(HBM) EIA/JESD22-A114E超过2000 V

机械模式(MM) EIA/JESD22-A115-A超过200 V

温度范围:-40~+85 ℃和-40~+125 ℃

74HC4052 基本参数 电压 2.0~10.0V 传输延迟 导通阻抗 逻辑电平 功耗考量

4 ns@5V 60 Ohms CMOS 低功耗或电池

供电应用

74HC4052 其他特性

74HC4052 封装与引脚

SO16, SSOP16, DIP16, TSSOP16

表1.1 74HC4052 基本参数

1.2.4 SD卡简介

SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。按容量分类,可以将SD卡分为3类:SD卡、SDHC卡、SDXC卡。如下表1.2所示:

容量 0~2G 2G~32G 32G~2T

命名

Standard Capacity SD Memory Card High Capacity SD Memory Card

简称 SDSC或SD SDHC

Extended Capacity SD Memory Card SDXC

表1.2 SD卡按容量分类

SD卡和SDHC卡协议基本兼容,但是SDXC卡,同这两者区别就比较大了,本章我们讨论的主要是SD/SDHC卡(简称SD卡)。

SD卡一般支持2种操作模式:

6