|
感谢AVR论坛以前留下的很多资料和邮购部那些转接板和CH375...
本人刚接触单片机,第一个用的就是AVR的MEGA16...
系统硬件基本参照网站上那个国外制作硬盘MP3的电路,只不过用的是CH375读U盘而不是硬盘
主要硬件是ATmega128+CH375+STA013+CS4334 +万用板+一个小电机上拆下的所有漆包线做的
调试的时候走了很多弯路,一开始偷懒想少焊些线,CH375用的是异步的串口,但是波特率死活也调不高,(M128是16M的主频,CH375是12M的主频)
实际测试的结果是,默认的9600bps可以正常通讯,到20kbps以上就开始跑飞了,本来天真想用1M--2M的速度,这时候芯片像消失了一样...
所以用CH375做高速通讯一定要老老实实用并口(而且串口不能用于从机方式)
CH375读U盘有些现成的命令,不过程序还是不太好写,因为操作U盘的命令很多会失败,然后要主程序去重试,还是要感谢本站的帖子有完整的资料和一些范例程序
其次是那个STA013用起来可圈可点,也是参照老外的一套完整的配制方法搞出来的...
STA013不好用的地方就是
1.DATASHEET,有些地方写的不清楚...
2.用I2C操作的寄存器个数太多,其次我之前一直不明白的一个文件(或是的大数组)其实是一个类似补丁程序的东西,在ST的官网有载,我是复制别人程序里的拿来用的
3.还有我发现STA013的寄存器那么多其实有些并不需要刻意去修改,载入补丁程序后用默认的配置就可以解码,I2C操作事实上只需控制开关,音量,高低音什么的,像PLL的设置STA013内部的软件会根据实际情况自己修改,写入个补丁,然后默认配置就可以...
STA013好用的地方就是:
1.那个SPI的接口,对于AVR单片机根本没有速度限制,我用的M128是16M的速度,SPI的波特率用的是16M/2=8Mbps的速度,最快了,不能再高了...
根据老外的说法,这个SPI接口的速度底于50Mbps的速度都可以用...
2.可以随便朝STA013发数据,只要是MP3的数据就解压...不是就忽略...所以现在我把U盘的数据从头到尾发进STA013还可以把没删干净的MP3放出来
另外,数据的调度不好做,花了我1个星期多的时间,就是这一读一写相当不好做,我用M128 4K SRAM中的3K做缓存终于可以正常播放320kbps的MP3了
(原来用2K只好播放256kbps以下的MP3格式的文件,320kbps会死机,其实主要也因为我调度程序写的不好,自己觉得写的有点乱)
现在FAT部分还没写,只是可以按磁盘的物理顺序读歌...不过已经很不容易了
以下是调试中的程序可以放歌,不过有点乱,只能参考,用WINAVR遍的所有的代码(液晶,键盘部分注意修改),希望让以后想用这些芯片朋友带来些方便
点击此处下载ourdev_183786.rar(文件大小:110K)
还有CS4334的驱动能力比想象中的猛很多,我输出串了510欧姆的电阻加个1000uF的电容直接接耳机还是挺响的.不过以后一定会再加运放的.... |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|