打印
[STC单片机]

IAP15F2K61S2的硬件SPI读取SD卡出错

[复制链接]
2179|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SD卡无法初始化。
用IO模拟就可以。
#define SPILOW                 0x03
#define SPIHIGH     0xfc

#define SPIF        0x80        //SPSTAT.7                                
#define WCOL        0x40        //SPSTAT.6

void SPI_Init(void)
{
P1M1=0x40;
    P1M0=0xa0;
    SPDAT = 0;                  //初始化SPI数据
    SPSTAT = SPIF | WCOL;       //清除SPI状态位
SPCTL=0xDF;
}

unsigned char SPI_ReadWriteByte(unsigned char x)
{
        SPDAT=x;
        delay0();
        while (!(SPSTAT & SPIF));   //等待发送完成
    SPSTAT = SPIF | WCOL;
        delay0();
        return SPDAT;
}

void SPI_Speed_High()
{
        SPCTL=SPCTL&SPIHIGH;
}
void SPI_Speed_LOW()
{
        SPCTL=SPCTL|SPILOW;
}
SPI配置应该没问题吧?程序流程应该没问题。但是CMD0命令返回的值一直0,如果把DO脚与单片机断开测试,返回的数据是FF。
程序是从IO模拟SPI通信改过来的,只是修改了SPI的部分。

相关帖子

沙发
彼岸花开stc| | 2013-10-10 14:33 | 只看该作者
这个芯片的spi从机模式有问题,您要是想用,还是等老姚更新吧,应该会修改这个bug的

使用特权

评论回复
板凳
coody| | 2013-10-10 16:49 | 只看该作者
彼岸花开stc 发表于 2013-10-10 14:33
这个芯片的spi从机模式有问题,您要是想用,还是等老姚更新吧,应该会修改这个bug的 ...

主机模式木问题的。

使用特权

评论回复
地板
lzp3520265|  楼主 | 2013-10-10 19:27 | 只看该作者
coody 发表于 2013-10-10 16:49
主机模式木问题的。

已经没有问题了,发现用硬件SPI读写SD卡时,必须将对应的IO口输出配置为推挽以及高阻。可能是由于输出脚和SD卡引脚间接有电阻吧。

使用特权

评论回复
5
lzp3520265|  楼主 | 2013-10-10 19:29 | 只看该作者
彼岸花开stc 发表于 2013-10-10 14:33
这个芯片的spi从机模式有问题,您要是想用,还是等老姚更新吧,应该会修改这个bug的 ...

我用SPI硬件进行双机通信时(相同的STC开发板),发现丢包率和错误率高的吓人。

使用特权

评论回复
6
autopccopy| | 2013-10-10 23:19 | 只看该作者
lzp3520265 发表于 2013-10-10 19:29
我用SPI硬件进行双机通信时(相同的STC开发板),发现丢包率和错误率高的吓人。 ...


目前C版作为SPI从机是有问题的,可看数据手册1.1章!
作为SPI主机没问题,可读写大容量串行FLASH和SD卡等。。。

(62)

stc15f2k60s2_verc_debug.jpg (139.6 KB )

stc15f2k60s2_verc_debug.jpg

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

41

帖子

0

粉丝