16位44.1K的纯WAV播放器实现(模拟I2S)

2020年伊始,借此时机为新的一年开一个好头,特此写一段留作留念。

在2019下半年抽出业余时间做了一下WAV播放器的验证工作,成果就是它:
 

16位44.1K的纯WAV播放器实现(模拟I2S)_第1张图片 整机照

基于开发板的原理图重新设计了电路,基本都是按最低要求设计。
比如去掉了LCD屏幕,删掉了无必须的模块电路;软件上因为采用
模拟I2S协议实现,暂时只能跑到[email protected]双声道WAV。

输入按键用了一个拨轮开关,功能为上/下一曲(快进/退),暂停/播放;
DAC采用的是我手中现有的CS4334;
AVR是atmega88P;
MCU用的是STM32f103zet;

这是用开发板调试时的照片:

16位44.1K的纯WAV播放器实现(模拟I2S)_第2张图片 开发板整机照

因为按最低标准打造,没有高素质的DAC,没有高精度的晶振。
整机用microUSB接口通过充电宝供电,降低电源转来转去导入的噪声。
存储卡接口为SD,支持带SD卡套的microSD(TF)卡。工作状态指示通过
3个LED指示灯完成,不同的指示状态对应不同的功能;整机上电启动后
自动播放,正面带一个主机复位按键,完成整机复位重新启动。

整机外形为亚克力+PCBA组成的三明治结构:

16位44.1K的纯WAV播放器实现(模拟I2S)_第3张图片 三明治

功能性的验证工作包括测试I2S时序和SDIO时序。

SDIO 总线数据线的一组波形

16位44.1K的纯WAV播放器实现(模拟I2S)_第4张图片 SDIO中的数据线波形

I2S总线中的SDATA波形

16位44.1K的纯WAV播放器实现(模拟I2S)_第5张图片 I2S的SDATA

I2S总线中的MCLK波形,16.9344MHz

16位44.1K的纯WAV播放器实现(模拟I2S)_第6张图片 I2S的MCLK

 

测试照

16位44.1K的纯WAV播放器实现(模拟I2S)_第7张图片 测试中

SDIO总线时序存在较大毛刺,需要串联吸收电阻;I2S的SDATA波形不是很干净,存在类似的串扰。

16位44.1K的纯WAV播放器实现(模拟I2S)_第8张图片 播放中


总结:
1,仍然是感谢开源精神,让兴趣爱好有得以提升;
2,国内成熟的制造业优势,如PCB打样、亚克力打样;
3,功能测试为后续更多的研究打下基础,目前已经入手了某原子的开发板,
开始在学习STM32f4的播放器资料中。
 

你可能感兴趣的:(stm32,嵌入式开发)