chen285524959 发表于 2010-2-10 16:14:05

SD卡学习的全过程

SD卡学习的全过程                   希望如果大家没什么事也一起学一下,娱乐一下也好
实时更新

楼主工作进度
___________________________________________________________________________________________
2.11号晚0:20   先睡了明早更新   大家顶起
2.12号晨10:00开始做模拟SPI       现在贴SPI代码在2楼
2.12号中午11.45 SPI完成             代码在2楼
                                    图在3楼
2.12号下午16.00 遇到问题 自己以解决,SPI其实和串口一样,一个发一个接。不能搞错,不然收不到东西
——————————————————————————————————————————————
      本人作为一个即将走上工作岗位的学生(3月1号到深圳科技园的公司报到)
      想告诉大家(学生朋友)工作以后,带你的师傅也不可能告诉你太多的东西。
      一定要靠自己去学。
      自己去钻。(个人的体会)

——————————————————————————————————————————————
      为了方便大家学习,特别是学生朋友。


1楼   资料工具

2楼   文本解释(以及代码)

3楼   图片解释

4楼   (空)广告招租   加QQ285524959

chen285524959 发表于 2010-2-10 16:15:35

学习的资料,学习工具汇总

protues右键datasheep下载的官方手册
点击此处下载 sandisk.pdf(文件大小:1.70M) (原文件名:sandisk.pdf)

winhex生成*.mmc的工具ourdev_533451.rar(文件大小:1.45M) (原文件名:winhex_ch.rar)
仿真的模型    点击此处下载 仿真的模型.rar(文件大小:35K) (原文件名:sd卡.rar)
希望大家看看这个帖子,一定会给大家很多帮助的(来自——jjldc(九九)的电子博客)
http://blog.ednchina.com/jjldc/190030/message.aspx
点击此处下载 技术文档和程序.zip(文件大小:2.79M) (原文件名:技术文档和程序.zip)
发布三款SD卡座封装图纸:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3870753&bbs_page_no=1&bbs_id=9999
CF卡的操作
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=402883&bbs_page_no=1&sub_kind_id=2065&bbs_id=1000
文件系统
http://elm-chan.org/fsw/ff/00index_e.html
How to Use MMC/SDC
http://elm-chan.org/docs/mmc/mmc_e.html

SPI协议
点击此处下载 ourdev_533491.pdf(文件大小:167K) (原文件名:spi.pdf)
中文版SPI
http://www.weeqoo.com/zhuanti/SPI-Agreement/
用计算机并口模拟SPI通讯的C源程序
http://www.avrw.com/article/art_107_4016.htm

chen285524959 发表于 2010-2-10 16:36:43

为了不看起来太乱,我把所有图片都放在3楼,免得把大家眼都看花了。这一楼放纯文本
2010年2月10号

打算用Protues仿真SD卡,但是Proutes上没有SD卡的模型现在就只好用MMC卡的模型了。

不知道大家是否需要这个模型。需要我就上传。大家给顶一下。

第一个问题


我来说一下,MMC卡需要*.MMC的镜像文件。添加了就好了
就是下面这样
用第一楼的工具后就可以生成MMC的文件。
Protues就可以仿真了。这只是第一步
生成MMC直接另存为就可以了。之所以说这么细,是因为有人在网上问过这个问题,却没人回答。
模拟SPI代码
#include <mega16.h>
#define sd_spi_cs      3
#define sd_spi_di      2
#define sd_spi_do      1
#define sd_spi_clk       0
#define sd_spi_port_dirDDRA
#define sd_spi_port_datPORTA   
////////////////////////////////////////////////////////
#define sd_spi_cs_H      PORTA=PORTA|(1<<sd_spi_cs)
#define sd_spi_di_H      PORTA=PORTA|(1<<sd_spi_di)
#define sd_spi_do_H      PORTA=PORTA|(1<<sd_spi_do)
#define sd_spi_clk_H       PORTA=PORTA|(1<<sd_spi_clk)
/////////////////////////////////////////////////////////
#define sd_spi_cs_L      PORTA=PORTA&(~(1<<sd_spi_cs))
#define sd_spi_di_L      PORTA=PORTA&(~(1<<sd_spi_di))
#define sd_spi_do_L      PORTA=PORTA&(~(1<<sd_spi_do))
#define sd_spi_clk_L       PORTA=PORTA&(~(1<<sd_spi_clk))
//////////////////////////////////////////////////////////
voidspiInit (void)
{
DDRA=DDRA|(1<<sd_spi_cs)|(1<<sd_spi_di)|\
                         (1<<sd_spi_do)|\
                         (1<<sd_spi_clk);
sd_spi_cs_L;   
sd_spi_clk_H;                     
}


