主页 > 曾夫人论坛四肖 >
基于ATmega64的U盘MP3设计方案
发布日期:2020-02-14 02:01   来源:未知   阅读:

  随着电子技术的发展,MP3播放器向着大容量,小型化发展。但播放器与存储器一体化的设计使得MP3难以扩充容量以容纳更多的歌曲。将播放器与存储器分离是MP3目前发展的另一方向。

  本设计主要完成对存储在U盘中的音乐及文本等信息的读取操作,能够完成U盘内MP3音乐数据的播放及标签信息的显示,实现播放器与存储器分离,并在此基础上完成电子书,贪吃蛇游戏等功能。

  本设计MCU选择ATMEL公司的ATmega64作为主控芯片。ATmega64是高性能、低功耗的8位AVR微处理器,具有先进的RISC结构。64K字节系统内可编程Flash,2K字节EEPROM,4K字节片内SRAM,64个引脚,53个可编程I/O口,具有可工作于主机/从机模式的SPI串行接口音频解码芯片选择芬兰VLSI公司生产的VS1003。VS1003是一款具有MP3/WMA/MIDI音频解码及ADPCM编码功能的芯片,它包含一个高性能,低功耗的DSP内核VS_DSP,工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。一个串行的控制和数据接口,4个通用I/O口,一个UART,一个高质量可变采样率的ADC和立体声DAC,一个耳机放大器和地线缓冲器。

  USB通信芯片选择CH375,CH375是一个USB总线的通用接口芯片,支持USB-host主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及终端输出,可以方便地挂接到单片机等控制其的系统总线上。内置控制传输的协议处理器,简化常用的控制传输。支持低功耗模式。

  VS1003使用同步串行总线SPI通信,ATmega64内部集成有SPI总线控制器,故将SCLK,MOSO,MOSI直接与MCU的SPI控制引脚相连接即可。另外将XCS,XRES,DREQ,XDCS分别于PB4~PB7相连接,即可完成对解码芯片的控制。

  本设计中,CH375工作在HOST模式下,八位双向数据总线相连接,实现数据与命令的并行传输。A0,RD,WR,INT,CS分别于PC3~PC7相连接。这种连接可以很方便的将CH375挂接到各种MCU系统总线的硬件连接

  彩屏与MCU实现并口数据命令传输,将其16位数据命令口与MCU的PA0~PA7以及PE0~PE7相连接,另外将彩屏的片选CS,数据命令选通RS,写选通WR,读选通RD,及复位RST分别于MCU的PG0~PG4相连接。

  系统启动后,在ATmega64的控制下,首先将数据从U盘中取出,如果是音频数据,则直接送入VS1003进行解码,VS1003将接收到的数据解码后转换为模拟音频后,通过功率放大器输出。若收到的是文本数据,则进行字符格式转换,并在液晶屏上显示出来。

  系统软件的设计主要分为VS1003的驱动程序,CH375的驱动程序,彩屏的驱动程序以及整体的整合。(分别为:375.c TFT_ili9320.c mp3_play.c )

  一个FAT文件系统包括四个不同的部分。保留扇区,FAT区,根目录区,数据区。其中保留区中的第一个分区必须是BPB,也称作“引导扇区”,因为它含有对文件系统进行识别的关键信息,计算机将以此信息识别存储器文件格式,因此十分重要。

  FAT区包含有两份文件分配表,这是出于系统冗余考虑,尽管它很少使用,即使是磁盘修复工具也很少使用它。它是分区信息的映射表,指示簇是如何存储的。根目录区是在根目录中存储文件和目录信息的目录表。在FAT32下它可以存在分区中的任何位置,但是在早期的版本中它永远紧随FAT区域之后。数据区是实际的文件和目录数据存储的区域,它占据了分区的绝大部分。

  由于CH375内置控制传输的协议处理器,因此读取U盘可以通过控制CH375的寄存器来进行U盘的读取。CH375以C语言子程序库提供了USB存储设备的文件级接口,这些应用层接口API包含了常用的文件级操作,可以移植并嵌入到常用的单片机程序中。CH375的U盘文件级子程序库具有以下特性:支持常用文件系统,支持多级子目录,可以支持小写字母或者长文件名,支持文件打开、新建、删除、读写以及搜索等。CH375的文件级子程序库需要大约600Byte的随机存储器RAM作为缓冲区。文件级子程序库的所有API在调用后都有操作状态返回,但不一定有应答数据。主要子程序如下:

  VS1003的寄存器用下列顺序读出,如图二。首先将XCS片选拉低以选择芯片,再通过SI线位的地址。在地址被VS1003芯片读入后,SI上的数据将被忽略。相应地址的16位数据将从SO线移出。当数据全被移出后XCS需拉高。

  VS1003的寄存器须按以下的顺序写入,如图三。首先将XCS片选拉低,再通过SI线位的数据字。当最后一位被移入且最后的时钟已发送,必须将XCS拉高以完成写操作。

  当执行音乐播放程序时,ATmega64芯片首先从U盘中预取标签信息,经过分析,由Unicode到GBK编码的转换,再取字模,最终在LCD上显示;之后开始取音乐文件的数据,送到VS1003芯片,VS1003开始解码并在音频接口发出音频信号。当按下暂停键时,暂停取数据,上一曲、下一曲时跳出取数据循环。

  1.音乐标签的软件设计。本系统可以读取的音乐的标签有ID3V1、ID3V2,当要区分这两个标签时可以用程序读取音乐文件的开头和结尾,利用其标志符“ID3”、“TAG”来区分其具有哪一个标签。但是标签中的文字编码也包括UNICODE、GBK,具体的区分也要查找相关的标志符。

  2.文档阅读的软件设计。GBK的编码中会带有ASC码,而GBK码占两个字节,ASC码占一个字节,如果在取文件过程中恰好取到GBK码的每二个字节,那么以后的内容在LCD上的显示将全部为乱码,特别是在向上翻页的时候(文档内容在LCD上的显示还要判断回车以及其它字符,这样就会造成每一页具体读了多少字节,显示了多少字节都不一样)。最终解决办法是用一个数组记录每一次翻页共显示了多少字节(不是读取了多少字节)。

  3.在TFT上显示字符和汉字。对于TFT液晶,没有具体的字模存储在控制芯片中,只能是整体系统的存储。而且汉字的Unicode和GBK编码并不相同。笔者把具体的字库存储在了要读取的优盘根目录下(对应的字模文件是ST16.BIN KT16.BIN)。对于Unicode到GBK的转换,笔者把转换文件也存储在了优盘的根目录下面(对应文件是UNITOGBK.SYS)。

  经测试,本设计能够读取并播放U盘中MP3文件,音质清晰悦耳,无延时和跳帧现象。能够读取U盘中txt文档以实现电子书功能。内置的贪吃蛇游戏也可以顺利实现。由于本设计采用播放器与存储器分离的方式,因此存储空间不受限制,自由度较大,这比一般MP3播放器更具有优势。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  AVR芯片大多数都有看门狗功能,看门狗电路实际上是一个定时电路,该定时器使用内部独立的1M的RC振荡器,根据设置看门狗的定时时间,当程序运行超过规定的时间后,如果没有及时复位看门狗(俗称喂狗),看门狗定时器就会发生溢出,这个溢出将导致程序复位,从而保证在程序跑飞的情况下,不会长时间没有响应。WIN AVR内部带有看门狗函数,需要包含头文件:#include avr/wdt.h新的AVR系列(例如,ATMEGA324P等)使用增强功能的看门狗(Enhanced Watchdog Timer),与原来的看门狗相比较,除了有相同复位的功能以外,还增加了中断的功能设计。使用看门狗的中断功能,可以实现从Power Down

  1 引言根据运动心率可准确划分运动强度等级,通过单片机对监测心率按照划分等级的智能判断,可以实时监测训练强度,进行显示报警,从而掌握科学的训练强度。通过对便携式心率监测系统的特点研究分析,针对如何提高系统实时性、可靠性和抗干扰能力的问题,我们要求对该系统微控制处理模块(MCU)进行了基于Atmega64L的设计。2 单片机Atmega64LAtmega64L是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进指令集以及单时钟周期指令执行时间,数据吞吐率高达1MIPS/MHz,有6种睡眠模式,功耗较低,适合于便携式产品应用。3 Atmega64L外围电路设计Atmega64L的外围电路主要包括:电源模块、键盘控制

  数模转换电路,该器件是二进制快速乘法式8位D/A芯片。交流量数模转换电路如图2所示。为了保证实现数字到正弦交流模拟信号的转变,图中VD是预置直流偏压,大小等于50Hz正弦波发生器输出信号的幅值。根据图示电路,可得到如下关系:从式(5)可见,当电阻R1、R4、R5、R、Rf为定值时,输出电流的大小与RL无关,仅由数字量控制。当A1、A2、…A8全为“1”时,调整电路参数,使IL=0.5A,当A1、A2…A8全为“0”时,使IL=0A.0~0.5A的电流变化范围完全满足我国目前生产的漏电保护器的测试要求。为了提高测量速度,在保证模拟漏电电流准确度的条件下,将输出电流分为50mA、100mA、200mA和500mA四档,各档的选择由ATmega32切换

  稳定时间设置到最短,两个芯片同时上电也不会出现反编程现象。1. avr并口isp线. avr jatg线. mcu接线路avr简易jatg制作(atmega16)2008-4-26 23:40:00这个工具的适用于每一个支持jtag ice的软件,他工作完美的结合avr studio和linux工具。你可以编程avr芯片使用jtag工具支持atmel 处理器的清单如下:at90can128atmega128atmega16atmega162atmega169atmega32atmega323atmega64使用ponyprog编程,正确的配置熔丝位和锁定位如下:Name Value DetailsOCDEN 1 不使用,不编程

  转换速率:每秒钟采样的次数。常用单位: SPS(每秒次) KSPS(每秒千次) MSPS(每秒百万次)。越快越好。转换精度:转换结果的有效位数(二进制)。单位:位AVR的片上ADC:最高转换速率:15kSPS最高转换精度:10位AVR片上ADC的特点:10 位 精度0.5 LSB 的非线 μs 的转换时间最高分辨率时采样率高达15 kSPS8 路复用的单端输入通道7 路差分输入通道2 路可选增益为10x 与200x 的差分输入通道可选的左对齐ADC 读数0 - VCC 的 ADC 输入电压范围可选的2.56V ADC 参考电压连续转换或单次转换模式通过自动触发中断源启动ADC 转换ADC

  示波器是用来测量交流电或脉冲电流波的形状的仪器,由电子管放大器、扫描振荡器、阴极射线管等组成。除观测电流的波形外,还可以测定频率、电压强度等。凡可以变为电效应的周期性物理过程都可以用示波器进行观测。本文教大家制作存储示波器数据U盘的方法。制作存储示波器数据U盘步骤选择4G以下容量的U盘一个,最好是正品大品牌的,我自己选择的是金士顿2G的U盘。然后将其插入电脑。如下图所示:然后我们在电脑下载一个类型转换软件,我选择使用的是傲梅分区软件。类似的软件有很多,直接百度搜索后自己下载安装完毕即可。如下图所示:当我们打开这个软件的时候,通过红框2看到我们U盘的类型是NTFS的,这样的U盘按经验来说在存储示波器的数据时就会出现问题,我们要将

  非常时期 少出门多学习: 多部TI实用课程奉上, 身体不能在路上就让灵魂在路上

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  日本电产(Nidec)的电动汽车用驱动马达系统(E-Axle)系列之200kW与50kW两款产品问世

  Analog与Jungo合作开发座舱监控技术 采用基于ToF和IR的摄像头

  是德携手NOEIC和CompoundTek,共同建立PIC自动化测试新标准

  DEYISUPPORT:【全新FAQ来袭】今夏且听风吟,你不能错过的精华!

  有奖直播报名:赛灵思和安富利专注嵌入式视觉应用,助力人工智能和汽车辅助驾驶!

  51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程