|
I am back,好长时间没上这个网站了。2个多月前忽然想看看atxmega配sdram是什么效果,于是就动手开始买零件做,前前后后煎熬了N个日日夜夜,期间经历了不少问题,比如很难买到对应的sdram,atxmega只能用mkII诊断而我又没有,winavr只有16位指针等等,不过最后还是一一解决了,在这里要谢谢送我sdram的兄弟.调试这回全部靠串口了,但也多花了很多时间.指针方面最烦人,我差点放弃,做到后期发现程序超过64k,然后换成IAR,指针问题解决了,但手动设置空间老是不合适导致片子频繁重起,于是又回到winavr上拼命优化代码,还好老天有眼,最终写完后是63k.
下面介绍一下.这块板子硬件有atxmega128A1板,买的是mcuzone的,512k sram,8M sdram,2个1M flash,vs1003b,小功放,ch375b,小喇叭,sd,旋钮,屏用的是东芝2.2" 240x320,显示非常细腻.本来认为sram速度比sdram快,但单片机速度不行,看下来显示速度和sdram是一样的,所以就放弃sram了.
软件方面是以以前做的atmega128L板子的基础上改的.改动的地方如下:
1.系统文件存放取消sd卡,全部放在flash上,由于spi速度我设为最高,因此读1M多的数据时间还不是太长.
2.除了播放mp3的时候,其他全程支持sd,U盘热插拔,界面和图标会自动刷新.
3.取消手柄控制,采用旋钮
4.取消纵屏,改为横屏显示
5.取消耳机,改为2个0.5W的小喇叭输出.
6.支持换桌布,截屏,图片缩放,mp3快进快退等.
7.mp3几种主流格式的ID3显示都支持,mp3内的图片会被略过,如果要显示只能期待ram更大的片子了.本来WMA的也写好了,但容量问题最后只好放弃,只显示文件名了,歌曲时间长度显示也不能支持了.
8.因为有sdram,所以显示分了几页,除了光标以外,其他图块包括文字都是先放到显存里然后再画到屏上.
9.为了节省空间,把fat16部分删了,只支持fat32.
不足的地方也有一些:
1.刷整屏还是拉窗帘,比stm32要慢不少,毕竟人家是32位的.但小图块还行,基本看不出来.
2.为了简化程序,不支持文件碎片,要求文件连续存放.
3.由于焊跳线,板子稳定性不够好,特别是2块板子连接的地方.
4.电子书是全部拷到sdram再读,因此不支持很大的txt,目前我设为1M多,当然还可以改大点.
5.mp3播放时间经常会抖动,可能是我把spi速度设的太高的原因吧,因此无法显示进度条了.
6.攻放电流噪音比较厉害,我对功放不在行,看视频的时候声音开大点就能够体会到.
7.没有做播放记忆点,一是程序空间不够了,二是目前时间花的太长了,以后再说吧.
这种类型的东西暂时告一段落,短期内不会再碰了.
由于还有些bug,代码就不上传了,需要的邮箱.
视频: http://v.youku.com/v_show/id_XMjc4ODgwNTUy.html
(原文件名:P6230128.JPG)
(原文件名:P6230130.JPG)
(原文件名:P6230129.JPG)
(原文件名:P6230131.JPG)
(原文件名:P6230127.JPG)
(原文件名:P6230136.JPG)
(原文件名:1.JPG)
(原文件名:2.JPG)
(原文件名:3.JPG)
(原文件名:4.JPG)
(原文件名:6.JPG) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|