void spi_Send_Byte(unsigned char u_Byte)
{
sd_spi_clk_L;if(u_Byte&)
sd_spi_clk_L; if(u_Byte&0x80) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x40) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x20) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x10) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x08) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x04) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x02) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
sd_spi_clk_L; if(u_Byte&0x01) sd_spi_do_H; else sd_spi_do_L; sd_spi_clk_L;
}

chen285524959 发表于 2010-2-10 16:37:00

2010年2月10号

打算用Protues仿真SD卡,但是Proutes上没有SD卡的模型现在就只好用MMC卡的模型了。
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533453.png
(原文件名:QQ截图未命名.png)

不知道大家是否需要这个模型。需要我就上传。大家给顶一下。

第一个问题
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533447.png
(原文件名:QQ截图未命名.png)

我来说一下,MMC卡需要*.MMC的镜像文件。添加了就好了
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533448.png
(原文件名:QQ截图未命名.png)
就是下面这样
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533449.png
(原文件名:QQ截图未命名.png)
用第一楼的工具后就可以生成MMC的文件。
Protues就可以仿真了。这只是第一步
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533452.png
(原文件名:QQ截图未命名.png)
生成MMC直接另存为就可以了。之所以说这么细,是因为有人在网上问过这个问题,却没人回答。
Contact Surface
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533467.png
(原文件名:QQ截图未命名.png)

http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533475.png
(原文件名:QQ截图未命名.png)
按照这样说protues 上的MMC卡应该是第二种。因为它有CS.
你们觉的呢??
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533476.png
(原文件名:QQ截图未命名.png)

分析一下还是SPI模式。
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533477.png
(原文件名:QQ截图未命名.png)

http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533478.png
(原文件名:QQ截图未命名.png)
对比可以看出,很简单呀!!!!!!!!!!!!!!!!!!!!!!!!!
SPI要好好掌握!
很多卡都兼容这种接口!

http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533480.png
(原文件名:QQ截图未命名.png)

http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533481.png
(原文件名:QQ截图未命名.png)
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533482.png
(原文件名:QQ截图未命名.png)
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533484.png
(原文件名:QQ截图未命名.png)
这个argument(参数)是什么意思呀??
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533485.png
(原文件名:QQ截图未命名.png)

http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533489.png
(原文件名:QQ截图未命名.png)
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533490.png
(原文件名:QQ截图未命名.png)
没有什么难度就像24C02一样简单
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533492.png
(原文件名:QQ截图未命名.png)

SPI协议
读取在上升沿
上升沿发送、下降沿接收、高位先发送
模拟SPI上图
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533529.png
(原文件名:QQ截图未命名.png)
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533532.png
(原文件名:QQ截图未命名.png)

从主机的高位到从机的低位。
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_533540.png
(原文件名:QQ截图未命名.png)

chen285524959 发表于 2010-2-10 16:40:11

我只占四楼

KuJJ 发表于 2010-2-10 18:44:27

有意思 上次也想这么弄,就是mmc文件不知道怎么生成,lz可否详细讲下。
mark

bobojust 发表于 2010-2-10 19:04:01

帮顶一把,哈哈....

wanglituan 发表于 2010-2-10 19:10:39

顶上

csclz 发表于 2010-2-10 19:26:27

顶一把

chen285524959 发表于 2010-2-10 19:58:53

回复【5楼】KuJJ 水箱
-----------------------------------------------------------------------

你想问什么?请说

我会把每一步都写的很清楚的

ksniper 发表于 2010-2-10 20:07:52

mark

osky 发表于 2010-2-10 20:15:29

mark

tanguoyong 发表于 2010-2-10 21:06:09

mark

