在线情况
1
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
  //         3.0-mmcCD         Out       0 - card inserted
  //         3.1-Dout          Out       0 - off    1 - On -> init in SPI_Init
  //         3.2-Din           Inp       0 - off    1 - On -> init in SPI_Init
  //         3.3-Clk           Out       -                 -> init in SPI_Init
  //         2.6-mmcCS         Out       0 - Active 1 - none Active
上面是你的MCU IO配置吗?
P3.1 MOSI(SIMO) :主出从入
P3.2 MISO(SOMI) :主入从出

你现在的接法有错误!
    你把SD/MMC 卡做为SPI主机了。实际上MPS430才是主机。
这样一来你不是把430的SPI OUT,与SD/MMC卡的OUT 相连了。
你把SPI与SD/MMC卡的DIN,DOUT交换一下口,最好是串一个100~330的电阻保护。
试试看!

仔细看看下图的SD卡接口
MCU SIMO ----->DI
MCU SOMI ----->DO

[imga]../../upload/2006/05/01/152955.gif[/imga]
微控网感谢您的参与
在线情况
2
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
SPI 接口的通信方式是:
写数据:主机MOSI向从机发SCK和MOSI数据。不理会MISO.
读数据:主机向从机发SCK,并读取MISO的数据。不理会MOSI。

430的SPI我用过,我的测试方法是这样的。
将430的SPI口的MIOS,MOSI相连。
用下面的程序测试

//输入SPI输出数据,返回SPI 8CLK 的读数。
unsignd char SPI(unsiged char OutData);

unsigned char a,i;
for(i=0; i<128; i++)
{
a=SPI(i);
}

我当时测的结果是这样的。
OUT IN
0    xx
1   0
2   1
3   2
......
SPI是一个8位的移位寄存器,只有8BIT满了后,我们的程序才读得出来,
但是上面的例子中,写的同时马上读,是读不到的,原因是从8位的移位寄存器到总线要1个以上的CPU时钟才可。
你先把你的SPI训服了,再弄你的SD卡。
微控网感谢您的参与
在线情况
3
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
实读:  2032 664 576bytes  79280000
WinHex:2030 960 640bytes  790E0000  
相差1A0000 1.625MByte
如果你可以确定你写入数据到SD卡后,读的回的Buffer不是同一个缓冲区,或是同一个缓冲区但清0过。那就可以证明你的R/W 没有问题。

另外你用WinHex查看下下这两下扇,有没有一个是你想要的数据:
266240 + (0x1A0000 / 512)
266240 - (0x1A0000 / 512)
微控网感谢您的参与
在线情况
4
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
这是一个FAT16文件系统的源码,你试试把你的读/写扇区的函数改到里面,再继续玩你的SD卡。
有几点注意:
1.扇区 不等于 簇,在FAT系统中记录的是簇号。 一个簇由多个扇区组成。在调试FAT16文件系统,时你最好在网上下一个关于 磁盘文件系统 的资料放在一边参考。
2.在FAT系统读写文件总是有问题时,记得对SD卡做一下格式化,但一定要选择FAT16类型,通常默认的是FAT32的。
[img]../images/fileType/rar.gif[/img]此主题相关文件 [url=../../upload/software/FAT16.rar]FAT16.rar[/url]
微控网感谢您的参与
在线情况
5
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
兄弟们又可以下了,之前这个文件被DC 误删了两次,这是我第3次上传了。

上面3位已发到你们的E-mail上去了。
[img]../images/fileType/rar.gif[/img]此主题相关文件 [url=../../upload/software/FAT16.rar]FAT16.rar[/url]
微控网感谢您的参与
在线情况
6
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
你电脑的扩展名显示有没有打开呀?如果没有打开,你要读写的真识文件名就是 "abc..txt.txt".
微控网感谢您的参与
在线情况
7
  • 头像
  • 级别
  • 门派
  • 职务论坛版主
  • 积分55
  • 经验17687
  • 文章198
  • 注册2006-03-07
已发注意查收。
微控网感谢您的参与
Powered by LeadBBS 9.2 .
Page created in 0.2500 seconds with 7 queries.