搜索
bottom↓
楼主: elefan

[原创]资源共享:开放我的mmc/sd操作原代码

[复制链接]

出0入0汤圆

发表于 2007-12-30 12:23:03 | 显示全部楼层
先占个位置,以后研究一下

出0入0汤圆

 楼主| 发表于 2007-12-30 14:35:46 | 显示全部楼层
void MMC_get_data_LBA(unsigned long lba, unsigned int Bytes,unsigned char *buffer)

函数先打开LBA地址,然后取数据,之后记得关闭LBA地址,否则很可能出问题。

出0入0汤圆

 楼主| 发表于 2007-12-30 14:36:46 | 显示全部楼层
硬件SPI的更简单,你把两个软件SPI的程序使用硬件SPI的替换就可以了。

出0入0汤圆

发表于 2007-12-31 10:35:02 | 显示全部楼层
谢谢elefan的回复,不过没弄懂这句话的意思:
硬件SPI的更简单,你把两个软件SPI的程序使用硬件SPI的替换就可以了。
也祝你新年快乐!

出0入0汤圆

发表于 2008-1-7 20:22:58 | 显示全部楼层
函数很多,各位能否解释一下这些函数在main函数里怎么操作的?
这样不行啊:
main()
{
    MMC_Port_Init();  
    MMC_Init();
    MMC_write_sector(0x000012,data1); //data1,data2都是512字节的数组
    MMC_read_sector(0x000012,data2);
}
读出来的全是0.
是了,我的是micro SD卡,它的读写时序与SD卡是不是相同的?

出0入0汤圆

发表于 2008-1-24 16:51:36 | 显示全部楼层
谢谢!分享是一种快乐!

出0入0汤圆

发表于 2008-3-12 20:52:02 | 显示全部楼层
1 ,奇怪,SD的datasheet上说CSD的最后一位常为1,可我手上的3张SD卡读出来的CSD最后一个字节都是0x00h,但是用这些数据算出来的卡的容量都对,想不通啊。

2 ,还有怎样判定sd卡有没有MBR?我看了datasheet后想到的是通过CSD的FILE_FORMAT 和 FILE_FIRMAT_GRP 来判定,不知道有没有更好的办法。

3 ,我用WINHEX看sd卡、u盘、我的电脑的硬盘时,发现u盘和硬盘的第一个sector 前439个字节的有很多数据,但sd卡的对应位置却全0x00,这怎么解释?

elefan、bozai两位高手指点下,谢谢。

出0入0汤圆

发表于 2008-3-12 21:29:36 | 显示全部楼层
我读到的CSD是 00 2D 00 32 1B 59 83 D6 7E FB 80 16 40 00 E5 00


下面是WINHEX的截图,请看看这组数据对不对?


1

出0入0汤圆

发表于 2008-4-1 10:46:42 | 显示全部楼层
楼主太好了!

出0入0汤圆

发表于 2008-4-6 02:54:26 | 显示全部楼层
帖子虽久也收藏

出0入0汤圆

 楼主| 发表于 2008-4-6 12:10:34 | 显示全部楼层
引用:
#start
1 ,奇怪,SD的datasheet上说CSD的最后一位常为1,可我手上的3张SD卡读出来的CSD最后一个字节都是0x00h,但是用这些数据算出来的卡的容量都对,想不通啊。

2 ,还有怎样判定sd卡有没有MBR?我看了datasheet后想到的是通过CSD的FILE_FORMAT 和 FILE_FIRMAT_GRP 来判定,不知道有没有更好的办法。

3 ,我用WINHEX看sd卡、u盘、我的电脑的硬盘时,发现u盘和硬盘的第一个sector 前439个字节的有很多数据,但sd卡的对应位置却全0x00,这怎么解释?

elefan、bozai两位高手指点下,谢谢。
#end

我是这样判断DPT的:看第一个字节是否是0xEB
           //---------------------------------------------       
        //Start to Read MBR sector
        //---------------------------------------------
        readPos=0; sectorPos=0;
        MMC_set_blocklen(128);
        MMC_Read_Sector_Bytes(0,0,128,sectorBuffer.data); //try to read 128 bytes of MBR
        if(sectorBuffer.data[0] == 0xeb)
        { //If first byte is a instruction of JMP,no DPT.
          //---------------------------------------------
          //  debug info here
          //---------------------------------------------
        }         
        else
        { MMC_set_blocklen(64);
          //skipping boot code in first 445 bytes. Read 64 bytes partition table record
          MMC_Read_Sector_Bytes(0,446,64,sectorBuffer.data);
          pr = (struct partRec *) sectorBuffer.data;
          startSector = pr->startLBA;
          readPos=0; sectorPos=0;
          MMC_set_blocklen(128);
          MMC_Read_Sector_Bytes(startSector,0,128,sectorBuffer.data); //read boot record
        }

