欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数字FM电台设计开发 课程设计.doc

    • 资源ID:4143348       资源大小:3.51MB        全文页数:39页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字FM电台设计开发 课程设计.doc

    昆明理工大学津桥学院 ARM 实作课程报告 实作设计题目:数字 FM 电台设计开发 专业:电子信息科学与技术 年级:2011 级 姓名:学号:指导教师:王剑平 日期:2013.11.20 津桥学院津桥学院 ARMARM 实际应用系统开发选题报告实际应用系统开发选题报告 指导教师 王剑平 职称 副教授 学生年级 11级 学生专业 电 信 开发题目 数字FM电台设计开发 选题的依据、目的、要求、工作量大小:数字FM电台在日常生活中有广泛应用,本题目旨在帮助学生掌握数字电台的开发和应用。选题的主要内容和意义:设计数字FM电台,任务:(1)了解数字FM电台的基本工作原理。进行芯片选型、电路设计。(2)实现电台发射频率可调。要求:(1)实现68MHz107MHz范围可调。(2)实现音频信号发射。(3)实时显示发射频率。课程所需材料清单及材料费预算:(1)STM32开发板700元(2)数字FM电台模块50元;(3)液晶显示模块100元(4)其它辅料200 元 共计 1050元 拟采用方法及预期成果:采用STM32 主控芯片实现功能,液晶显示结果。采用无线耳机接受FM信号并进行测试。教师意见:同意选题 摘 要 数字 FM 电台在日常生活中有广泛应用,战舰 STM32 开发板上载了一颗 FM 收发芯片:RDA5820。该芯片不但可以用来做用来做 FM 接收,实现音机功能;还可以用来做 FM 发射,实现电台的功能。在接下来的实作中本文将就如何利用RDA5820 的发射功能在一定的频率上实现发射 SD 卡中的音乐和通过麦克风传音作出详细的阐述。【关键词】:FM RDA5820 发射电台 Abstract Digital FM radio is widely applied in daily life,the battleship STM32 development board to upload a FM transceiver chip:RDA5820 the chip not only can be used to do to do FM receiver,achieve sound machine function;FM emission can also be used to do,to realize the function of the radio in the next implementation in this article will discuss how to use the launch RDA5820 function implemented in certain frequency launch the music in SD card and pass through a microphone sound to make a detail 【Keyword】:FM RDA5820 Launch radio 目 录 津桥学院 ARM 实际应用系统开发选题报告.摘 要.Abstract.第 1 章 绪论.0 1.1 课题背景.0 1.2 主要芯片介绍.0 1.2.1 RDA5820 介绍.0 1.2.2 VS1053 简介.2 1.2.3 74HC4052 简介.4 1.2.4 SD 卡简介.5 1.2.5 TFTLCD 简介.8 第 2 章 硬件设计及模块功能实现.9 2.1 FM 电台设计框图.9 2.2 硬件设计.9 2.2.1 RDA5820 与 STM32 的连接电路.9 2.2.2 VS1053 解码芯片电路原理.10 2.2.3 SD 卡接口和 STM32 的连接.11 2.2.4 TFTLCD 显示模块.13 2.3 模块功能实现.14 2.3.1 SD 卡模块指令.14 2.3.2 TFTLCD 模块控制.15 2.3.3 VS1053 的 SPI 数据传送和 SCI 寄存器.17 第 3 章 软件设计.22 3.1 FM 电台软件设计流程图.22 3.2 软件设计结构框图.23 3.3 主函数介绍.23 3.3.1 系统初始化.23 3.3.2 FM 信号发射设置.24 3.3.3 TFTLCD 显示基本信息.24 3.3.4 音频源的选择.24 3.4 IIC 驱动 RDA5820 FM 收发芯片.24 3.5 SPI 驱动 VS1053 音频解码器.26 3.6 SD 卡读写驱动.27 3.7 74HC4052 音频选择.27 3.8 TFT-LCD 显示驱动.28 第 4 章 下载调试.30 4.1 调试环境.30 4.2 下载验证.30 结 论.33 主要工作 .33 心得体会 .33 参考文献.34 第 1 章 绪论 1.1 课题背景 自 20 世纪 90 年代以来,无线通信在全球范围内取得了突飞猛进的发展。无论是军用或民用通信,在各种频段上出现了许多新的系统和模式,满足了社会上各种各样的需求。发射机作为无线通信设备的重要组成部分,其发展极大的促进了无线通信技术的发展。无线电技术诞生以来,信息传输和信息处理始终是其主要任务。为了有效地进行传输,必须将携带信息的低频电信号调制到几十 MHz几百 MHz 以上的高频振荡信号上,再经天线发送出去。为减小各种因素引起的系统不稳定,增强系统的可靠性,系统必须包括自动增益控制、自动频率控制和自动相位控制在内的反馈控制电路。本文所讨论的就是一个利用锁相环组成的直接调频信号发射器。FM 发射电台具有使接收机接收灵敏度高,抗干扰力强、音质清晰等特点,但往往在制作、调试过程中易出现电路易停振、抗干扰力差、失真等故障。该FM 发射机电路工作频率稳定,抗干扰力强,制作调试简单。本设计是一个调频发射电台,调频就是频率调制,所谓频率调制就是原来等幅恒频的高频信号的频率,随着调制信号的幅度变化而变化,调频发射电台就是发送这些频率调制的无线电信号,经过解调变换成无限信号并发送信号的电子设备。本设计就是利用 STM32 开发板,设计一个数字 FM 发射电台系统。通过教师的悉心指导和自己的不断努力,最终完成了毕业设计的各项任务,成功设计一小功率调频发射电台,基本完成其各项功能。随着消费类电子的兴起和繁荣以及数字电子技术的发展,收音机逐渐数字化,集成化,而且成本越来越低,这使得在各种设备中嵌入收音机的现象更加普遍。广大从事消费类电子设计的厂商都不忘在诸如 MP3、智慧手机、便携式 Video播放器等产品中嵌入 FM 接收部分。这样电台的建设就更加有意义了。高频电子线路本是一门较为复杂的电路。其中更有精髓的知识值的我们去学习。同时随着计算机技术与高频电子技术的发展,模拟电子技术,得到广泛应用,在模拟电子电路中尤其得到广泛应用,成为现代电子电器必不可少的电子技术。在高频电子线路中,LC 振荡电路是无孔不入,无所不在。应用于发射机中,加上简单的电路及连线,就可以组成各种形式的、任意信号,广泛应用。小功率调频发射电台在使用中,控制方法科学、简单、明了,控制电路及连线简单、易行,工作稳定性好,从而得到广泛应用。在此,我们就调频发射电台的应用作较完整和系统的研究,促进小功率调频发射电台的正确使用。1.2 主要芯片介绍 1.2.1 RDA5820 介绍 RDA5820 是北京锐迪科推出的一款集成度非常高的立体声 FM 收发芯片。该芯片具有以下特点:FM 发射和接收一体 支持 65Mhz115Mhz 的全球 FM 接收频段,收发天线共用 支持 IIC/SPI 接口 支持 32.768K 晶振 数字音量及自动 AGC 控制 支持立体声/单声道切换,带软件静音功能 支持 I2S 接口(输入/输出)内置 LDO,使用电压范围宽(2.75.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_FUNC3:0位来设置,RDA5820 可以工作在 RX 模式、TX 模式、PA 模式和 DAC 模式等,本章我们只介绍 RX 模式和 TX 模式。图 1.1 RDA5820 引脚图 通过设置 CHIP_FUNC3:0=0 即可定义当前工作模式为 FM 接收模式。在该模式下,我们即可实现 FM 收音机功能。通过设置 CHIP_FUNC3:0=1 即可定义当前工作模式为 FM 发送模式。在该模式下,我们即可实现 FM 电台的功能。频点设置频点设置 软件可以通过配置 03H(寄存器地址 0X30)寄存器来选择FM 频道。搜台(Seek)的步进长度(100KHz、200KHz 或 50KHz)由 SPACE1:0 来选择,频道由 CHAN9:0来选择,频率范围(76MHz91MHz、87MHz108MHz 或 76MHz108MHz 或用户自定义 65MHz115MHz 范围内频段)由 BAND1:0来选择。自定义的频段由寄存器 53H(chan_bottom)和 54H(chan_top)来设置,单位为 100KHz,即定义 65MHz76MHz,可设置 BAND1:0=3(用户自定义频段),并且设置 chan_bottom=0 x028A,chan_top=0 x02f8。频点计算方法如下(该公式也适用于 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编码 高低音控制 带有 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 不停的输入音频数据,它就会自动帮我们解码了,然后从输出通道输出音乐,这时我们接上耳机就能听到所播放的歌曲了。图 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 V10.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 模拟信号 典型的内置“先断后合”遵循 JEDEC 标准 no.7A ESD 保护 人体模式(HBM)EIA/JESD22-A114E超过 2000 V 机械模式(MM)EIA/JESD22-A115-A超过 200 V 温度范围:-40+85 和-40+125 74HC4052 基本参数 电压 2.010.0V 传输延迟 4 ns5V 74HC4052 其他特性 导通阻抗 60 Ohms 逻辑电平 CMOS 功耗考量 低功耗或电池供电应用 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 所示:容量 命名 简称 02G Standard Capacity SD Memory Card SDSC 或 SD 2G32G High Capacity SD Memory Card SDHC 32G2T Extended Capacity SD Memory Card SDXC 表 1.2 SD 卡按容量分类 SD 卡和 SDHC 卡协议基本兼容,但是 SDXC 卡,同这两者区别就比较大了,本章我们讨论的主要是 SD/SDHC 卡(简称 SD 卡)。SD 卡一般支持 2 种操作模式:1,SD 卡模式(通过 SDIO 通信);2,SPI 模式;主机可以选择以上任意一种模式同 SD 卡通信,SD 卡模式允许 4 线的高速数据传输。SPI 模式允许简单的通过 SPI 接口来和 SD 卡通信,这种模式同 SD 卡模式相比就是丧失了速度。SD 卡的引脚排序如下图 1.4 所示:图 1.4 SD 卡引脚排序图 SD 卡引脚功能描述如表 1.3 所示:表 1.3SD 卡引脚功能表 SD 卡只能使用 3.3V 的 IO 电平,所以,MCU 一定要能够支持 3.3V 的 IO 端口输出。注意:在 SPI 模式下,CS/MOSI/MISO/CLK 都需要加 10100K 左右的上拉电阻。SD 卡有 5 个寄存器,如表 1.4 所示:名称 宽度 描述 CID 128 卡标识寄存器 RCA 16 相对卡地址(Relative card address)寄存器:本地系统中卡的地址,动态变化,在主机初始化的时候确定*SPI 模式中没有 CSD 128 卡描述数据:卡操作条件相关的信息数据 SCR 64 SD 配置寄存器:SD 卡特定信息数据 OCR 32 操作条件寄存器 表 1.4 SD 卡相关寄存器 SD 卡初始化过程 因为我们使用的是 SPI 模式,所以先得让 SD 卡进入 SPI 模式。方法如下:在 SD 卡收到复位命令(CMD0)时,CS 为有效电平(低电平)则 SPI 模式被启用。不过在发送 CMD0 之前,要发送74 个时钟,这是因为 SD 卡内部有个供电电压上升时间,大概为 64 个 CLK,剩下的 10 个 CLK 用于 SD 卡同步,之后才能开始 CMD0的操作,在卡初始化的时候,CLK 时钟最大不能超过 400Khz!。接着我们看看 SD 卡的初始化,SD 卡的典型初始化过程如下:1、初始化与 SD 卡连接的硬件条件(MCU 的 SPI 配置,IO 口配置);2、上电延时(74 个 CLK);3、复位卡(CMD0),进入 IDLE 状态;4、发送 CMD8,检查是否支持 2.0 协议;5、根据不同协议检查 SD 卡(命令包括:CMD55、CMD41、CMD58 和 CMD1 等);6、取消片选,发多 8 个 CLK,结束初始化 这样我们就完成了对 SD 卡的初始化,注意末尾发送的 8 个 CLK 是提供 SD 卡额外的时钟,完成某些操作。通过 SD 卡初始化,我们可以知道 SD 卡的类型(V1、V2、V2HC 或者 MMC),在完成了初始化之后,就可以开始读写数据了。SD 卡读取数据,这里通过 CMD17 来实现,具体过程如下:1、发送 CMD17;2、接收卡响应 R1;3、接收数据起始令牌 0XFE;4、接收数据;5、接收 2 个字节的 CRC,如果不使用 CRC,这两个字节在读取后可以丢掉。6、禁止片选之后,发多 8 个 CLK;以上就是一个典型的 SD 卡读数据过程,SD 卡的写于读数据差不多,写数据通过 CMD24 来实现,具体过程如下:1、发送 CMD24;2、接收卡响应 R1;3、发送写数据起始令牌 0XFE;4、发送数据;5、发送 2 字节的伪 CRC;6、禁止片选之后,发多 8 个 CLK;以上就是一个典型的写 SD 卡过程。1.2.5 TFTLCD 简介 TFT-LCD 即 薄 膜 晶 体 管 液 晶 显 示 器。其 英 文 全 称 为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。上一章介绍了 OLED 模块,本章,我们给大家介绍 ALIENTEK TFTLCD 模块,该模块有如下特点:1,2.4/2.8/3.53 种大小的屏幕可选。2,320240 的分辨率(3.5分辨率为:320*480)。3,16 位真彩显示。4,自带触摸屏,可以用来作为控制输入。本章,我们以 2.8 寸的 ALIENTEK TFTLCD 模块为例介绍,该模块支持 65K 色显示,显示分辨率为 320240,接口为 16 位的 80 并口,自带触摸屏。图 1.5 ALIENTEK 2.8 寸 TFTLCD 外观图 第2章 硬件设计及模块功能实现 2.1 FM 电台设计框图 本文设计 SD 卡音源和 MIC 音源两种音源输入,经音频选择,CPU 处理之后输出 2.2 硬件设计 实验设计为 FM 发射模式,设计发射频率为 92.2Mhz,开机显示发射频率,KEY_UP 键选择音源输入等信息。按一下 KEY_UP 键即进入 SD 卡音源输入模式,这时 KEY0:M+(下一曲)KEY2:M-(上一曲)起效,再按第二下进入 MIC 音源模式,这时 KEY_DOWN 键起效,可以用它来选择直接播放或者录音储存后播放模式。同时用 DS0 提示程序正在运行。所要用到的部分硬件资源如下:1)指示灯 DS0 2)KEY0、KEY1、KEY2 和 WK_UP 等四个按键 3)TFTLCD 模块 4)SD 卡 5)RDA5820 6)74HC4052 7)VS1053B 2.2.1 RDA5820 与 STM32 的连接电路 这里 RDA5820 用 IIC 总线,接在 STM32 的 PB10 和 PB11 两个脚上,下图中 OUTL和 OUTR 接在 RDA5820 的 LIN 和 RIN,OUTR 和 OUTL 是来自音频选择器(74HC4052)的输出端,作为 FM 发送时的音源输入。图 2.1 RDA5820 与 STM32 的连接图 2.2.2 VS1053 解码芯片电路原理 VS1053 通过 7 根线同 STM32 连接,他们是:VS_MISO、VS_MOSI、VS_SCK、VS_XCS、VS_XDCS、VS_DREQ 和 VS_RST。这 7 根线同 STM32 的连接关系如表 2.1所示:表 2.1 VS1053 各信号线与 STM32 连接关系 其中 VS_RST 是 VS1053 的复位信号线,低电平有效。VS_DREQ 是一个数据请求信号,用来通知主机,VS1053 可以接收数据与否。VS_MISO、VS_MOSI 和VS_SCK 则是 VS1053 的 SPI 接口他们在 VS_XCS 和 VS_XDCS 下面来执行不同的操作。从上表可以看出,VS1053 的 SPI 是接在 STM32 的 SPI1 上面的。1 1)复位复位 VS1053 VS1053 这里包括了硬复位和软复位,是为了让 VS1053 的状态回到原始状态,准备解码下一首歌曲。2 2)配置配置 VS1053VS1053 的相关寄存器的相关寄存器 这里我们配置的寄存器包括 VS1053 的模式寄存器(MODE)、时钟寄存器(CLOCKF)、音调寄存器(BASS)、音量寄存器(VOL)等。图 2.2 VS1053B 音频解码模块原理图 3 3)发送音频数据发送音频数据 当经过以上两步配置以后,我们剩下来要做的事情,就是往 VS1053 里面扔音频数据了,只要是 VS1053 支持的音频格式,直接往里面丢就可以了,VS1053会自动识别,并进行播放。不过发送数据要在 DREQ 信号的控制下有序的进行,不能乱发。这个规则很简单:只要 DREQ 变高,就向 VS1053 发送 32 个字节。然后继续等待 DREQ 变高,直到音频数据发送完。经过以上三步,我们就可以播放音乐了。2.2.3 SD 卡接口和 STM32 的连接 我们用跳线帽将 P10 的 SD_DT3、SD_CMD、SD_SCK、SD_DT0 分别同 P12 的SD_CS、SPI2_MOSI、SPI2_SCK、SPI2_MISO 连接起来,即实现 SD 卡的 SPI 模式连接。硬件连接示意图如图 2.4 所示:图 2.3 SD 卡接口与 STM32 连接原理图 图 2.4 SD 卡 SPI 方式硬件连接示意图 将图中所示的 4 处,用跳线帽短接,接口实现 SD 卡与STM32的 SPI连接。最后,你还得自备一个 SD 卡,将其插入板子下面的 SD 卡接口。2.2.4 TFTLCD 显示模块 模块原理图如图 2.5 所示:图 2.5 ALIENTEK 2.8 寸 TFTLCD 模块原理图 TFTLCD 模块采用 2*17 的 2.54 公排针与外部连接,接口定义如图 2.6所示:图 2.6 ALIENTEK 2.8 寸 TFTLCD 模块接口图 从图 2.6 可以看出,ALIENTEK TFTLCD 模块采用 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如果用 8 位数据线,就会比 16 位方式慢一倍以上,我们当然希望速度越快越好,所以我们选择16位的接口。图18.1.3还列出了触摸屏芯片的接口,关于触摸屏本章我们不多介绍,后面的章节会有详细的介绍。该模块的 80 并口有如下一些信号线:CS:TFTLCD 片选信号。WR:向 TFTLCD 写入数据。RD:从 TFTLCD 读取数据。D15:0:16 位双向数据线。RST:硬复位 TFTLCD。RS:命令/数据标志(0,读写命令;1,读写数据)。80 并口在上一节我们已经有详细的介绍了,这里我们就不再介绍,需要说明的是,TFTLCD 模块的 RST 信号线是直接接到 STM32 的复位脚上,并不由软件控制,这样可以省下来一个 IO 口。另外我们还需要一个背光控制线来控制TFTLCD 的背光。所以,我们总共需要的 IO 口数目为 21 个。这里还需要注意,我们标注的 DB1DB8,DB10DB17,是相对于 LCD 控制 IC 标注的,实际上大家可以把他们就等同于 D0D15,这样理解起来就比较简单一点。TFTLCD 显示需要的相关设置步骤如下:1)设置 STM32 与 TFTLCD 模块相连接的 IO。这一步,先将我们与 TFTLCD 模块相连的 IO 口进行初始化,以便驱动 LCD。这里我们用到的是 FSMC,FSMC 将在 18.1.2 节向大家详细介绍。2)初始化 TFTLCD 模块。其实这里就是上和上面 OLED 模块的初始化过程差不多。通过向 TFTLCD 写入一系列的设置,来启动 TFTLCD 的显示。为后续显示字符和数字做准备。3)通过函数将字符和数字显示到 TFTLCD 模块上。2.3 模块功能实现 2.3.1 SD 卡模块指令 SD 卡的命令格式,如表 2.2 所示:字节 1 字节 2-5 字节 6 7 6 5 0 31 0 7 1 0 0 1 command 命令参数 CRC 1 表 2.2 SD 卡命令格式 SD 卡的指令由 6 个字节组成,字节 1 的最高 2 位固定为 01,低 6 位为命令号(比如 CMD16,为 10000 即 16 进制的 0X10,完整的 CMD16,第一个字节为01010000,即 0X10+0X40)。字节 25 为命令参数,有些命令是没有参数的。字节 6 的高七位为 CRC 值,最低位恒定为 1。SD 卡的命令总共有 12 类,分为 Class0Class11,下面几个比较重要的命令,如表 2.3 所示:命令 参数 回应 描述 CMD0(0X00)NONE R1 复位SD卡 CMD8(0X08)VHS+Check pattern R7 发送接口状态命令 CMD9(0X09)NONE R1 读取卡特定数据寄存器 CMD10(0X0A)NONE R1 读取卡标志数据寄存器 CMD16(0X10)块大小 R1 设置块大小(字节数)CMD17(0X11)地址 R1 读取一个块的数据 CMD24(0X18)地址 R1 写入一个块的数据 CMD41(0X29)NONE R3 发送给主机容量支持信息和激活 卡初始化过程 CMD55(0X37)NONE R1 告诉SD卡,下一个是特定应用命令 CMD58(0X3A)NONE R3 读取OCR寄存器 表 2.3 SD 卡部分命令 上表中,大部分的命令是初始化的时候用的。表中的 R1、R3 和 R7 等是 SD卡的回应,SD 卡和单片机的通信采用发送应答机制,如图 2.7 所示:图 2.7 SD 卡命令传输过程 每发送一个命令,SD 卡都会给出一个应答,以告知主机该命令的执行情况,或者返回主机需要获取的数据。SPI 模式下,SD 卡针对不同的命令,应答可以使 R1R7,R1 的应答,各位描述如表 2.4 所示:R1 响应格式 位 7 6 5 4 3 2 1 0 含义 开 始 位 始终为0 参数 错误 地址 错误 擦除序列 错误 CRC错误 非法 命令 擦除 复位 闲置 状态 表 2.4 R1 响应各位描述 2.3.2 TFTLCD 模块控制 我们仅以 ILI9320 控制器为例进行介绍,其他的控制基本都类似。ILI9320 液晶控制器自带显存,其显存总大小为 172820(240*320*18/8),即 18 位模式(26 万色)下的显存量。模块的 16 位数据线与显寸的对应关系为565 方式,如图 2.8 所示:图 2.8 16 位数据与显存对应关系图 最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越大,表示该颜色越深。接下来,我们介绍一下 ILI9320 的几个重要命令,因为 ILI9320 的命令很多,我们这里不可能一一介绍,有兴趣的大家可以找到 ILI9320 的 datasheet看看。里面对这些命令有详细的介绍。这里我们要介绍的命令列表如表 2.5 所示:表 2.5 ILI9320 常用命令表 R0,这个命令,有两个功能,如果对它写,则最低位为 OSC,用于开启或关闭振荡器。而如果对它读操作,则返回的是控制器的型号。这个命令最大的功能就是通过读它可以得到控制器的型号,而我们代码在知道了控制器的型号之后,可以针对不同型号的控制器,进行不同的初始化。因为 93xx 系列的初始化,其实都比较类似,我们完全可以用一个代码兼容好几个控制器。R3,入口模式命令。我们重点关注的是I/D0、I/D1、AM这3个位,因为这3个位控制了屏幕的显示方向。AM:控制 GRAM 更新方向。当 AM=0 的时候,地址以行方向更新。当 AM=1 的时候,地址以列方向更新。I/D1:0:当更新了一个数据之后,根据这两个位的设置来控制地址计数器自动增加/减少 1,其关系如图 2.9 所示:图 2.9 GRAM 显示方向设置图 通过这几个位的设置,我们就可以控制屏幕的显示方向了,这种方法虽然简单,但是不是很通用,比如不同的液晶,可能这里差别就比较大,有的甚至无法通用!比如 9341 和 9320 就完全不通用。R7,显示控制命令。该命令 CL 位用来控制是 8 位彩色,还是 26 万色。为 0时 26 万色,为 1 时八位色。D1、D0、BASEE 这三个位用来控制显示开关与否的。当全部设置为1的时候开启显示,全0是关闭。我们一般通过该命令的设置来开启或关闭显示器,以降低功耗。R32,R33,设置 GRAM 的行地址和列地址。R32 用于设置列地址(X 坐标,0239),R33 用于设置行地址(Y 坐标,0319)。当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到改点,然后写入颜色值就可以了。R34,写数据到GRAM命令,当写入了这个命令之后,地址计数器才会自动的增加和减少。该命令是我们要介绍的这一组命令里面唯一的单个操作的命令,只需要写入该值就可以了,其他的都是要先写入命令编号,然后写入操作数。R80R83,行列 GRAM 地址位置设置。这几个命令用于设定你显示区域的大小,我们整个屏的大小为 240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果用先写坐标,后写数据这样的方式来实现,则速度大打折扣。此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据 R3 的设置自动增加/减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。2.3.3 VS1053 的 SPI 数据传送和 SCI 寄存器 VS1053VS1053 的的 SPISPI 数据传送数据传送 VS1053 的 SPI 支持两种模式:1,VS1002 有效模式(即新模式)。2,VS1001兼容模式。这里我们仅介绍VS1002有效模式(此模式也是VS1053的默认模式)。表 2.6 是在新模式下 VS1053 的 SPI 信号线功能描述:表 2.6 VS1053 新模式下 SPI 口信号线功能 VS1053 的 SPI 数据传送,分为 SDI 和 SCI,分别用来传输数据/命令。SDI和前面介绍的SPI协议一样的,不过VS1053的数据传输是通过DREQ控制的,主机在判断 DREQ 有效(高电平)之后,直接发送即可(一次可以发送 32 个字节)。这里我们重点介绍一下 SCI。SCI 串行总线命令接口包含了一个指令字节、一个地址字节和一个 16 位的数据字。读写操作可以读写单个寄存器,在 SCK 的上升沿读出数据位,所以主机必须在下降沿刷新数据。SCI 的字节数据总是高位在前低位在后的。第一个字节指令字节,只有 2 个指令,也就是读和写,读为 0X03,写为 0X02。一个典型的 SCI 读时序如图 2.10 所示:图 2.10 SCI 读时序 从图 2.10 可以看出,向 VS1053 读取数据,通过先拉低 XCS(VS_XCS),然后发送读指令(0X03),再发送一个地址,最后,我们在 SO 线(VS_MISO)上就可以读到输出的数据了。而同时 SI(VS_MOSI)上的数据将被忽略。看完了 SCI 的读,我们再来看看 SCI 的写时序,如图 2.11 所示:图 2.11 SCI 写时序 图 2.11中,其时序和图 2.10基本类似,都是先发指令,再发地址。不过写时序中,我们的指令是写指令(0X02),并且数据是通过 SI 写入 VS1053 的,SO则一直维持低电平。细心的读者可能发现了,在这两个图中,DREQ 信号上都产生了一个短暂的低脉冲,也就是执行时间。这个不难理解,我们在写入和读出VS1053 的数据之后,它需要一些时间来处理内部的事情,这段时间,是不允许外部打断的,所以,我们在 SCI 操作之前,最好判断一下 DREQ 是否为高电平,如果不是,则等待 DREQ 变为高。VS1053VS1053 的的 SCISCI 寄存器寄存器 VS1053 的所有 SCI 寄存器如表 2.7 所示:SCI寄存器 寄存器 类型 复位值 缩写 描述 0X00 RW 0X0800 MODE 模式控制 0X01 RW 0X000C STATUS VS0153状态 0X02 RW 0X0000 BASS 内置低音/高音控制 0X03 RW

    注意事项

    本文(数字FM电台设计开发 课程设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开