智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: cfanfrank
打印 上一主题 下一主题

xs128接sd卡调试的一点资料

  [复制链接]

0

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
威望
188
贡献
22
兑换币
0
注册时间
2009-3-20
在线时间
41 小时
11#
发表于 2009-6-29 13:34:45 | 只看该作者
多谢LZ啊~~~~~~
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
威望
176
贡献
22
兑换币
0
注册时间
2008-10-23
在线时间
6 小时
12#
发表于 2009-6-29 20:16:58 | 只看该作者
不知道,楼主有没有 一些宏定义的 资料啊?
可否发一份能用的程序,谢谢!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
威望
176
贡献
22
兑换币
0
注册时间
2008-10-23
在线时间
6 小时
13#
发表于 2009-8-5 17:27:43 | 只看该作者
谢谢楼主,很缺乏这东西。
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

高级会员

Rank: 4

积分
743
QQ
威望
456
贡献
189
兑换币
0
注册时间
2009-1-9
在线时间
49 小时
14#
发表于 2009-8-6 22:11:23 | 只看该作者
可谓是踏破铁靴无觅处,还是楼主比较大方,比上海大学有气度多了,谢了!!!!
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
351
威望
263
贡献
54
兑换币
0
注册时间
2008-1-21
在线时间
17 小时
15#
发表于 2009-8-7 22:52:10 | 只看该作者
首先电气连接上必须严格按照SD手册上说的去做,该3.3的3.3,该上拉的上拉,还必须解决信号完整性问题,SD卡选用高速卡,读写程序用汇编,并且可以忽略校验机制,我们车子5KB的图像数据是在4ms内存完的。还有就是程序中必须把SD卡存储的优先级设置最低,即使存储跳帧也不会影响正常程序的运行。
   建议没有一定时间和精力的队伍不要盲目去开发,因为SD卡的作用并没有想象的那么大,看上去眩点罢了,还会导致很多额外的问题。要做这套系统,把硬件,单片机存储软件,FAT协议,上位机全部搞定,每项都是庞大工程,得花多长时间?值得么。。。
回复 支持 反对

使用道具 举报

1

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
威望
204
贡献
50
兑换币
0
注册时间
2009-6-22
在线时间
9 小时
16#
发表于 2009-8-19 22:17:19 | 只看该作者
谢谢LZ~
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
威望
189
贡献
22
兑换币
0
注册时间
2009-2-21
在线时间
30 小时
17#
发表于 2009-8-24 21:15:19 | 只看该作者
楼主你好:我再使用你的程序,遇到如下问题:
我在做SD卡的时候,能够正确的初始化,和读取里面的数据,但是不能写数据,在执行写函数以后,再也不能初始化和读取数据了,只有把sd卡的引脚全部断开(包括电源)才能重新初始化和读取,但是还是不能写数据。我的写函数如下:
unsigned char SD_WriteData(byte *Write_Buff,dword length)
{
   static byte r1;
   dword i;
   r1=SD_SendCMD(25,0x00,0x00); //发多块写入指令
   if(r1!=0x00)
   {
      putstr("CMD25 faild\r\n");
      return 0;
   }
   SD_CS=0;
   //等待SD卡准备好
   SPI_WriteByte(0xff);
   SPI_WriteByte(0xff);
   
   SPI_WriteByte(0xfc);
   for(i=0;i<512;i++)
   {
      SPI_WriteByte(*Write_Buff);
      Write_Buff++;
   }
  
   SPI_WriteByte(0xff);   
   SPI_WriteByte(0xff);   
      
   r1=SPI_ReadByte();

   if((r1&0x0f)!=0x05)
   {
       putstr("write data error\r\n");
       return 0 ;        //数据如果数据出错,死机。。。。。。
   }

   SD_CS=1;
   putstr("write data seccussful\r\n");
   return 1;
}
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
威望
189
贡献
22
兑换币
0
注册时间
2009-2-21
在线时间
30 小时
18#
发表于 2009-8-26 17:13:59 | 只看该作者
楼主有个地方是错的吧~~~害的我好惨哦

应该是spi_write(0xfe)  ////////////
#   spi_write(0xFC);
#

#            //放一个sector的数据
#            i = 512;
#            while (i--)
#               spi_write(*ptr++);
#

#            //发个Byte的dummy CRC
#            spi_write(0xff);
#            spi_write(0xff);
#   
#            spi_read(r1);
#            if ((r1 & 0x0F) != 0x05) {
#               // 如果数据出错,死机..
#               PORTB = 0xff;
#               while (1);
#            }
回复 支持 反对

使用道具 举报

0

主题

112

帖子

0

精华

高级会员

Rank: 4

积分
557
威望
311
贡献
32
兑换币
0
注册时间
2008-8-12
在线时间
107 小时
19#
发表于 2009-9-13 20:48:33 | 只看该作者
好东西~~~~~~~~~~~谢谢~~正想学的东西~~~
回复 支持 反对

使用道具 举报

80

主题

1045

帖子

0

精华

跨届大侠

北京龙邱智能科技有限公司

Rank: 10Rank: 10Rank: 10

积分
10332

论坛元老奖章

QQ
威望
2905
贡献
6151
兑换币
4515
注册时间
2008-6-7
在线时间
638 小时
20#
发表于 2009-9-19 09:28:21 | 只看该作者
这代码风格很熟悉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 08:19 , Processed in 0.060082 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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