出0入0汤圆

 楼主| 发表于 2008-4-6 12:15:25 | 显示全部楼层
2. 另外你说的CSD最后一个字节是0还是1,我没有太关注。

3. 第三个问题你用WINHEX看注意看物理的第一个扇区,而不是逻辑的,否则会判断错误。硬盘有分区表,所以前面不是0。U盘一般也没有超过一个分区,除非强制分区。

出0入0汤圆

 楼主| 发表于 2008-4-6 12:28:40 | 显示全部楼层
107楼的截图,应该是没有错误的,其他数据基本都对。SD新的协议我没仔细看,或许已经更新了。

出0入0汤圆

发表于 2008-4-10 19:11:30 | 显示全部楼层
留个记号,收藏,谢谢!

出0入0汤圆

发表于 2008-5-15 09:46:41 | 显示全部楼层
@

出0入0汤圆

发表于 2008-5-29 21:19:33 | 显示全部楼层
参考楼主的程序,用bascom 模拟spi 来操作sd,现在能正确往扇区里写数据,但是读不出数据,都读不到&HFE!郁闷!

出0入0汤圆

发表于 2008-5-30 12:22:37 | 显示全部楼层
谢谢!

出0入0汤圆

发表于 2008-5-30 21:36:01 | 显示全部楼层
搞定了,SD卡座接线长导致数据传输错误,早应该怀疑了,害得调了好几个晚上!谢谢楼主的共享!

出0入0汤圆

发表于 2008-7-18 15:49:35 | 显示全部楼层
我在用actel FPGA实现microSD卡读写的时候发现初始化时发出的命令根本没有回应,但是我用sd卡却是可行的,困惑中啊???希望大虾帮忙指点一下

出0入0汤圆

发表于 2008-7-19 11:54:46 | 显示全部楼层
收.

出0入0汤圆

发表于 2008-7-19 14:29:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-5 17:19:14 | 显示全部楼层
sd卡和mmc的操作时序兼容吗

出0入0汤圆

发表于 2008-8-5 19:56:59 | 显示全部楼层
做个记号!

出0入0汤圆

发表于 2008-8-12 20:47:03 | 显示全部楼层
MARK

出0入0汤圆

发表于 2008-8-13 11:36:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-13 11:37:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-13 13:33:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-31 21:54:17 | 显示全部楼层
学习了,一定要顶

出0入0汤圆

发表于 2008-9-14 23:19:26 | 显示全部楼层
大哥,都这么多年了,硬件SPI的呢?谢了

出0入0汤圆

发表于 2008-11-4 15:20:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-2-19 23:13:25 | 显示全部楼层
一群牛人!!!
佩服!!!
可惜本人没有硬件和时间!
不然也弄个玩玩!!
呵呵!

出0入0汤圆

发表于 2009-7-14 19:10:27 | 显示全部楼层
收藏 谢谢了

出0入0汤圆

发表于 2009-7-14 21:25:43 | 显示全部楼层
记号!

出0入0汤圆

发表于 2009-7-14 21:45:53 | 显示全部楼层
好贴,顶一下楼主~~

出0入0汤圆

发表于 2009-7-24 17:17:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-7-24 17:29:55 | 显示全部楼层
hao

出0入0汤圆

发表于 2009-7-24 22:31:36 | 显示全部楼层
收藏~~~~~~~~~~~~~~~~~~~~~~

出0入0汤圆

发表于 2009-8-11 16:08:02 | 显示全部楼层
我都疯了 我的晶振频率都降到6M了 还是不能初始化我的2G的SD卡 但用朋友256M的卡就是上16M晶振也可顺利读写!
这是问什么啊 我用的金士顿的SD卡 是不是它的特别啊!

出0入0汤圆

发表于 2009-8-11 16:18:14 | 显示全部楼层
mark!

出0入0汤圆

