描述
<p>注:*为必填项。</p>
<p>【请在报名阶段填写 ↓】
* 简要介绍作品:
基于STC8A单片机有限的资源实现了TF卡FAT16文件系统文件的实时读取并播放。
使用IO模拟的I2S协议播放44.1K 双声道 16bit音频文件做到了流畅播放,不断流。
1、实现了自读的FAT16文件系统
2、音频DA选用了高品质的ES9023P。
3、实现了IO模拟I2S接口。</p>
<p>【请在竞赛阶段填写 ↓】
* 一、作品详情;
本制作的PCB设计100%使用立创EDA编辑器,软件使用Keil3编译。
在百度上可以搜到用STM32F7驱动ES9023P的例子,我在本制作中使用8位8051内核的单片机(最低主频27MHz)上实现相同的工作。
在使用内嵌汇编代码等方法的多次优化后实现了I2S协议播放44.1K 双声道 16bit音频文件做到了流畅播放,不断流。几乎榨干了STC8A8K单片机的性能。
音频DA的选择:
制作WAV音频文件的播放器,在音频的DA上先后尝试过 8位的PWM,10位的PWM,TDA1543、STA339BW、ES9023P,多长听音后选定为ES9023P。
该音频DA具备优异的性能(The <em>ES9023</em> is a 24-bit stereo audio DAC with an integrated 2Vrms op-amp driver,Zero detect output),自带负压发送器可以对地直接输出音频(省去的音频输出耦合电容,耳机听音时效果非常好)。
音量控制的选择:
尝试过用I2C控制专业的音量控制芯片 PT2259,PWM 驱动发光LED照射线性光耦、单片机实时处理数据实现,效果均不能令人满意。
最终使用了双联的音频电位器(放弃了音量的自动控制)实现音量的手动调节,找到了最高的性价比。
文件系统的选择:
在尝试FATFS不能满足速度要求后,自己安装标准的FAT16文件系统实现了只读的驱动(放弃了长文件名支持的功能)。
整个制作从准备、原件选型、PCB多次改版、优化性能到最终定稿历时了大半年的时间。
最终ROM、RAM 占用非常的低(STC8A8K 有 64KB的ROM,8K的RAM),后续有时间可以考虑增加功能。
Program Size: data=49.6 xdata=2638 const=2496 code=6544</p>
<p>注:在调试时使用了128<em>32的OLED显示,在最终的版本中硬件已删除OLED,软件上仍保留了OLED的驱动部分。
</em> 二、描述作品所面临的挑战及所解决的问题;
使用低价、低性能的8位单片机实现FAT16文件系统的高效读取,同时使用普通IO软件模拟I2S协议播放44.1K 双声道 16bit音频文件做到了流畅播放,不断流。
播放频率44.1KHz的稳定性、准确度。
最低使用 27MHz的主频可实现上述功能,通过嵌入汇编优化后,几乎榨干了STC8A8K单片机的性能。
<em> 三、描述作品硬件、软件部分涉及到的关键点;
1、使用SPI驱动TF卡,实现了自编写的FAT16只读文件系统
尝试过使用FATFS,无法实现不断流,自己实现了专用的自读FAT16文件系统。
2、使用普通IO软件模拟实现了I2S接口(44.1K 双声道 16bit)
3、使用了软件中断技术(软件触发未使用的硬件低压中断LVD在中断服务程序中填充播放的数据流)。
4、单片机、DA分别使用独立的LOD供电同时使用了固态电容。
</em> 四、作品材料清单;
见附件《BOM_立创电子设计大赛(基于STC8A的WAV播放器)_20190907140659》
五、作品图片上传;(PCB上须有大赛logo标识并拍照上传,若无视为放弃参赛)
<img src="//image.lceda.cn/pullimage/zQjDiC7ZpvYuKL0ypsRPLlPbmkPiEYr8yqHKvuwt.jpeg" alt="基于STC8A的WAV播放器实物照片.jpg">
六、演示您的作品并录制成视频上传;(视频内容须包含:作品介绍;功能演示;性能测试;PCB上大赛logo标识特写镜头,若无视为放弃参赛)
见附件《WAV播放器讲解V2_rotated》
七、开源文档。
见附件《wavplayer_20190608es9023p_v4_tiny》</p>
评论(9)