基于STM32的MP3 下载本文

贺州学院本科毕业论文(设计)

图中的功能选择部分可以有两种选择模式:(一)把MUTE接地,则会使

芯片一直处于工作状态。(二)把MUTE和FAULT相接则可以实现短路检测,在没有出现输出短路的时候,芯片正常工作,在出现输出短路的时候,FAULT输出高电平,通过MUTE控制芯片停止输出,这样可以有效地保护芯片。 2.4.8 TFTLCD2.8寸驱动电路设计

TFTLCD驱动电路如图2.10所示,该部分电路也比较简单。

图2.10 TFTLCD电路图控制设计

2.4.9 电源电路设计

图2.14 输入电源电路

这个电路采用两块REG1117芯片给系统提供电源,一块提供3.3V的数字电源和模拟电源,它们通过电感连接,以减少数字电源对模拟电源的干扰。另外一块提供2.5V的电压,给VS1003的DSP提供核心电压。两者的输入电压均来自功率电源的5V输出。

12

贺州学院本科毕业论文(设计)

2.5 硬件PCB设计

PCB硬件设计的时候主要注意一下若干点就好了:

(1)对于电流比较大的走线,必须使用较宽的线宽

(2)对于功率放大,最好以单点接地的方式连接。这样可以有效的降低

各部分信号的相互干扰,以达到最好的放大效果。

(3)对于走线,不可以走锐角的线,直角也最好少走,最佳的是走弧线。因为锐角和直角的走线会在尖端产生EMI,尤其在高频信号较明显。

(4)对于去耦电容,离芯片越近越好。

(5)对于信号线,不要长距离的平行走线,可以有效的防止信号耦合 在本章节中,首先是对整个系统的设计方案进行总体规划,包含媒介存

2.6 本章小结

储的选择,主控芯片的选型,硬件器件的选取以及互交方式的确定,经过总体方案的研究眼总结,得出初步的技术方案,具体确定了硬件器件的型号选取。接着详细介绍了各个模块之间的使用已经设计,并说明了一些PCB布线的规则,接下来就是进入到软件的设计了,在下一章节中,将对软件进行详细的说明。

3 系统软件的设计

3.1 设计思路

经过上一章介绍,多功能MP3的硬件系统已经完成了基本设计,但是一个完整的系统必须要有硬件和软件的相互配合才能正常运行,如果没有软件没那么硬件形同虚设。软件是硬件的灵魂,硬件的实现价值体现在软件的控制下。所以软件和硬件二者缺一不可,缺一就等于失去了整个设计系统的可行性。

多功能MP3的软件设计涉及很多编程,这是一个很复杂的软件设计系统,不可能保证一次就把所有的代码调试完成达到预期效果。这里我对应对各个模块的功能一一的验证过后,在通过最终的大整合在一起,从而实现最终想要的功能。 3.2 软件模块化设计

从本设计来说,可以把软件分为两部分来区分:第一个是与硬件有直接联系的底层驱动软件子系统。第二个是与硬件无关的应用型软件系统的设计。这样可以把两个软件系统的设计分成许多个模块。

下面就一一介绍各个模块的区分以及编程思路。 3.2.1 LCD模块驱动程序设计

13

贺州学院本科毕业论文(设计)

系统采用的LCD驱动芯片型号为ILI9320,它是单芯片的Soc驱动的晶体管显示器,320x240的分辨率,包括720路源极驱动与及320路栅极驱动,自带显存。

颜色的深度是根据数据的大小来决定的。在此仅讲解部分重要指令,指令00h,当读操作的时候,读取控制器的型号;当写操作的时候,打开/关闭OSC振荡器。当写操作设置OSC为高电平时,开启内部振荡器;为0的时候,停止振荡器。至少要等待10ms的时钟稳定之后,才可以继续其他的功能设置。指令03h,进入模式命令。在此仅注意AM、I/D1、I/D0这3个位。具体的设置与及效果见图21。

图21 液晶显示方向控制

3.2.2 触摸屏模块驱动程序设计

本设计的输入系统选用的是四线电阻式触摸屏加ADS7846实现的,整个设计系统的控制都是通过触摸屏控制的,所以,触摸屏控制算法的好坏对系统有着举足轻重的作用,这里有必要认识触摸屏和ADS7846的工作原理。

触摸屏工作原理:触摸摸是放置在显示器的最外边的,当知道触点在显示器上的触发坐标时,则可依据触发位置相应坐标点显示内容或图符获知触摸者的意图。电阻式触摸屏在嵌入式系统中采用得较多。电阻屏的组成,如图3.2,最底层是玻璃或有机玻璃构成的基层。当触摸到屏幕时,两导电层在触摸点处相碰。

触摸屏输入系统意图如图3.3所示

14

贺州学院本科毕业论文(设计)

图3.2 触摸屏触摸示意图

图3.3 触摸屏输入系统的组成

3.2.3 SD卡模块驱动程序设计

SD卡通信协议有两种:SPI模式和SD模式。SD卡读写的标准方式是SD模式,不过选用SD模式时需要选择自带带有SD控制器接口的MCU,或者必须加入支持SD卡的读写的控制单元。由于SD卡控制器接口在STM32F103RBT6没有自带的,不过STM32F103RBT6却拥有强大的SPI接口,故本设计选用SPI模式读取SD卡。CS低电平有效则进入SPI模式,反之工作在SD总线模式。

SD卡初始化流程图如图3.7 所示。

15

贺州学院本科毕业论文(设计)

开机系统各硬件模块初始化FAT文件系统初始化N成功?Y查找系统文件N成功?Y装载启动界面等待输入Y执行相应功能功能完成

图3.7 SD卡初始化 3.2.4 VS1003模块驱动程序设计

VS1003通讯模式为SPI,本设计采用的是SPI1,这里主要对VS1003如何初始化操作进行介绍。VS1003 与MCU相联系的主要的7根数据线为:: XRST、XDCS、XCS、DREQ、SCK、SO、SI。

XRST:VS1003复位线,低电平有效。 XDCS:数据片选信号,低电平有效。 XCS:命令片选信号,低电平有效。 DREQ:数据请求,输入总线。 SCK、SI、SO:SPI接口线。 VS1003模块初始化步骤: ? 硬复位,XRST =0;

? 延时,XDCS、XCS、XRST置1; ? 等待DREQ为高;

? 软件复位:SPI_MODE=0X0804; ? 等待DREQ为高(软件复位结束);

? 设置VS1003的时钟:SCI_CLOCKF=0X9800,3倍频;

? 设置VS1003的采样率:SPI_AUDATA=0XBB81,采样率48K,立体声; ? 设置重音:SPI_BASS=0X0055; ? 设置音量:SCI_VOL=0X2020;

? 向VS1003发送四个字节无效数据,启动SPI发送;

16