>

R-2R SD卡WAVE播放器

2013-07-14 by Stavros

用ATMega8, 16.9344M晶振, 14位r-2r作为DAC, 实现了流畅播放16位 44.1kbps单声道wav. 双声道没试, 估计超点频应该差不多了.

这东西有点说来话长. 最早是amobbs的马潮老师出了个题目, 8*8的LED屏, 中间四个常亮, 最外圈亮一个转圈跑. 那会儿我正好有块点阵屏闲着, 就焊了一块板, 从开始写程序计算, 39分钟解决了.

讨论过程中师弟TwoPerson把这位马潮老师惹怒了. 于是他放出狂言, 原文如下:

如果不服, 可以再次比试. 你在北大找5个学生, 组成一个小组. 用m16加一片lm324, 设计一个读取sd卡上wave文件, 并播放的wave播放器, 看谁做的好. 给你们一个月的时间, 下个学期开学我到北大找你, 比试实物效果.

在我这个外行看来, 这个题目也就是一个人两三天到一周左右的工作量, 至于五个人搞一个月么? 不过后来事情一多也就把这回事忘了.

今年1月份想起来了, 于是动手开干. 用8位PWM先试了一次, 从学习SD协议、实现FAT开始, 焊接、写程序到调试全算上, 用了两个晚上、周六全天加周日半天, 基本完事. 当然8位PWM的音质有点惨不忍睹……

这次改用r-2r ladder来实现16位输出, 三个晚上加两个白天, 完事了. 算上之前的两晚上和一个半白天, 还算符合我之前“一个人一周工作量”的估计吧. m8的io稍微有点不够用了, 凑了14位出来, 倒是也差不多了. 音质么我觉得还不错.

原理图:

程序: avr_sd_waveplayer_2_src.7z

马老师那边啥反应? 猜也猜得出, 他在精神上永远都能胜利, 我实在不想引用那个“永远不要试图去战胜一个纯xx, 他会把你的智商拖到跟他一样的水平, 然后用他丰富的经验打败你. ”的段子, 不过还是把链接贴过来好了.

http://www.amobbs.com/thread-5535140-1-1.html

马老师喷了几大篇以后不知出于一种什么心理, 封贴了, 对此咱就不作啥评论了, 呵呵.