打印

请教读写SD卡的地址问题

[复制链接]
4003|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szhgx26|  楼主 | 2007-7-20 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
szhgx26|  楼主 | 2007-7-21 08:39 | 只看该作者

没人回啊,要沉下去了!

使用特权

评论回复
板凳
古道热肠| | 2007-7-21 11:41 | 只看该作者

看看这个,SD卡读块分两步走

uchar SD_ReadBlock(ulong ulBlockAddress,uchar *ucDataBuff)
{
    uchar ucReturnValue;

    ucReturnValue = SD_ReadSingleBlock(ulBlockAddress); //执行CMD17号命令
    if(ucReturnValue == SD_NO_ERR)
    {
        ucReturnValue = SD_ReadBlockData(SD_BLOCKSIZE,ucDataBuff);        //真正读取数据
    }

    return ucReturnValue;
}

使用特权

评论回复
地板
szhgx26|  楼主 | 2007-7-21 11:53 | 只看该作者

自已回

昨晚搞了好久,终于弄明白了.
CMD17的Address是32位的,最后9位是Block地址,前面的是Sector地址.如果Block=512 Byte的话,Block的值只能是0,Block!=0,Response会报错.

使用特权

评论回复
5
szhgx26|  楼主 | 2007-7-21 11:56 | 只看该作者

顺便提一下,sector是物理地址.

初写SD卡的驱动,走了很多弯路.
现在可以读到sector的内容了.

使用特权

评论回复
6
古道热肠| | 2007-7-21 12:09 | 只看该作者

不错,自已都解决了问题

  我做SD卡驱动没走弯路,只在软件仿SPI总线上出了一点小Bug,很快就正常了。不知楼主硬件是如何架构的,我是用LE58单片机的IO口直接接口SD卡的,3.3V单片机用起来总是觉得不太方便。楼主能否把硬件做一说明,便于大家设计时进行相应的参考。

使用特权

评论回复
7
szhgx26|  楼主 | 2007-7-21 12:25 | 只看该作者

我是用AT89C51SND1C来做的,

带MMC Controller,SD 1Bit 模式.
我是初学者,主要是想用这个来做一个MP3玩玩!
原理图上NAND FLASH RD/WD应接MCU RD/WD,没有更新过来.
欢迎砸砖!
相关链接:https://bbs.21ic.com/upfiles/img/20077/2007721122045404.pdf

使用特权

评论回复
8
古道热肠| | 2007-7-21 12:45 | 只看该作者

有上进心,值得表扬

  做MP3还有文件管理一块要费此功夫,有问题再来问好了。一般都用SND1+CS4330来做,你这方案有些复杂。 

使用特权

评论回复
9
szhgx26|  楼主 | 2007-7-21 17:39 | 只看该作者

我只有WM8746, 5.1声道的,

还想做个DOLBY解码的功放,共用这颗AUDIO DAC.就是ST的STA310很难买,上次好不容易找了个有货的,不零卖!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

164

帖子

0

粉丝