- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SD卡硬件原理图及其读写程序
SD卡硬件原理图及其读写程序2011-03-28 17:45转载自 sail_007最终编辑 sail_007 最近开始整理以前画过原理图和程序今天先整理出了SD卡的硬件和SPI方式的读写程序。今后会陆续写把DS1302时钟芯片GPRS模块CAN总线通信PWM数控电压也整理出来。一方面是想帮自己总结一下另外如果还能帮助到其他的单片机爱好者那也就更好了。当然水平有限整理出来的东西可能也有许多错误的地方也请高手能指出不胜感激。 先发张SD卡的原理图。说明我用的是5V单片机SD卡则是3.3v如果直接连接引脚长期使用会影响SD卡寿命。我一开始选用了普通的光耦触发可能是导通速率不够快无法实现SPI通信后来我就改用9013就行了。 下图上US1是SD卡壳其实1到9引脚对应了SD卡的9个引脚10号引脚是卡插入标志也就是说当有SD卡插入时10号引脚会接3.3v的地这样单片机就可以查询是否有卡了。在SPI总线模式下CS为主控制器向卡发送的片选信号SCLK为主控制器向卡发送的时钟信号INDataIn为主控制器向卡发送的单向数据信号MISODataOut为卡向主控制器发送的单向数据信号。 程序如下说明我用的是freescale的DP256单片机该单片机有SPI设备接口只要将其初始化成功便可完成通信设置。 uchar CMD0RespCMD1RespCMD59RespCMD16RespCMD9RespCMD17RespCMD24RespCMD58Resp void SD_Initializevoid uchar csdbuf16TempValue uchar cmdparam4recbuf600resp4resptype uchar sendbuf600 ulong len ulong i ulong BlockAdd SD_InsertDetect Pim.pts.bit.pts70 //cs0 SD_SPIDelay25 Pim.pts.bit.pts71 //cs1 SD_SPIDelay2 Pim.ddrs.bit.ddrs70 //pin cs direction Spi0.spicr1.bit.spe0 //spi enable Pim.ddrs.bit.ddrs71 //pin cs direction Pim.pts.bit.pts70//cs0 Spi0.spibr.byte0x02 //8MHz31.25kHz 0x07-0x00 Spi0.spicr1.bit.mstr1 //master mode Spi0.spicr1.bit.ssoe1 //ss output enable Spi0.spicr1.bit.cpol0 //cpol0 //cpol1 070215 Spi0.spicr1.bit.cpha0 //cpha0 Spi0.spicr2.byte0x18 //normal drive input pullup TempValueSpi0.spisr.byte//clear SPIF first step TempValueSpi0.spidr.byte//clear SPIF second step Spi0.spicr1.bit.spe1 //spi enable CMD0RespSD_ResetSD CMD1RespSD_ActiveInit whileCMD1Resp0x01 CMD1RespSD_ActiveInit 白开水易拉罐主页博客相册个人档案好友i贴吧看看Ta是谁吧页码1/5Ww2011/6/26/wolf9s/blog/item/47e2a62021298c.htmlvoid SD_SPIDelayuint value uint i for i 0 i valuei SPI_SendByte0xFF // 发送0xFF clock out 0xFF uchar SD_ResetSDvoid uchar param4 0000resp SD_SendCmdCMD0 param SD_R1 resp return resp / 函数名称: void SPI_SendByte Name: void SPI_SendByte 功能描述: 通过SPI接口发送一个字节 Function: send a byte by SPI interface 输 入: INT8U byte: 发送的字节 Input: INT8U byte: the byte that will be send 输 出: 无 Output: NULL / void SPI_SendByteuchar byte uchar TempValue Spi0.spidr.byte byte / 发送数据放入SPI数据寄存器 /
您可能关注的文档
- 江西省南昌二中2011-2012学年高二下学期期中考试语文试题.doc
- PS教程PS打造清新雅致樱花文字特效.doc
- 江西省南昌二中2011-2012学年高二下学期期末考试化学试题.doc
- 江西省南昌二中2011-2012学年高二下学期期中考试生物试题.doc
- 江西省南昌二中2011-2012学年高二下学期期末考试政治试题.doc
- 江西省南昌二中2011-2012学年高二下学期期末考试历史试题.doc
- PS教程制作漂亮的橙色塑胶字和金属字.doc
- 江西省南昌二中2011-2012学年高二下学期期末考试物理试题.doc
- 江西省南昌二中2011-2012学年高二下学期期末考试语文试题.doc
- PS教程手把手教你绘制逼真黑板粉笔字.doc
文档评论(0)