⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用io模拟方式读写三星系列的nand flash.htm

📁 用IO模拟方式读写三星系列的NAND FLASH的文章. 不错的
💻 HTM
📖 第 1 页 / 共 2 页
字号:
google_ad_width = 200;
google_ad_height = 90;
google_ad_format = "200x90_0ads_al";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_text = "000000";
google_color_url = "008000";
//--></SCRIPT>

            <SCRIPT src="用IO模拟方式读写三星系列的NAND FLASH.files/show_ads.js" 
            type=text/javascript>
</SCRIPT>
            <BR>
            <SCRIPT type=text/javascript><!--
google_ad_client = "pub-7844362911365004";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_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="用IO模拟方式读写三星系列的NAND FLASH.files/show_ads.js" 
            type=text/javascript>
</SCRIPT>
          </TD></TR></TBODY></TABLE>
      <P align=center><FONT size=5>用IO模拟方式读写三星系列的NAND FLASH</FONT></P>
      <P>&nbsp;&nbsp;&nbsp; 三星系列的NAND 
      FLASH芯片容量从8MB到256MB(最近听说有1G容量的了),对于需要大容量数据存储的嵌入式系统是一个很好的选择,尤其是其接近1MB/元的高性价比,更是普通nor 
      flash无法比拟的。本文以K9F2808U0C为例,采用AVR芯片连接,进行了初步的读写试验,完成了芯片的ID读出功能。</P>
      <P>电路连接如下图:<BR><IMG height=179 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103448186.gif" width=360 
      border=0><IMG height=208 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103448109.gif" width=321 
      border=0></P>
      <P>&nbsp;&nbsp;&nbsp; 
      左边是所使用的AVR芯片ATmega16L的局部电路,右边是K9F2808芯片的连接图,数据/地址总线使用ATmega16的PORTB端口连接,其它全部所需信号线使用IO连接,组成了IO模拟方式。</P>
      <P>&nbsp;&nbsp;&nbsp; K9F2808芯片的全部命令字如下:<BR><IMG height=179 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103448586.gif" width=643 
      border=0><BR>&nbsp;&nbsp;&nbsp; 
      其中,Read1读取的是普通数据存储区域的数据,Read2读取的是每页存储器附加的16Bytes区域的数据;Page 
      Program可以编程一页最大528Bytes的数据,Block Erase擦除指定页面数据,Read Status可以读取芯片状态。</P>
      <P>&nbsp;&nbsp;&nbsp; 
      芯片的整个读写时序可以分解为4个基本步骤,即1、命令写入,2、数据写入,3、数据读出,4、地址写入。</P>
      <P>&nbsp;&nbsp; 1、命令写入时序如下:<BR><IMG height=262 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103449904.gif" width=499 
      border=0><BR>对应函数为:<BR><FONT size=2><B>void</B> WriteCmd(<B>unsigned</B> 
      <B>char</B> cmd)<BR>{<BR>nandPortD = 
      0xFF;<BR>ClsLine(nandSPortO,nandALE);<BR>ClsLine(nandSPortO,nandnCE);<BR>SetLine(nandSPortO,nandCLE);<BR>ClsLine(nandSPortO,nandnWE);<BR>nandPortO 
      = 
      cmd;<BR>SetLine(nandSPortO,nandnWE);<BR>ClsLine(nandSPortO,nandCLE);<BR>SetLine(nandSPortO,nandALE);<BR>}<BR></FONT><BR>&nbsp;&nbsp;&nbsp; 
      2、数据写入时序如下:<BR><IMG height=290 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103449344.gif" width=507 
      border=0><BR>对应函数为:<BR><FONT size=2><B>void</B> WriteByte(<B>unsigned</B> 
      <B>char</B> Wdata)<BR>{<BR>nandPortD = 
      0xFF;<BR>SetLine(nandSPortO,nandnWE);<BR>ClsLine(nandSPortO,nandCLE);<BR>ClsLine(nandSPortO,nandnCE);<BR>ClsLine(nandSPortO,nandALE);<BR>ClsLine(nandSPortO,nandnWE);<BR><B>while</B>((nandSPortI 
      &amp; nandRnB) != nandRnB); </FONT><FONT color=#008000 size=2>// wait busy 
      end</FONT><FONT size=2><BR>nandPortO = Wdata;<BR><B>while</B>((nandSPortI 
      &amp; nandRnB) != nandRnB); </FONT><FONT color=#008000 size=2>// wait busy 
      end</FONT><FONT 
      size=2><BR>SetLine(nandSPortO,nandnWE);<BR>}<BR><BR></FONT>&nbsp;&nbsp;&nbsp; 
      3、数据读出时序如下:<BR><IMG height=233 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103449858.gif" width=507 
      border=0><BR>对应函数为:<BR><FONT size=2><B>unsigned</B> <B>char</B> 
      ReadByte(<B>void</B>)<BR>{<BR><B>unsigned</B> <B>char</B> 
      Rdata;<BR>nandPortD = 
      0x00;<BR>SetLine(nandSPortO,nandnWE);<BR>ClsLine(nandSPortO,nandCLE);<BR>ClsLine(nandSPortO,nandALE);<BR>ClsLine(nandSPortO,nandnCE);<BR>ClsLine(nandSPortO,nandnRE);<BR><B>while</B>((nandSPortI 
      &amp; nandRnB) != nandRnB); </FONT><FONT color=#008000 size=2>// wait busy 
      end</FONT><FONT size=2><BR>Rdata = nandPortI;<BR><B>while</B>((nandSPortI 
      &amp; nandRnB) != nandRnB); </FONT><FONT color=#008000 size=2>// wait busy 
      end</FONT><FONT size=2><BR>SetLine(nandSPortO,nandnRE);<BR><B>return</B> 
      Rdata;<BR>}<BR></FONT><BR>&nbsp;&nbsp;&nbsp; 4、地址写入时序如下:<BR><IMG 
      height=265 src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103449874.gif" 
      width=495 border=0><BR>对应函数为:<FONT size=2><B><BR>void</B> 
      WriteByteAdd(<B>unsigned</B> <B>char</B> Add)<BR>{<BR>nandPortD = 
      0xFF;<BR>SetLine(nandSPortO,nandnWE);<BR>ClsLine(nandSPortO,nandnCE);<BR>ClsLine(nandSPortO,nandCLE);<BR>SetLine(nandSPortO,nandALE);<BR>ClsLine(nandSPortO,nandnWE);<BR>nandPortO 
      = Add;<BR>SetLine(nandSPortO,nandnWE);<BR><B>while</B>((nandSPortI &amp; 
      nandRnB) != nandRnB); </FONT><FONT color=#008000 size=2>// wait busy 
      end</FONT><FONT size=2><BR>ClsLine(nandSPortO,nandALE);<BR>}</FONT></P>
      <P>&nbsp;&nbsp;&nbsp; 
      其余操作方式均从这四种基本操作组合变化而来,适当调用或者重新编写其中的某些语句就能完成全部的K9F2808芯片读写操作。</P>
      <P>&nbsp;&nbsp;&nbsp; 下面以读K9F2808芯片ID为例调用以上函数完成。<BR>&nbsp;&nbsp;&nbsp; 
      读芯片ID的时序如下图:<BR><IMG height=220 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/20060829103449826.gif" width=499 
      border=0><BR>实现函数编写为:<BR><FONT size=2><B>void</B> ReadId(<B>unsigned</B> 
      <B>char</B> *ptr)<BR>{<BR>WriteCmd(0x90);<BR>WriteByteAdd(0x00);<BR>*ptr++ 
      = ReadByte();<BR>*ptr = 
      ReadByte();<BR>SetLine(nandSPortO,nandnCE);<BR>}<BR></FONT>函数调用后,*ptr的值为0xEC,即厂家代码;*(ptr+1)的值为0x73,即设备代码。</P>
      <P>&nbsp;&nbsp;&nbsp; 
      实际在芯片的读写操作中,还要注意对坏扇区进行检错,并将检错结果存入芯片的第一个块中,以确保数据的读写地址均为有效地址。</P><FONT 
      color=#ff0000>欢迎进入<A href="http://www.mcu123.net/bbs/" 
      _target="_blank">超前MCU技术论坛</A>对用IO模拟方式读写三星系列的NAND FLASH进行讨论! <BR></FONT>
      <CENTER></CENTER></TD></TR>
  <TR>
    <TD class=Article_tdbgall align=right 
      colSpan=2>文章录入:armopen&nbsp;&nbsp;&nbsp;&nbsp;责任编辑:armopen&nbsp;</TD></TR>
  <TR>
    <TD width=5></TD>
    <TD width=752>
      <LI>上一篇文章: <A class=LinkPrevArticle 
      title="文章标题:avr&nbsp;GCC参数详解&#13;&#10;作&nbsp;&nbsp;&nbsp;&nbsp;者:佚名&#13;&#10;更新时间:2006-8-23 12:08:20" 
      href="http://www.mcu123.com/news/Article/uc/AVR/200608/243.html">avr&nbsp;GCC参数详解</A><BR>
      <LI>下一篇文章: <A class=LinkNextArticle 
      title="文章标题:ATmega16与触摸屏的连接&#13;&#10;作&nbsp;&nbsp;&nbsp;&nbsp;者:佚名&#13;&#10;更新时间:2006-8-29 10:36:14" 
      href="http://www.mcu123.com/news/Article/uc/AVR/200608/287.html">ATmega16与触摸屏的连接</A></LI></TD></TR>
  <TR class=Article_tdbgall align=right>
    <TD colSpan=2>【<A 
      href="http://www.mcu123.com/news/Article/Comment.asp?ArticleID=286" 
      target=_blank>发表评论</A>】【<A 
      href="http://www.mcu123.com/news/User/User_Favorite.asp?Action=Add&amp;ChannelID=1&amp;InfoID=286" 
      target=_blank>加入收藏</A>】【<A 
      href="http://www.mcu123.com/news/Article/SendMail.asp?ArticleID=286" 
      target=_blank>告诉好友</A>】【<A 
      href="http://www.mcu123.com/news/Article/Print.asp?ArticleID=286" 
      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="用IO模拟方式读写三星系列的NAND FLASH.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="用IO模拟方式读写三星系列的NAND FLASH.files/Article_Hot3.js"></SCRIPT>
    </TD>
    <TD class=main_tdbg_760 vAlign=top width="33%">
      <SCRIPT language=javascript 
      src="用IO模拟方式读写三星系列的NAND FLASH.files/Article_Elite3.js"></SCRIPT>
    </TD>
    <TD class=main_tdbg_760 vAlign=top width="33%">没有相关文章</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="用IO模拟方式读写三星系列的NAND FLASH.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="用IO模拟方式读写三星系列的NAND FLASH.files/bottom_left.gif" width=9></TD>
          <TD align=middle width="80%">Copyright 2003-2006 <A 
            href="http://www.mcu123.com/"><FONT 
            color=#ff0000>http://www.mcu123.com/</FONT></A>&copy; All Rights 
            Reserved<BR>版权所有 &copy; 超前科技开发网<BR><A href="http://www.miibeian.gov.cn/" 
            target=_blank>粤ICP备05005262号</A> <BR>
            <SCRIPT src="用IO模拟方式读写三星系列的NAND FLASH.files/count.htm"></SCRIPT>

            <SCRIPT src="用IO模拟方式读写三星系列的NAND FLASH.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="用IO模拟方式读写三星系列的NAND FLASH.files/bottom_r.gif" 
        width=9></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- ********网页底部代码结束******** --><NOSCRIPT><IFRAME 
src="用IO模拟方式读写三星系列的NAND FLASH.files/CAA12D8T.htm" width=0 
height=0></IFRAME></IFRAME></NOSCRIPT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -