?? avr的sd卡接口程序.htm
字號:
<SCRIPT src="AVR的SD卡接口程序.files/show_ads.js" type=text/javascript>
</SCRIPT>
</TD></TR></TBODY></TABLE>
<P>SD卡接口程序/************************************************************/<BR>/*
SD Code for
M32L
*/<BR>/* By
pasyong
*/<BR>/*
2006-4
*/<BR>/* Base
ICC6.31A
*/<BR>/************************************************************/<BR>#include
<iom32v.h><BR>#include <macros.h><BR>#include
"1011.h"<BR>#define uchar unsigned char<BR>#define uint unsigned
int<BR>#define MMC_CS_PIN BIT(4)
//PORTB.4 <BR>#define MMC_PORT
PORTB </P>
<P> uchar reading=0,a=0,pointer=0;<BR>void
sd_port_init()<BR>{<BR>MMC_PORT|=MMC_CS_PIN;<BR>}<BR>uchar
BUFFER[512];
//扇區緩沖區<BR>uint i=0;<BR>void delay_nus(uint
n)<BR> {<BR> unsigned char b;<BR> for (b = 1;
b<n; b++)<BR> ;<BR> }
<BR>//****************************************************************************<BR>//Send
a Command to MMC/SD-Card<BR>//Return: the second byte of response register
of
MMC/SD-Card<BR>//****************************************************************************<BR>uchar
SD_Write_Command(uchar cmd,unsigned long arg)<BR>{<BR> uchar
tmp;<BR> uchar retry=0;<BR> <BR>
//MMC_PORT|=MMC_CS_PIN;
//SD卡關閉 <BR> //send 8 Clock
Impulse<BR> Write_Byte_SPI(0xFF);<BR>
<BR> //set MMC_Chip_Select to low (MMC/SD-Card
active)<BR>
MMC_PORT&=~MMC_CS_PIN; //SD卡使能</P>
<P> Write_Byte_SPI(cmd|0x40);
//送頭命令<BR> Write_Byte_SPI(arg>>24);<BR>
Write_Byte_SPI(arg>>16); //send 6 Byte
Command to MMC/SD-Card<BR>
Write_Byte_SPI(arg>>8);<BR>
Write_Byte_SPI(arg&0xff);<BR>
Write_Byte_SPI(0x95);
//僅僅對RESET有效的CRC效驗碼<BR> <BR> //get 8 bit
response<BR> //Read_Byte_MMC(); //read the first byte,ignore
it. <BR> do <BR> { //Only last 8 bit is used
here.Read it out. <BR> tmp =
Read_Byte_SPI();<BR>
retry++;<BR> }<BR>
while((tmp==0xff)&&(retry<100));
//當沒有收到有效的命令的時候<BR> <BR>
if(reading==0)<BR>
MMC_PORT|=MMC_CS_PIN;
//MMC_CS_PIN=1;<BR> else
MMC_PORT&=~MMC_CS_PIN;
//MMC_CS_PIN=0; <BR>
return(tmp);<BR>}<BR>//****************************************************************************<BR>//SD卡初始化(SPI-MODE)<BR>//****************************************************************************<BR>uchar
SD_Init(void)<BR>{ <BR> uchar
retry,temp;<BR> uchar i;<BR>
MMC_PORT&=~MMC_CS_PIN; //SD卡使能<BR>
<BR> delay_nus(250); //Wait MMC/SD ready...<BR>
for (i=0;i<0x0f;i++) <BR>
{<BR> Write_Byte_SPI(0xff); //send 74 clock
at least!!!<BR> }<BR> //Send Command CMD0 to
MMC/SD Card<BR> retry=0;<BR> <BR>
do<BR> { //retry 200 times to send CMD0 command
<BR>
temp=SD_Write_Command(0,0);<BR>
retry++;<BR> if(retry==100)
<BR> { <BR> ;//CMD0
Error!<BR> }<BR> } <BR>
while(temp!=1); <BR> <BR> //Send Command
CMD1 to MMC/SD-Card<BR> retry=0;<BR>
do<BR> { //retry 100 times to send CMD1 command
<BR>
temp=SD_Write_Command(1,0);<BR>
retry++;<BR> if(retry==100)
<BR> { <BR>
;<BR> }<BR> } <BR>
while(temp!=0); <BR> retry=0; <BR>
SD_Write_Command(16,512);
//設置一次讀寫BLOCK的長度為512個字節<BR> <BR>
MMC_PORT|=MMC_CS_PIN; //MMC_CS_PIN=1; //set
MMC_Chip_Select to high <BR> return(0); //All commands have
been taken.<BR>}
<BR>//****************************************************************************<BR>//從SD卡讀一個扇區
Return 0 if no
Error.<BR>//****************************************************************************<BR>uchar
SD_Read_Block(unsigned long address)<BR>{ <BR> uchar
temp=0;uint i=0;<BR> reading=1; <BR>
temp=SD_Write_Command(17,address);
//讀出RESPONSE <BR> while
(Read_Byte_SPI()!= 0xfe)<BR> {;}
//直到讀取到了數據的開始頭0XFE,才繼續<BR> for(i=0; i<512;
i++)<BR> {<BR> BUFFER[i]=Read_Byte_SPI();<BR> }<BR>
Read_Byte_SPI();//CRC - Byte <BR> Read_Byte_SPI();//CRC -
Byte<BR> reading=0; <BR>
MMC_PORT|=MMC_CS_PIN;
//關閉SD卡<BR> return(temp);<BR>}</P><FONT color=#ff0000>歡迎進入<A
href="http://www.mcu123.net/bbs/" _target="_blank">超前MCU技術論壇</A>對
AVR的SD卡接口程序進行討論! <BR><BR><INPUT title=點擊復制標題和地址到剪貼版,直接在POPO/MSN上粘貼即可. onclick=copyToClipBoard() type=button value=點擊復制本網址,發給POPO/QQ/MSN好友共享>
</FONT>
<CENTER></CENTER></TD></TR>
<TR>
<TD class=Article_tdbgall align=right
colSpan=2>文章錄入:armopen 責任編輯:armopen </TD></TR>
<TR>
<TD width=5></TD>
<TD width=752>
<LI>上一篇文章: <A class=LinkPrevArticle
title="文章標題:USB-232轉換(FT232BM)完整PCB文件和說明文件。(有實物照片) 作 者:佚名 更新時間:2006-8-16 11:49:39"
href="http://www.mcu123.com/news/Article/Design/200608/204.html">USB-232轉換(FT232BM)完整PCB文件和說明文件。(有實物照片)</A><BR>
<LI>下一篇文章: 沒有了</LI></TD></TR>
<TR class=Article_tdbgall align=right>
<TD colSpan=2>【<A
href="http://www.mcu123.com/news/Article/Comment.asp?ArticleID=226"
target=_blank>發表評論</A>】【<A
href="http://www.mcu123.com/news/User/User_Favorite.asp?Action=Add&ChannelID=1&InfoID=226"
target=_blank>加入收藏</A>】【<A
href="http://www.mcu123.com/news/Article/SendMail.asp?ArticleID=226"
target=_blank>告訴好友</A>】【<A
href="http://www.mcu123.com/news/Article/Print.asp?ArticleID=226"
target=_blank>打印此文</A>】【<A
href="javascript:window.close();">關閉窗口</A>】</TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center
border=0>
<TBODY>
<TR>
<TD class=main_shadow></TD></TR><!--插入廣告JS代碼--><!--第二個廣告-->
<TR>
<TD>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-7844362911365004";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "000033";
google_color_text = "000000";
google_color_url = "0066CC";
//--></SCRIPT>
<SCRIPT src="AVR的SD卡接口程序.files/show_ads.js" type=text/javascript>
</SCRIPT>
</TD></TR></TBODY></TABLE><!--文章顯示代碼結束--><!--最新熱點、最新推薦、相關文章代碼開始-->
<TABLE class=center_tdbgall style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD class=main_title_282 width="33%"><B>最新熱點</B></TD>
<TD width=5 rowSpan=2></TD>
<TD class=main_title_282 width="33%"><B>最新推薦</B></TD>
<TD width=5 rowSpan=2></TD>
<TD class=main_title_282 width="33%"><B>相關文章</B></TD></TR>
<TR>
<TD class=main_tdbg_760 vAlign=top height=100>
<SCRIPT language=javascript
src="AVR的SD卡接口程序.files/Article_Hot3.js"></SCRIPT>
</TD>
<TD class=main_tdbg_760 vAlign=top width="33%">
<SCRIPT language=javascript
src="AVR的SD卡接口程序.files/Article_Elite3.js"></SCRIPT>
</TD>
<TD class=main_tdbg_760 vAlign=top width="33%"><A
class=LinkArticleCorrelative
title="文章標題:CSD在GSM-R手持終端的實現 作 者:劉剛 戴未央 更新時間:2006-10-11 10:26:30"
href="http://www.mcu123.com/news/Article/uc/uc8051/200610/2331.html"
target=_self>CSD在GSM-R手持終端的實現</A><BR><A class=LinkArticleCorrelative
title="文章標題:結構化的平板電視OSD界面設計 作 者:飛利浦公司顯示事業部 陳金榮 更新時間:2006-10-11 10:25:03"
href="http://www.mcu123.com/news/Article/uc/uc8051/200610/2319.html"
target=_self>結構化的平板電視OSD界面設計</A><BR><A class=LinkArticleCorrelative
title="文章標題:LSD-2C智能開口閃點測定儀 作 者:長春工業大學計算機學院 閻智義 陳戈珩 更新時間:2006-9-15 12:54:09"
href="http://www.mcu123.com/news/Article/all/dc/200609/2215.html"
target=_self>LSD-2C智能開口閃點測定儀</A><BR><A class=LinkArticleCorrelative
title="文章標題:基于uPSD3200的人機對話設計 作 者:田育民 劉思偉 更新時間:2006-9-15 12:00:35"
href="http://www.mcu123.com/news/Article/uc/uc8051/200609/2000.html"
target=_self>基于uPSD3200的人機對話設計</A><BR><A class=LinkArticleCorrelative
title="文章標題:高精度時鐘芯片SD2001E及其應用 作 者:黑龍江八一農墾大學 李 敏 孟 臣 更新時間:2006-9-15 11:46:10"
href="http://www.mcu123.com/news/Article/uc/uc8051/200609/1860.html"
target=_self>高精度時鐘芯片SD2001E及其應</A><BR><A class=LinkArticleCorrelative
title="文章標題:基于PSD3XX與ADMC401接口設計的無功發生器系統 作 者:劉 建 朱約章 吳春芳 程漢湘 更新時間:2006-9-15 11:44:37"
href="http://www.mcu123.com/news/Article/uc/uc8051/200609/1839.html"
target=_self>基于PSD3XX與ADMC401接口設計</A><BR><A class=LinkArticleCorrelative
title="文章標題:基于SDA80D51的以太電話機的設計 作 者:劉紅云 更新時間:2006-9-15 10:49:04"
href="http://www.mcu123.com/news/Article/all/TX/200609/1676.html"
target=_self>基于SDA80D51的以太電話機的</A><BR><A class=LinkArticleCorrelative
title="文章標題:實現Ethernet over SDH的嵌入式系統研究 作 者:雷 肖 殷小貢 更新時間:2006-9-15 10:46:55"
href="http://www.mcu123.com/news/Article/all/TX/200609/1659.html"
target=_self>實現Ethernet over SDH的嵌入</A><BR><A
class=LinkArticleCorrelative
title="文章標題:為適應未來而設計 的SONET/SDH 作 者:PMC-Serria 更新時間:2006-9-15 10:30:53"
href="http://www.mcu123.com/news/Article/all/TX/200609/1507.html"
target=_self>為適應未來而設計 的SONET/S</A><BR><A class=LinkArticleCorrelative
title="文章標題:SDH凈荷提取/定位處理芯片PM5313及其應用 作 者:鄭春暉 劉興春 李 錚 叢 凱 更新時間:2006-9-15 10:29:34"
href="http://www.mcu123.com/news/Article/all/TX/200609/1493.html"
target=_self>SDH凈荷提取/定位處理芯片PM</A><BR></TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center
border=0>
<TBODY>
<TR>
<TD class=main_shadow></TD></TR></TBODY></TABLE><!--最新熱點、最新推薦、相關文章代碼結束--><!--網友評論代碼開始-->
<TABLE class=center_tdbgall style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR class=main_title_760>
<TD height=25> <STRONG>網友評論:</STRONG><SPAN
style="COLOR: #ff0000">(只顯示最新10條。評論內容只代表網友觀點,與本站立場無關!) </SPAN></TD></TR>
<TR>
<TD class=main_tdbg_760>
<SCRIPT language=javascript src="AVR的SD卡接口程序.files/Comment.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center
border=0>
<TBODY>
<TR>
<TD class=main_shadow></TD></TR></TBODY></TABLE><!--網友評論代碼結束--><!-- ********網頁中部代碼結束******** --><!-- ********網頁底部代碼開始******** -->
<TABLE cellSpacing=0 cellPadding=0 width=778 align=center border=0>
<TBODY>
<TR>
<TD class=menu_bottombg align=middle>| <A class=Bottom
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.mcu123.com');"
href="http://www.mcu123.com/news/$">設為首頁</A> | <A class=Bottom
href="javascript:window.external.addFavorite('http://www.mcu123.com','超前科技開發網');">加入收藏</A>
| <A class=Bottom href="http://www.mcu123.com/www/fukuan.asp">聯系我們</A> |
<A class=Bottom href="http://www.mcu123.com/link" target=_blank>友情鏈接</A> |
<A class=Bottom href="http://www.mcu123.com/news/Copyright.asp"
target=_blank>版權申明</A> | <A class=Bottom
href="http://www.mcu123.com/news/Announcelist.asp" target=_blank>網站公告</A>
</TD></TR>
<TR>
<TD class=bottom_bg height=80>
<TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
<TBODY>
<TR>
<TD><IMG height=80 src="AVR的SD卡接口程序.files/bottom_left.gif"
width=9></TD>
<TD align=middle width="80%">Copyright 2003-2006 <A
href="http://www.mcu123.com/"><FONT
color=#ff0000>www.mcu123.com</FONT></A>© All Rights Reserved<BR>版權所有
© 超前科技開發網 <BR><A href="http://www.miibeian.gov.cn/"
target=_blank>粵ICP備05005262號</A> <BR>
<SCRIPT src="AVR的SD卡接口程序.files/count.htm"></SCRIPT>
<SCRIPT src="AVR的SD卡接口程序.files/urchin.js" type=text/javascript>
</SCRIPT>
<SCRIPT type=text/javascript>
_uacct = "UA-465386-3";
urchinTracker();
</SCRIPT>
</TD>
<TD align=right><IMG height=80 src="AVR的SD卡接口程序.files/bottom_r.gif"
width=9></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- ********網頁底部代碼結束******** --><NOSCRIPT><IFRAME
src="AVR的SD卡接口程序.files/CAI3CXQJ.htm" width=0
height=0></IFRAME></IFRAME></NOSCRIPT></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -