• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : mini2440的2440test程序中的SD卡读取程序分析 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 11182
精华: 0
发帖: 69
金钱: 350 两
威望: 70 点
贡献值: 0 点
综合积分: 138 分
注册时间: 2009-11-29
最后登录: 2011-11-27
楼主  发表于: 2010-07-18 16:47

 mini2440的2440test程序中的SD卡读取程序分析

超级新手,自己写的sdi.c的注释,高手请勿拍砖,呵呵,感谢。错误之处,请大家不吝赐教。
  断断续续的把2440test的sdi.c程序看完了,顺带着写上自己的注释,主要参考2440中文手册第19章SDI部分,还有SD卡读写规范,按照上面的一步一步来做,完成SD卡读取。
 

SD操作(这个是SD卡读取的核心思想,所有的工作都按照这个最高指示来进行)
   串行时钟线同步在五根数据线上的信息移位和采样。传输频率通过设定 SDIPRE 寄存器的相应位的设定来控制。你可以修改频率来调节波特率数据寄存器值。
编程过程(普通)
对 SDI 模块编程,按以下基本步骤:
(1)设置 SDICON 寄存器来配置适当的时钟及中断使能
(2)设置 SDIPRE 寄存器配置适当的值。
(3)等待 74个SDCLK 时钟以初始化卡。

CMD 路径编程
(1)写命令参数 32位到SDICmdArg
(2)决定命令类型并通过设置 SDICmdCon开始命令传输
(3)当 SDICmdSta 的特殊标志被置位,确认 SDICMD 路径操作的结束。
(4)如果命令类型是不相应,标志是 CmdSent。
(5)如果命令类型是相应,标志是 RspFin。
(6)通过对相应位写 1,清除 SDICmdStaD的标志。
数据路径编程
(1)写数据超时期间到 SDIDTimer
(2)写模块大小(模块长度)到 SDIBSize(通常是 0x80字)
(3)确定模块模式,宽总线,DMA等且通过社子 SDIDatCon来开始数据传输
(4)发送数据->写数据到数据寄存器(SDIDAT),当发送 FIFO 有效(TFDET 置位),或一半(TFHalf置位),或空(TFEmpty置位)。
(5)接收数据->从数据寄存器(SDIDAT)读数据,当接收 FIFO 有效(RFDET 置位),或满(RFFull置位)。或一半(RFHalf置位),或准备最后数据(RFLast 置位)。
(6)当 SDIDatSta寄存器的 DatFin标志置位,确认SDIDAT路径操作结束。
(7)通过对相应位写 1,清除 SDIDatSta 的标志。
  

描述:sdi.c
附件: sid.rar (10 K) 下载次数:438
Stay hungry,stay foolish !
级别: 侠客
UID: 22221
精华: 1
发帖: 54
金钱: 290 两
威望: 64 点
贡献值: 1 点
综合积分: 128 分
注册时间: 2010-05-28
最后登录: 2013-01-04
1楼  发表于: 2010-07-18 16:58
谢谢LZ,看看学习下~~
级别: 新手上路
UID: 24904
精华: 0
发帖: 38
金钱: 205 两
威望: 41 点
贡献值: 0 点
综合积分: 76 分
注册时间: 2010-07-16
最后登录: 2017-09-13
2楼  发表于: 2010-07-21 14:22
看不懂,能否详细讲解一下
级别: 新手上路
UID: 32814
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2010-11-21
最后登录: 2013-11-18
3楼  发表于: 2010-11-21 21:31
多谢楼主……正要学习
级别: 新手上路
UID: 35326
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2010-12-30
最后登录: 2011-03-03
4楼  发表于: 2010-12-30 11:14
读写到能 不知道怎么见文件 读文件 例如 文本文件 或 Excel
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
贡献值: 0 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
5楼  发表于: 2010-12-30 14:59

 回 楼主(圣斗士沙加) 的帖子

写了不错啊!
级别: 新手上路
UID: 32232
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-11-12
最后登录: 2011-07-10
6楼  发表于: 2011-01-12 18:03
sxxxxxxxxxxxxxxxxxx
级别: 新手上路
UID: 34156
精华: 0
发帖: 38
金钱: 200 两
威望: 40 点
贡献值: 0 点
综合积分: 76 分
注册时间: 2010-12-11
最后登录: 2012-12-07
7楼  发表于: 2011-03-01 23:31
顶LZ
级别: 侠客
UID: 25875
精华: 0
发帖: 80
金钱: 402 两
威望: 80 点
贡献值: 0 点
综合积分: 160 分
注册时间: 2010-07-30
最后登录: 2020-07-04
8楼  发表于: 2011-05-08 22:35
楼主不知道这个程序哪里指定写sd卡的哪一块,这个问题困扰我好久了。程序中没有找到写哪一块地址!
级别: 新手上路
UID: 40289
精华: 0
发帖: 28
金钱: 140 两
威望: 28 点
贡献值: 0 点
综合积分: 56 分
注册时间: 2011-03-17
最后登录: 2012-03-30
9楼  发表于: 2011-09-06 00:09
顶。。。。。。。
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go