查看: 10563|回复: 15

[其他] SD卡调试一册通

[复制链接]

该用户从未签到

3

主题

17

帖子

0

新手上路

Rank: 1

积分
47
最后登录
1970-1-1
发表于 2010-1-15 15:44:08 | 显示全部楼层 |阅读模式
 
SD卡调试一册通v100

磊胜sd卡调试一册通v100上.pdf (247.33 KB, 下载次数: 130)

磊胜sd卡调试一册通v100中.pdf

202.43 KB, 下载次数: 147, 下载积分: 威望 1

回复

使用道具 举报

该用户从未签到

3

主题

17

帖子

0

新手上路

Rank: 1

积分
47
最后登录
1970-1-1
 楼主| 发表于 2010-1-15 15:44:54 | 显示全部楼层

RE:SD卡调试一册通

B 硬件知识
只介绍xs128的spi驱动
  
下载 (8.96 KB)
2009-12-2 19:50
图5 spi硬件实现,引脚功能
void SPI_Init(void)
{

MODRR
= 0x00;

MODRR_MODRR4=1;
//使用PM口

DDRM|=0x38;
//对照图5可知SCK0=1,MOSI=1,SS0=1本步可以忽略,这样做复位可以抗干扰下,并且直接让//片选无效

SPI0CR1 = 0x5e;
//CPOL=1,时钟选择低有效,spsck空闲时为高电平
//CPHA=1会在发送8位数据开始sck就发生一次跳变

SPI0CR2 = 0x10;
// modfen=1 .和上面ssoe=1 确定spi在master模式下ss位从机选择输出。并允许modf标志设置

SPI0BR
= 0x17;
// 波特率设置波特率= BR=busclk/((SPPR + 1)· 2^(SPR + 1))=80M / (1+!)*2(7+1) = =80m/512156k
}
//设置spi高速
void SPI_High()
{

SPI0BR = 0x01; //BR=busclk/((SPPR + 1)· 2^(SPR + 1))=80M / 4= 20m
}
好了看到这个该懂的都懂了,其他的也不需要懂了。
剩下的就是读写字节了,读写字节spi的底层驱动就算好了,剩下的就是fat文件系统了。
详细内容详见SD卡调试一册通v100下

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
2
最后登录
1970-1-1
发表于 2010-1-18 12:55:32 | 显示全部楼层

RE:SD卡调试一册通

好东西  顶下~~~

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2010-2-2 09:07:16 | 显示全部楼层

回复:SD卡调试一册通

找了好久了 终于找到了
 

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2010-3-18 22:43:16 | 显示全部楼层

回复:SD卡调试一册通

正是我需要的,谢谢!

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2010-5-15 18:49:04 | 显示全部楼层

回复:SD卡调试一册通

楼主,我最近在调SD卡,用的是freescale的芯片MC9S08JM60,4G的金士顿SD卡,使用SPI模式,用的是DRM104SW,发送CMD0不成功,不返回0x01,而是0x00,SD初始化程序如下:
UINT8 SD_Init(void)
{
    SPI_Init();             // SPI Initialization

    SPI_SS=ENABLE;
    SD_CLKDelay(10);            // Send 80 clocks
    SPI_SS=DISABLE;
 
    gu8SD_Argument.lword=0;
    SD_CLKDelay(8); 
   
    /* IDLE Command */
   
    SPI_SS=ENABLE;
    if(SD_SendCommand(SD_CMD0|0x40,SD_IDLE))
    {
        SPI_SS=DISABLE;   //注,程序跑到这里了!!
        return(1);      // Command IDLE fail
    }
    SPI_SS=DISABLE;
   
    (void)SPI_Receive_byte();  // Dummy SPI cycle
   
    /*  Initialize SD Command */
    SPI_SS=ENABLE;
    while(SD_SendCommand(SD_CMD1|0x40,SD_OK));
    SPI_SS=DISABLE;
   
    (void)SPI_Receive_byte();  // Dummy SPI cycle
    /*  Block Length */
    SPI_SS=ENABLE;
     
    gu8SD_Argument.lword=SD_BLOCK_SIZE;
    if(SD_SendCommand(SD_CMD16|0x40,SD_OK))
    {
        SPI_SS=DISABLE;
        return(1);      // Command IDLE fail
    }
   
    SPI_SS=DISABLE;
   
   
    SPI_High_rate();
   
    SPI_Send_byte(0x00);
    SPI_Send_byte(0x00);
    //(void)SPI_Receive_byte();  // Dummy SPI cycle
    return(0);
}
期待你的帮助。

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2010-12-23 13:18:37 | 显示全部楼层

RE:SD卡调试一册通

呵呵

该用户从未签到

0

主题

15

帖子

0

新手上路

Rank: 1

积分
28
最后登录
1970-1-1
发表于 2011-1-11 22:11:52 | 显示全部楼层

RE:SD卡调试一册通

下侧在哪啊???????????

该用户从未签到

0

主题

2

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2011-3-26 09:44:12 | 显示全部楼层

RE:SD卡调试一册通

好东西,学习中!

该用户从未签到

0

主题

20

帖子

0

注册会员

Rank: 2

积分
53
最后登录
2019-8-5
发表于 2011-4-1 15:28:27 | 显示全部楼层

RE:SD卡调试一册通

正是我需要的,谢谢!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 04:34 , Processed in 0.109460 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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