jielove2003 发表于 2010-2-10 21:06:46

mark

chen285524959 发表于 2010-2-10 21:33:04

回复【5楼】KuJJ 水箱
-----------------------------------------------------------------------

用我上传的软件,另存为就可以了。
你再试试。
不行我传个给你。
你留MAIL

chen285524959 发表于 2010-2-10 21:53:52

谁知道micro SD和   SD 的区别???

fengxin32 发表于 2010-2-10 22:19:49

这个安逸,我就怕把我的卡写坏了^_^

chen285524959 发表于 2010-2-10 22:23:43

回复【16楼】fengxin32
-----------------------------------------------------------------------

坏了再买
要不了几个钱
大不了
我们集体买32M的买它1K

admvip 发表于 2010-2-10 22:46:19

mark

chen285524959 发表于 2010-2-10 23:29:02

spi

shotstar 发表于 2010-2-10 23:53:46

不错

qinshi1208 发表于 2010-2-11 00:23:58

很详细,

pcrack 发表于 2010-2-11 10:31:37

好OK

deiwgah 发表于 2010-2-14 13:37:37

好东西,准备学呢

tiger001 发表于 2010-2-14 16:08:35

绝对支持!!!!!!!

xyq4513 发表于 2010-2-16 20:36:26

mark

ritchie 发表于 2010-2-16 22:00:08

hi, 哥们儿,
说实在的, 俺仔仔细细的看了您的帖子,
俺真的不知道 mmc 文件如何生成。

是不是手头非要有个 mmc 卡?

我自己是这样做的,
1. 将mmc卡放入读卡器
2. 将读卡器插到电脑上。
3. 打开winhex, 用winhex 打开插入的移动硬盘(也就是mmc卡)
4. 选择winhex 的“文件”-> “另存为” 菜单项, 保存文件。

我想问下,有没有手边没有 mmc 卡和读卡器就可以生成映像的方法?
而且, 我手边的mmc卡位512m的, 读出的文件映像太大。

麻烦告知。

多谢!

155107149 发表于 2010-2-17 16:53:17

这也能做模拟哈~~不错,顶楼主

wuxinping 发表于 2010-2-17 17:53:24

好东西学习

moon0213 发表于 2010-2-17 18:16:20

MARK

kulouman 发表于 2010-2-20 22:36:48

mark

lybwell 发表于 2010-2-21 08:34:31

随便顶

sunzhaod 发表于 2010-2-21 08:42:45

mark

lsw0136 发表于 2010-2-21 08:46:36

顶然后Mark

pinocchio 发表于 2010-2-21 09:25:32

mark

kneken 发表于 2010-3-6 22:11:46

http://elm-chan.org/fsw/ff/00index_e.html 能访问吗?老是转到yahoo网站去!

jack_yu 发表于 2010-3-7 00:07:49

记号了。谢谢

xiake017 发表于 2010-3-7 23:58:12

记号,好东西

ksniper 发表于 2010-3-8 09:31:12

mark

YUZH282 发表于 2010-3-8 14:01:57

不错,有时间玩一下.

boy364100 发表于 2010-3-8 14:25:12

mark~~~

lostmj 发表于 2010-3-10 22:55:03

记下了!!!

xinyou 发表于 2010-3-11 09:17:53

mark

ep1c3 发表于 2010-3-12 16:09:18

学习

vr2whf 发表于 2010-3-12 23:00:10

有没有SD card 4-bit操作模式的资料.
好像SPI慢了一点.

sonna 发表于 2010-3-12 23:32:36

记号~

moon0213 发表于 2010-3-13 01:13:51

mark

tear086 发表于 2010-3-13 07:53:32

mark

tianyuwei 发表于 2010-3-31 13:32:36

一起学习,,,mark

wangqh1983 发表于 2010-4-5 09:40:10

不错,应给申酷了!

mysky 发表于 2010-4-5 09:58:04

mark

liurangzhou 发表于 2010-4-5 10:28:14

mark

rkfch 发表于 2010-4-5 13:10:42

来学习

xixiangfeng 发表于 2010-4-5 16:04:40

学习学习!!

youki1234 发表于 2010-4-5 21:46:04

学习下,目前正用到这个东西

