ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:35.84KB ,
资源ID:4803058      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4803058.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模电资料库SD卡SD模式读写的方式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

模电资料库SD卡SD模式读写的方式.docx

1、模电资料库SD卡SD模式读写的方式大家读写SD卡怎么不用SD模式方式读取,是SPI方式读取简单? 下面贴一段代码,是在FPGA上程序,只能用SD模式进行读,没有文件系统,没有用AVR硬件实现, 电路图: 电路说明,SD_DAT3一直给高电平 程序: #ifndef_SD_Card_H_ #define_SD_Card_H_ #defineHigh1 #defineLow0 /- /SDCardSetI/ODirection #defineSD_CMD_INDDRX.1=Low #defineSD_CMD_OUTDDRX.1=High #defineSD_DAT_INDDRX.2=Low #de

2、fineSD_DAT_OUTDDRX.2=High #defineSD_CLK_OUTDDRX.3=High #defineSD_DAT3_OUTDDRX.0=High /SDCardOutputHigh/Low #defineSD_CMD_LOWPORTX.1=Low #defineSD_CMD_HIGHPORTX.1=High #defineSD_DAT_LOWPORTX.2=Low #defineSD_DAT_HIGHPORTX.2=High #defineSD_CLK_LOWPORTX.3=Low #defineSD_CLK_HIGHPORTX.3=High #defineSD_DAT

3、3_HIGHPORTX.0=High /SDCardInputRead #defineSD_TEST_CMDPINX.1 #defineSD_TEST_DATPINX.2 /- #defineBYTEunsignedchar #defineUINT16unsignedint #defineUINT32unsignedlong /- voidNcr(void); voidNcc(void); BYTEresponse_R(BYTE); BYTEsend_cmd(BYTE*); BYTESD_read_lba(BYTE*,UINT32,UINT32); BYTESD_card_init(void)

4、; /- BYTEread_status; BYTEresponse_buffer20; BYTERCA2; BYTEcmd_buffer5; constBYTEcmd05=0x40,0x00,0x00,0x00,0x00; constBYTEcmd555=0x77,0x00,0x00,0x00,0x00; constBYTEcmd25=0x42,0x00,0x00,0x00,0x00; constBYTEcmd35=0x43,0x00,0x00,0x00,0x00; constBYTEcmd75=0x47,0x00,0x00,0x00,0x00; constBYTEcmd95=0x49,0x

5、00,0x00,0x00,0x00; constBYTEcmd165=0x50,0x00,0x00,0x02,0x00; constBYTEcmd175=0x51,0x00,0x00,0x00,0x00; constBYTEacmd65=0x46,0x00,0x00,0x00,0x02; constBYTEacmd415=0x69,0x0f,0xf0,0x00,0x00; constBYTEacmd515=0x73,0x00,0x00,0x00,0x00; /- voidNcr(void) SD_CMD_IN; SD_CLK_LOW; SD_CLK_HIGH; SD_CLK_LOW; SD_C

6、LK_HIGH; /- voidNcc(void) inti; for(i=0;i8;i+) SD_CLK_LOW; SD_CLK_HIGH; /- BYTESD_card_init(void) BYTEx,y; SD_CMD_OUT; SD_DAT_IN; SD_CLK_HIGH; SD_CMD_HIGH; SD_DAT_LOW; read_status=0; for(x=0;x40;x+) Ncr(); for(x=0;x5;x+) cmd_bufferx=cmd0x; y=send_cmd(cmd_buffer); do for(x=0;x40;x+); Ncc(); for(x=0;x

7、1)/responsetoolongorcrcerror return1; Ncc(); for(x=0;x5;x+) cmd_bufferx=acmd41x; y=send_cmd(cmd_buffer); Ncr(); while(response_R(3)=1); Ncc(); for(x=0;x1) return1; Ncc(); for(x=0;x1) return1; RCA0=response_buffer1; RCA1=response_buffer2; Ncc(); for(x=0;x1) return1; Ncc(); for(x=0;x1) return1; Ncc();

8、 for(x=0;x1) return1; read_status=1;/sdcardready return0; /- BYTESD_read_lba(BYTE*buff,UINT32lba,UINT32seccnt) BYTEc=0; UINT32i,j; lba+=101; for(j=0;j15)&0xff; cmd_buffer2=(lba7)&0xff; cmd_buffer3=(lba1)&0xff; cmd_buffer4=0; lba+; send_cmd(cmd_buffer); Ncr(); while(1) SD_CLK_LOW; SD_CLK_HIGH; if(!(S

9、D_TEST_DAT) break; for(i=0;i512;i+) BYTEk; for(k=0;k8;k+) SD_CLK_LOW; SD_CLK_HIGH; c=1; if(SD_TEST_DAT) c|=0x01; *buff=c; buff+; for(i=0;i100) return2; crc=0; if(s=2) j=17; for(k=0;k0)/forcrcculcar b=response_bufferk-1; for(i=0;i0) c0) crc=1; if(crcb)&0x80) crc=0x09; b=1; crc&=0x7f; if(s=3) if(k=1&(

10、!(c&0x80) r=1; response_bufferk=c; if(s=1|s=6) if(c!=(crc1)+1) r=2; returnr; /- BYTEsend_cmd(BYTE*in) inti,j; BYTEb,crc=0; SD_CMD_OUT; for(i=0;i5;i+) b=ini; for(j=0;j8;j+) SD_CLK_LOW; if(b&0x80) SD_CMD_HIGH; else SD_CMD_LOW; crc=1; SD_CLK_HIGH; if(crcb)&0x80) crc=0x09; b=1; crc&=0x7f; crc=(crc1)|0x0

11、1); b=crc; for(j=0;j8;j+) SD_CLK_LOW; if(crc&0x80) SD_CMD_HIGH; else SD_CMD_LOW; SD_CLK_HIGH; crc=1; returnb; /- #endif 这些程序有些我也不明白,贴出来希望大家一起探讨交流,打破网站SD卡用SPI方式读写的垄断局面,哈哈,sd模式下应该有4各data吧,怎么你的只用一个?SPI模式是1Bit的 SD模式是1Bit或4Bit SD卡确实也像USB一样分为全速(FULL-SPEED)卡和低速卡(LOW-SPEED)。全速卡支持SPI, 1BIT和4BIT的传输模式,可以工作在0-25MHz,并且可以提供高达10MB/S的传输速率;低速卡 仅支持SPI和1BIT的传输模式,4BIT属于可选模式,可以工作在0-400KHz.在SD模式下,用软件将数据拆分,计算CRC16的时间都占了大头,实际速度不比SPI模式快多少!SD模式的读有优势吧。写的时候SD模式下就多了CRC16(刚接触实际的东西,所以不太了解CRC16的时间问题,见笑),但是读不管哪种模式下,不是都有CRC校验的?SD模式到底还有那些优势呢,请教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1