发表于 2009-8-13 08:44:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-14 23:55:18 | 显示全部楼层
谢谢共享

出0入0汤圆

发表于 2009-8-15 01:13:05 | 显示全部楼层
支持

出0入0汤圆

发表于 2009-8-15 01:13:19 | 显示全部楼层
支持

出0入0汤圆

发表于 2009-8-22 17:10:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-8 23:41:18 | 显示全部楼层
05年就做出来啦!!牛人!

出0入0汤圆

发表于 2009-12-9 08:49:57 | 显示全部楼层
有机会自己玩个!!

出0入0汤圆

发表于 2009-12-20 21:44:10 | 显示全部楼层
好资料,我也做个记号

出0入0汤圆

发表于 2009-12-20 23:38:32 | 显示全部楼层
大家都MARK,我也MARK一个。

出0入0汤圆

发表于 2009-12-21 00:23:02 | 显示全部楼层
呵呵,好资料。

出0入0汤圆

发表于 2009-12-21 08:23:39 | 显示全部楼层
感谢楼主的奉献精神,先收藏了

出0入0汤圆

发表于 2009-12-21 09:36:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-21 21:40:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-22 09:21:34 | 显示全部楼层
谢谢。

出0入0汤圆

发表于 2010-3-9 10:19:43 | 显示全部楼层
mark.学习一下。

出0入0汤圆

发表于 2010-3-27 22:34:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-27 23:08:19 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-3-28 00:10:16 | 显示全部楼层
good

出0入0汤圆

发表于 2010-4-1 16:27:47 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2010-4-1 17:20:49 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-4-8 23:04:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-9 08:12:24 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-4-13 17:03:26 | 显示全部楼层
take a seat

出0入0汤圆

发表于 2010-5-5 15:51:27 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-5-18 22:13:58 | 显示全部楼层
顶!学习!

出0入0汤圆

发表于 2010-6-5 16:53:46 | 显示全部楼层
不错哟!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2010-6-11 00:28:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-11 01:15:23 | 显示全部楼层

出0入0汤圆

发表于 2010-6-11 09:15:13 | 显示全部楼层
回复【楼主位】elefan
-----------------------------------------------------------------------

ddddddddddddddddd

出0入0汤圆

发表于 2010-7-25 00:33:25 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-7-25 18:16:39 | 显示全部楼层
好贴留名

出0入0汤圆

发表于 2010-8-26 10:46:51 | 显示全部楼层
是呀,软件的SPI太慢了,但是硬件的好像老出问题!

出0入0汤圆

发表于 2010-9-8 18:24:55 | 显示全部楼层
收藏了

出0入0汤圆

发表于 2010-9-8 18:35:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-20 13:59:57 | 显示全部楼层
强帖留名!!!

出0入0汤圆

发表于 2010-9-20 21:50:39 | 显示全部楼层
支持一下 谢谢分享

出0入0汤圆

发表于 2010-11-13 15:09:36 | 显示全部楼层
mark

出5入8汤圆

发表于 2010-11-14 16:34:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-14 20:31:25 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-11-16 00:45:27 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-11-16 08:36:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-16 10:13:25 | 显示全部楼层
顶你...

出0入0汤圆

发表于 2010-11-16 15:20:02 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-11-20 16:24:33 | 显示全部楼层
回复【15楼】ljd166
-----------------------------------------------------------------------

大侠是用用什么调试的

出0入0汤圆

发表于 2010-11-20 16:41:38 | 显示全部楼层
收藏

出0入0汤圆

发表于 2010-11-25 14:58:12 | 显示全部楼层
看看

出0入0汤圆

发表于 2010-12-10 21:25:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-14 16:08:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-14 19:45:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-15 01:55:18 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2010-12-15 19:38:29 | 显示全部楼层
MARK

出0入24汤圆

发表于 2010-12-18 00:35:20 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2010-12-22 16:38:05 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2011-11-7 15:57:00 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-11-18 21:04:55 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-1-20 02:59:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-20 09:38:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-20 10:26:05 | 显示全部楼层
mark~~学习学习~~

出0入0汤圆

发表于 2012-1-30 13:38:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-30 14:52:38 | 显示全部楼层
收藏 谢谢共享

出0入0汤圆

发表于 2013-7-16 10:59:53 | 显示全部楼层
正在查找相关资料
谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 23:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表