undeadhuman 发表于 2010-4-5 22:32:12

做个记号!哈哈。

qzf368 发表于 2010-4-11 11:06:58

学习 学习 一定要动手学习了

sky_walker 发表于 2010-4-11 11:34:46

支持下

wenwu 发表于 2010-4-11 11:34:51

好贴子。顶一顶。

zj_llh 发表于 2010-4-11 11:47:33

mark

longquan 发表于 2010-4-11 12:17:05

mark

qzf368 发表于 2010-4-13 01:21:54

数据不对啊,我用的LZ的51的那个工程,把数据从串口发出来,不对啊

gmolzc 发表于 2010-4-13 08:09:04

頂!!!!!

hongyancl 发表于 2010-4-13 09:13:40

回复【3楼】chen285524959 陈嵌
-----------------------------------------------------------------------

ddddddddddd

qhshilin 发表于 2010-4-13 18:57:51

mark!

chen285524959 发表于 2010-4-16 23:34:53

http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_546955.jpg
读写时序问题 (原文件名:sd3.jpg)

我是楼主
以前是用AVR的硬件SPI
现在用STM8了
发现了一些问题
现在用IO口模拟SPI操作
希望对大家有用
如果大家对SD卡的初始化还有问题,发邮件给我,或者直接电话给我,加我QQ我的电话在QQ上,希望可以帮到大家.

pdf文档ourdev_546956.pdf(文件大小:209K) (原文件名:sd3.pdf)

xjmlfm1 发表于 2010-4-16 23:45:32

mark

781905891 发表于 2010-4-17 09:25:26

mark

yangyi 发表于 2010-4-17 12:10:24

很好很强大.谢谢共享!

zenboys 发表于 2010-4-17 20:04:50

感谢楼主,还是仿真比较好,手里没有小容量的卡,都是2G以上的,怕乱写写坏

xue98 发表于 2010-4-19 00:13:45

很强大.谢谢共享!

MCU678 发表于 2010-4-19 00:49:34

mark

xthupan 发表于 2010-4-19 00:51:42

mark

xthupan 发表于 2010-4-19 00:53:54

mark

xthupan 发表于 2010-4-19 00:56:00

mark

hui20100328 发表于 2010-4-19 08:24:18

mark

liumaojun_cn 发表于 2010-4-19 08:37:54

mark

cookie2g 发表于 2010-4-19 08:38:46

mark

cgbabc 发表于 2010-4-19 09:01:32

学习

stevencao 发表于 2010-4-19 09:24:01

MARK

809314596 发表于 2010-4-28 00:06:45

MARK

xqyair 发表于 2010-4-29 15:37:59

mark,LZ真好人!!

jimmy689758 发表于 2010-5-13 11:59:53

那个生成镜像MMC用WINHEX怎么用啊
详解啊

liumaojun_cn 发表于 2010-5-13 12:25:50

mark

spely 发表于 2010-5-13 15:27:17

mark

bigarmer 发表于 2010-5-13 16:38:40

LZ, 3楼的PPT做得不错,可否分享一下?

avrwoo 发表于 2010-5-13 16:45:51

MARK

gdourf 发表于 2010-5-13 18:05:33

mark

qidian 发表于 2010-5-16 11:33:32

MARK

student88 发表于 2010-5-20 22:13:27

mark~~~~~~~~~~~~

xue98 发表于 2010-5-21 01:12:25

马克一下

super373 发表于 2010-5-21 08:19:32

楼主讲的蛮详细的
学习了!

lizhoubob 发表于 2010-5-21 08:36:47

关注

liangbmw 发表于 2010-5-21 08:54:51

mcu_lover 发表于 2010-5-21 09:37:31

学习。

luhuizszw 发表于 2010-5-21 10:15:52

学习了,正在看SD模式的

binyun714 发表于 2010-5-27 16:52:34

MARK

zbjshower 发表于 2010-5-28 09:26:18

mark

hongyancl 发表于 2010-5-28 09:43:30

回复【3楼】chen285524959 陈嵌
-----------------------------------------------------------------------

dddddddd

bigworms 发表于 2010-5-28 09:51:01

mark
页: [1] 2 3 4 5 6 7
查看完整版本: SD卡学习的全过程