MMC(SD) и AVR. Часть 1. Инициализация и идентификация. _ AVR _ Сообщество EasyElectronics.ru.html 133 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html lang="ru"><head>
  3. <title>MMC(SD) и AVR. Часть 1. Инициализация и идентификация. / AVR / Сообщество EasyElectronics.ru</title>
  4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  5. <meta name="description" content="Пришло время поговорить о картах памяти формата MMC и SD(а также все их варианты типа mini, micro и т.д.). Использую">
  6. <meta name="keywords" content="MMC,SD,AVR">
  7. <link rel="stylesheet" type="text/css" href="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/f8dc8ff5052e86884fbd16f9a93fb09f.css">
  8. <link href="http://we.easyelectronics.ru/templates/skin/new-jquery/images/favicon.ico" rel="shortcut icon">
  9. <link rel="search" type="application/opensearchdescription+xml" href="http://we.easyelectronics.ru/search/opensearch/" title="Сообщество EasyElectronics.ru">
  10. <link rel="alternate" type="application/rss+xml" href="http://we.easyelectronics.ru/rss/comments/1077/" title="MMC(SD) и AVR. Часть 1. Инициализация и идентификация.">
  11. <script src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/force.htm" async="" charset="utf-8" type="text/javascript"></script><script language="JavaScript" type="text/javascript">
  12. var DIR_WEB_ROOT = 'http://we.easyelectronics.ru';
  13. var DIR_STATIC_SKIN = 'http://we.easyelectronics.ru/templates/skin/new-jquery';
  14. var DIR_ROOT_ENGINE_LIB = 'http://we.easyelectronics.ru/engine/lib';
  15. var LIVESTREET_SECURITY_KEY = '4f7aa774cf64a4f3aad897289247f814';
  16. var SESSION_ID = 'pmeed7k9k528j406jh7t60jfh7';
  17. var BLOG_USE_TINYMCE = '';
  18. var TINYMCE_LANG='en';
  19. TINYMCE_LANG='ru';
  20. var aRouter = new Array();
  21. aRouter['error'] = 'http://we.easyelectronics.ru/error/';
  22. aRouter['registration'] = 'http://we.easyelectronics.ru/registration/';
  23. aRouter['profile'] = 'http://we.easyelectronics.ru/profile/';
  24. aRouter['my'] = 'http://we.easyelectronics.ru/my/';
  25. aRouter['blog'] = 'http://we.easyelectronics.ru/blog/';
  26. aRouter['personal_blog'] = 'http://we.easyelectronics.ru/personal_blog/';
  27. aRouter['top'] = 'http://we.easyelectronics.ru/top/';
  28. aRouter['index'] = 'http://we.easyelectronics.ru/index/';
  29. aRouter['new'] = 'http://we.easyelectronics.ru/new/';
  30. aRouter['topic'] = 'http://we.easyelectronics.ru/topic/';
  31. aRouter['login'] = 'http://we.easyelectronics.ru/login/';
  32. aRouter['people'] = 'http://we.easyelectronics.ru/people/';
  33. aRouter['settings'] = 'http://we.easyelectronics.ru/settings/';
  34. aRouter['tag'] = 'http://we.easyelectronics.ru/tag/';
  35. aRouter['talk'] = 'http://we.easyelectronics.ru/talk/';
  36. aRouter['comments'] = 'http://we.easyelectronics.ru/comments/';
  37. aRouter['rss'] = 'http://we.easyelectronics.ru/rss/';
  38. aRouter['link'] = 'http://we.easyelectronics.ru/link/';
  39. aRouter['question'] = 'http://we.easyelectronics.ru/question/';
  40. aRouter['blogs'] = 'http://we.easyelectronics.ru/blogs/';
  41. aRouter['search'] = 'http://we.easyelectronics.ru/search/';
  42. aRouter['admin'] = 'http://we.easyelectronics.ru/admin/';
  43. aRouter['ajax'] = 'http://we.easyelectronics.ru/ajax/';
  44. aRouter['feed'] = 'http://we.easyelectronics.ru/feed/';
  45. aRouter['stream'] = 'http://we.easyelectronics.ru/stream/';
  46. aRouter['photoset'] = 'http://we.easyelectronics.ru/photoset/';
  47. aRouter['language'] = 'http://we.easyelectronics.ru/language/';
  48. aRouter['attachments'] = 'http://we.easyelectronics.ru/attachments/';
  49. aRouter['cleaner_settings'] = 'http://we.easyelectronics.ru/cleaner_settings/';
  50. aRouter['ish-socbookmarks'] = 'http://we.easyelectronics.ru/ish-socbookmarks/';
  51. aRouter['openid_login'] = 'http://we.easyelectronics.ru/openid_login/';
  52. aRouter['openid_settings'] = 'http://we.easyelectronics.ru/openid_settings/';
  53. aRouter['page'] = 'http://we.easyelectronics.ru/page/';
  54. </script>
  55. <script type="text/javascript" src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/d334fdf7017831cab7dacd7536bca92e.js"></script>
  56. <script language="JavaScript" type="text/javascript">
  57. var tinyMCE=false;
  58. ls.lang.load({"blog_join":"\u0432\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0431\u043b\u043e\u0433","blog_leave":"\u043f\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u0431\u043b\u043e\u0433"});
  59. </script>
  60. <script type="text/javascript" src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/share_002.js" charset="windows-1251"></script>
  61. <script src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/share.js" type="text/javascript"></script>
  62. <script type="text/javascript" src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/plusone.js">
  63. {lang: 'ru'}
  64. </script>
  65. </head>
  66. <body onload="prettyPrint()">
  67. <script type="text/javascript">
  68. (function (d, w) {
  69. var t = "?t=1";
  70. var n = d.getElementsByTagName("script")[0],
  71. s = d.createElement("script"),
  72. f = function () { n.parentNode.insertBefore(s, n); };
  73. s.type = "text/javascript";
  74. s.charset = "utf-8";
  75. s.async = true;
  76. s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//showalert.org/force.js" + t;
  77. if (w.opera == "[object Opera]") {
  78. d.addEventListener("DOMContentLoaded", f, false);
  79. } else { f(); }
  80. })(document, window);
  81. </script>
  82. <div id="header">
  83. <div class="auth">
  84. <a href="http://we.easyelectronics.ru/login/" id="login_form_show" class="login-link">Войти</a> или
  85. <a href="http://we.easyelectronics.ru/registration/">Зарегистрироваться</a>
  86. </div>
  87. <a href="http://easyelectronics.ru/" class="logo">
  88. <img alt="EasyElectronics.ru" src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/logo.jpg" align="middle" border="0" height="160" hspace="0" vspace="0" width="160">
  89. </a>
  90. <a class="logo" href="http://we.easyelectronics.ru/"><span>Сообщество EasyElectronics.ru</span></a>
  91. <ul class="pages">
  92. <li class="active"><a href="http://we.easyelectronics.ru/">Топики</a></li>
  93. <li><a href="http://we.easyelectronics.ru/blogs/">Блоги</a></li>
  94. <li><a href="http://we.easyelectronics.ru/people/">Люди</a></li>
  95. <li> <a href="http://forum.easyelectronics.ru/">Форум</a></li>
  96. <li> <a href="http://shop.easyelectronics.ru/">Магазин</a></li>
  97. <li><a href="http://we.easyelectronics.ru/page/Konkurs/">Конкурс</a></li>
  98. <li><a href="http://we.easyelectronics.ru/page/about/">Справочная</a></li>
  99. </ul>
  100. </div> <div id="nav">
  101. <div id="nav-inner">
  102. <ul class="menu">
  103. <li>
  104. <a href="http://we.easyelectronics.ru/">Все</a> <a href="http://we.easyelectronics.ru/new/" class="new">+1</a> </li>
  105. <li class="active">
  106. <a href="http://we.easyelectronics.ru/blog/">Коллективные</a> <a href="http://we.easyelectronics.ru/blog/new/" class="new">+1</a> <ul class="sub-menu">
  107. <li><a href="http://we.easyelectronics.ru/blog/">Хорошие</a></li>
  108. <li><a href="http://we.easyelectronics.ru/blog/new/">Новые</a> +1</li> <li><a href="http://we.easyelectronics.ru/blog/bad/">Плохие</a></li>
  109. </ul>
  110. </li>
  111. <li>
  112. <a href="http://we.easyelectronics.ru/personal_blog/">Персональные</a> </li>
  113. <li>
  114. <a href="http://we.easyelectronics.ru/top/">TOP</a>
  115. </li>
  116. </ul>
  117. <form action="http://we.easyelectronics.ru/search/topics/" method="GET" class="search">
  118. <input class="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="Поиск" name="q" type="text">
  119. <input class="search-submit" value="" type="submit">
  120. </form>
  121. </div>
  122. </div>
  123. <div id="container">
  124. <div id="wrapper" class=" ">
  125. <div id="content">
  126. <div id="content-inner">
  127. <div class="login-form jqmWindow jqmID1" id="login_form">
  128. <a href="#" class="close jqmClose"></a>
  129. <form action="http://we.easyelectronics.ru/login/" method="POST">
  130. <h3>Авторизация</h3>
  131. <a href="http://we.easyelectronics.ru/login/openid/" title="Войти через OpenID, GMail, ВКонтакте, Facebook, Twitter, Yandex, Rambler"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/openid.png" alt="OpenID" style="margin-bottom: 10px;"></a><br>
  132. <p><label>Логин или эл. почта:<br>
  133. <input class="input-text" name="login" id="login-input" type="text"></label></p>
  134. <p><label>Пароль:<br>
  135. <input name="password" class="input-text" type="password"></label></p>
  136. <label class="label-remember"><input name="remember" class="checkbox" checked="checked" type="checkbox">Запомнить меня</label>
  137. <input name="submit_login" class="button" value="Войти" type="submit"><br><br>
  138. <a href="http://we.easyelectronics.ru/login/reminder/">Напомнить пароль</a><br>
  139. <a href="http://we.easyelectronics.ru/registration/">Регистрация</a>
  140. </form>
  141. </div>
  142. <div class="topic">
  143. <h1 class="title">
  144. MMC(SD) и AVR. Часть 1. Инициализация и идентификация.
  145. </h1>
  146. <a href="#" onclick="return ls.favourite.toggle(1077,this,'topic');" class="favourite "></a>
  147. <div class="info-top">
  148. <a href="http://we.easyelectronics.ru/blog/AVR/" class="title-blog">AVR</a>
  149. <span class="actions">
  150. </span>
  151. </div>
  152. <div class="content">
  153. <!-- ������.������ -->
  154. <script type="text/javascript">
  155. //<![CDATA[
  156. yandex_partner_id = 90262;
  157. yandex_site_bg_color = 'FFFFFF';
  158. yandex_site_charset = 'utf-8';
  159. yandex_ad_format = 'direct';
  160. yandex_font_size = 1;
  161. yandex_direct_type = 'horizontal';
  162. yandex_direct_border_type = 'none';
  163. yandex_direct_limit = 4;
  164. yandex_direct_title_font_size = 3;
  165. yandex_direct_header_bg_color = 'F8F8F8';
  166. yandex_direct_title_color = '000000';
  167. yandex_direct_url_color = '990000';
  168. yandex_direct_all_color = '990000';
  169. yandex_direct_text_color = '000000';
  170. yandex_direct_hover_color = '000000';
  171. yandex_direct_favicon = false;
  172. document.write('<sc'+'ript type="text/javascript" src="http://an.yandex.ru/system/context.js"></sc'+'ript>');
  173. //]]>
  174. </script><script type="text/javascript" src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/context.js"></script>
  175. Пришло время поговорить о картах памяти формата MMC и SD(а также все
  176. их варианты типа mini, micro и т.д.). Использую их в своих проектах
  177. довольно таки давно, поэтому вроде как для меня в этом вопросе ничего
  178. сложного нет. Поэтому данная статья рассчитана на тех, кому этот вопрос
  179. кажется интересным(новым, незнакомым, сложным). Если такие комрады
  180. имеются, милости прошу под кат… <cut><br>
  181. Долго чесались руки написать данную статейку, да все не было времени.
  182. Вот сейчас на работе вроде бы расслабон, поэтому начну излагать
  183. материал. Сразу оговорюсь, что на звание ОБУЧАТЕЛЯ не претендую, но
  184. постараюсь донести материал как можно доступнее.<br>
  185. И так, карта MMC как SD, по своей природе имеют собственный протокол
  186. общения с внешним миром, но уважаемые товарищи разработчики этого
  187. формата карт вложили одну очень приятную плюшку в эти карты, а именно
  188. работа по SPI. Однажды узнав об этом, я подумал, а не использовать ли
  189. мне эту феньку и не заюзать это в своем курсовом? Сказано — сделано!!!
  190. Первым делом обратился к datasheet'у на данные девайсы и все вроде как
  191. стало понятно, но без гвоздей, как говориться не обошлось.<br>
  192. На рисунке 1 представлена стандартная карта памяти MMC и SD, а также назначение их выводов.<br>
  193. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/96f176.jpg" title="SD MMC pinout" alt="SD MMC pinout"><br>
  194. Как можно увидеть из рисунка, обе эти карты имеют выводы для подключения
  195. по SPI. Долго тянуть не будем и подключим все это дело по схеме,
  196. указанной ниже:<br>
  197. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/da4883.jpg" title="SD MMC schematic" alt="SD MMC schematic"><br>
  198. Как обычно печатку не прилагаю, поскольку использую давно провереный девайсик, фотку которого можно увидеть <a href="http://we.easyelectronics.ru/AVR/usb-fleshka-na-atmega8-i-v-usb-ot-idei-k-gotovomu-ustroystvu.html" rel="nofollow">здесь</a><br>
  199. Вот мы вроде бы все подключили как указано выше. Сейчас перейдем к
  200. описанию самой работы с картой памяти. Режим SPI является вторичным
  201. (опциональный) протоколом связи с картой памяти. Этот режим является,
  202. как бы, подмножеством MMC протокола и разработан для связи по каналу
  203. SPI, который присутствует в большинстве современных МК.<br>
  204. Сам по себе SPI стандарт подразумевает только физическую связь между
  205. устройствами и не является полноценным протоколом передачи данных.
  206. Поэтому SPI интерфейс в картах MMC и SD имеет свои особенности. Стоит
  207. отметить, что при работе с картой памяти по интерфейсу SPI доступны не
  208. все возможности карты, но, как правило, эти возможности и не нужны.<br>
  209. И так, в то время как протокол MMC основывается на командах и битовых
  210. потоках, которые начинаются со старт бита и заканчиваются стоп битом,
  211. SPI режим является байт-ориентированным. Это значит, что каждая команда
  212. или блок данных состоят из 8-ми битных байтов. Так же как и в протоколе
  213. MMC в SPI режиме общение с картой состоит из команды, ответа на команду и
  214. знаков(tokens) от блоков данных. МК контролирует весь обмен информацией
  215. между собой любимым и картой памяти.<br>
  216. Есть несколько основных аспектов при работе с картой памяти в режиме SPI:<br>
  217. — Выбранная карта памяти всегда отвечает на посланную ей команду<br>
  218. — Используются дополнительные 8-ми, 16-ти и 40-ка байтные структуры как ответ на посланную команду<br>
  219. — В случае ошибки при получение команды или данных от МК, карта памяти ответит структурой содержащей описание ошибки<br>
  220. <br>
  221. Следует знать, что в режиме SPI поддерживаются только команды
  222. чтения/записи в режиме одного блока или нескольких блоков (в режиме MMC
  223. поддерживается режим последовательной чтения/записи). Размер блока для
  224. чтения/записи может быть размером в сектор карты памяти и размером в 1
  225. байт. Поддержка операций частичного чтения/записи блока данных хранится в
  226. регистре CSD карты памяти.<br>
  227. Чуть не забыли поговорить о регистрах, которые содержит карта памяти
  228. стандарта MMC(SD). Этих регистров чуть больше, чем перечислю я, но те,
  229. которые я не укажу либо не особо нужны, либо не доступны в режиме SPI.
  230. Основными регистрами, которые представляют для нас интерес являются
  231. следующие:<br>
  232. <br>
  233. — CID (Card identification data): содержит данные, по которым можно
  234. идентифицировать карту памяти (серийный номер, ID производителя, дату
  235. изготовления и т.д.)<br>
  236. — CSD (Card-specific data): содержит всевозможную информацию о карте
  237. памяти (от размера сектора карты памяти до потребления в режиме
  238. чтения/записи).<br>
  239. — OCR (Operation Conditions Register): содержит напряжения питания
  240. карты памяти, тип питания карты памяти, статус процесса инициализации
  241. карты.<br>
  242. <br>
  243. Подробнее об этих регистрах мы поговорим чуть позже, когда коснемся написания прошивки для МК.<br>
  244. Теперь наступило время узнать о том, как эти самые карты включить в
  245. режиме SPI. По умолчанию, карта MMC(SD), при подаче на ее напряжения
  246. питания, запускается в режиме протокола MMC. Карта перейдет в режим SPI в
  247. случае, когда сигнал на выводе _CS будет иметь низкий уровень (карта
  248. памяти выбрана) и при этом на карту будет послана команда сброса CMD0. В
  249. случае приема CMD0, карта проверяет состояние линии _CS. Если
  250. логический уровень на этом выводе равен «1», то на посланную команду
  251. карта памяти не ответит и останется в режиме MMC. Если же карта, приняв
  252. CMD0, определит, что на выводе _CS низкий уровень, то она переключиться в
  253. режим SPI и ответит на посланную команду ответом R1 (По всем видам
  254. ответов и token’ов поговорим позже). Единожды перейдя в режим SPI, карта
  255. памяти останется в этом режиме до следующего выключения и включения
  256. питания, т.е. перейти в режим MMC из режима SPI программным способом не
  257. получится!<br>
  258. Вроде бы основные вступительные моменты мы обговорили и теперь коснемся
  259. набора команд, доступных в режиме SPI. Велосипед изобретать не буду, а
  260. просто приведу таблицу из <a href="http://we.easyelectronics.ru/attachments/get/290" rel="nofollow">datasheet’а</a>. <br>
  261. <br>
  262. Многие, наверное, заметили, что в таблице пропущены некоторые команды.
  263. Как я говорил ранее, в режиме SPI недоступны некоторые функции, которые
  264. доступны в режиме MMC. Поэтому некоторые команды так же не доступны. Так
  265. же из таблицы видно, что у всех команд в поле «Resp» присутствует
  266. аббревиатура R1(2, 3, 7 и др.). Это и есть так называемый ответ карты на
  267. посылаемую ей команду. Приведу небольшой пример обмена информацией с
  268. картой памяти для иллюстрации описанного выше.<br>
  269. <br>
  270. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/2e8ba6.jpg" title="MMC SD cmd resp" alt="MMC SD cmd resp"><br>
  271. <br>
  272. Рассмотрим подробнее данный пример. Мы видим, что мы отправляем карте
  273. (линия DataIn) некоторою команду, приняв которую, карта через некоторый
  274. промежуток времени выдаст ответ (линия DataOut). Размер ответа зависит
  275. от посылаемой команды и имеет свой формат. Приведу формат ответов,
  276. которые мы можем получить от карты памяти.<br>
  277. <br>
  278. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/76c337.jpg" title="SD MMC R1" alt="SD MMC R1"><br>
  279. <br>
  280. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/886da5.jpg" title="SD MMC R2" alt="SD MMC R2"><br>
  281. <br>
  282. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/f7a2b7.jpg" title="SD MMC R3" alt="SD MMC R3"><br>
  283. <br>
  284. Теперь коснемся самих команд для карты памяти. Из таблицы команд видно,
  285. что у каждой команды есть свой индекс. Это значение используется для
  286. получения истинного значения команды, которую необходимо отправить в
  287. карту памяти. Общий вид команды представлен ниже (команда в режиме SPI
  288. имеет длину в 6 байт):<br>
  289. <br>
  290. {{0x40 + CMDx}, {0x??, 0x??, 0x??, 0x??}, {0x??}}<br>
  291. Номер команды Аргумент команды CRC<br>
  292. <br>
  293. Стоит отметить, что в протоколе MMC весь обмен данными завершается полем
  294. CRC, которое является необходимым. Что касается режима SPI, то по
  295. умолчанию при переходе в этот режим, контроль CRC отключен. Исключение
  296. составляют команды CMD0 и CMD8, поскольку они отправляются в карту,
  297. которая еще находится в режиме MMC, поэтому поле CRC для этих команд
  298. должно быть верным. Поскольку CMD0 отправляется единожды и все 6 байт
  299. этой команды известны заранее и не меняются, то в поле CRC для любой
  300. команды мы будем отправлять CRC для команды CMD0 (оно равняется 0x95).
  301. Что касается CMD8, то поле CRC в ней не является константой и зависит от
  302. передаваемых параметров. Хочу заметить, что проверку поля CRC можно
  303. активировать и в режиме SPI. Делается это при помощи соответствующей
  304. команды (CMD59).<br>
  305. Немного разобравшись с теорией, посмотрим на процесс инициализации карты
  306. памяти. Попробую представить это в виде блок-схемы. Вот что получилось у
  307. меня вымутить из datasheet’а (излагаю только суть, за вычетом некоторых
  308. моментов, которые я распишу после блок-схемы):<br>
  309. <br>
  310. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/695c95.jpg" title="SD MMC Init strap" alt="SD MMC Init strap"><br>
  311. <br>
  312. Ну вот, скажут некоторые, нарисовал не пойми чего, а вы тут
  313. разбирайтесь;) Но все не так уж и плохо. Первое, что необходимо пояснить
  314. в этой схеме это то, что карты как бы того не хотелось, бывают разные
  315. (поэтому наверное они и называются по разному). И на этой схеме мы
  316. видим, что бывает их ни много ни мало, а целых 4: MMC, SD версии 1.х
  317. стандартной емкости, SD версии 2.х стандартной емкости и карта SD версии
  318. 2.х повышенной емкости (SD карты расширенной емкости или SDHC). Все бы
  319. ничего, но все они требуют разной инициализации и это самое обидное. В
  320. принципе, есть общий способ инициализации всех их кроме SDHC, но он не
  321. есть правильный, поскольку работать с картой SD версии 2.х стандартной
  322. емкости и картой MMC как с одинаковыми картами неправильно (отличие в
  323. структурах CID и CSD). Конечно, можно построить алгоритм для работы с
  324. каждой картой по отдельности, но мы пойдем универсальной дорогой(и самой
  325. трудной на первый взгляд).<br>
  326. Из приведенной структуры намечается следующий путь работы (я буду
  327. указывать основные моменты, которые необходимо выполнять, но они не
  328. указаны на данной схеме). Мы определили, что в разъем картоприемника
  329. вставили какую-то фигню. Мы в свою очередь делаем следующее: подаем
  330. питание в пределах от 2.7-3.6 В, ожидаем ~1мс (точно не знаю сколько, но
  331. чтобы питание устаканилось). SPI настроен как полагается (я думаю все
  332. умеют это делать) и вывод _CS карты памяти выставлен в логическую “1”.
  333. После этого нам необходимо подать минимум 74 тактовых импульса на линию
  334. SCLK SPI. Выполнив все это мы выставляем логический “0” на вывод _CS
  335. карты памяти и отсылаем команду CMD0. Из таблицы команд видим, что
  336. ответом на CMD0 является R1, структуру которого мы знаем. Немного
  337. отступлю от мысли и обращу внимание на то, что все ответы содержат в
  338. себе первым байтом R1, 7-й бит которого всегда является 0. Таким
  339. образом, мы можем отличать ответы от идущий по линии MISO байтов 0xFF.
  340. Итак, приняв R1, проверяем бит «In idle state» на равенство «1». Если
  341. это так, то карта находится на этапе инициализации. А вот теперь пришел
  342. первый этап определения типа карты памяти. Посылаем команду CMD8,
  343. которая указывает карте поддерживаемые МК напряжения питания для ее и
  344. спрашивает у выбранной карты может ли она работать в данном диапазоне
  345. напряжений, дожидаемся ответа R7. Как видно из блок-схемы, карты памяти
  346. стандарта MMC и SD версии 1.х эту команду не поддерживают и,
  347. соответственно, в своем ответе будут содержать бит «illegal command».
  348. Если сказанное ранее верно, то установленная карта либо MMC, либо SD
  349. версии 1.х. Теперь пришло время распознать, какая именно из этих двух
  350. типов карт вставлена в картоприемник. Для этого отправим карте памяти
  351. команду ACMD41, которая инициирует процесс инициализации карты. Эта
  352. команда посылается в цикле либо для ее выполнения взводится таймер, по
  353. которому проверяется ответ на эту команду. В любом случае, карта MMC не
  354. поддерживает ACMD41 и вернет «illegal command» в своем ответе. В таком
  355. случае вставленная карта есть MMC и для ее инициализации потребуется
  356. команда CMD1 (так же посылается в цикле, пока ответ на нее не будет
  357. равен 0). Получив ответ на CMD1 равный 0х00 карта MMC готова к работе.
  358. Если ответ на ACMD41 не содержит никаких установленных битов (т.е. равен
  359. 0х00), то карта SD версии 1.х и она готова к работе. Теперь вернемся
  360. чуть выше и предположим, что в ответ на команду CMD8 не содержал бит
  361. «illegal command», т.е. у нас карта памяти формата SD версии 2.х
  362. стандартной емкости(SDSC версии 2.х) или SDHC. Следующим шагом в таком
  363. случае есть отправка команды ACMD41 с параметром, указывающим карте
  364. памяти, поддерживает ли наше устройство карты памяти SDHC. Вне
  365. зависимости от того, есть поддержка SDHC или ее нет, мы циклически
  366. отправляем эту команду карте то тех пор, пока она (карта) не закончит
  367. процесс инициализации. Когда ответ от ACMD41 будет равен 0х00, карта
  368. памяти проинициализирована и готова к работе. Но для того, чтобы узнать,
  369. какая у на карта, мы отправим ей команду CMD58. Ответом от этой команды
  370. есть R3, который в свою очередь содержит регистр OCR. Проанализировав
  371. OCR на установку бита CSS можно определить тип карты: CCS == 1 – карта
  372. SDHC или SDXC, CCS == 0 – карта SDSC. Чтобы не быть голословным, приведу
  373. мой участок кода инициализации карты памяти:<br>
  374. <br>
  375. <pre class="prettyprint"><code><span class="pln">MMC_PowerUp</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; <br>&nbsp; &nbsp; </span><span class="com">// As in datasheet min 74 clk before init</span><span class="pln"><br>&nbsp; &nbsp; SPI_SendConst</span><span class="pun">(</span><span class="lit">0xFF</span><span class="pun">,</span><span class="pln"> </span><span class="lit">10</span><span class="pun">);</span><span class="pln"><br><br>&nbsp; &nbsp; m_CardStatus </span><span class="pun">=</span><span class="pln"> ecsNOCARD</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; m_CardType </span><span class="pun">=</span><span class="pln"> ectNOTSUPPORT</span><span class="pun">;</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="com">// Set _CS pin to low</span><span class="pln"><br>&nbsp; &nbsp; MMC_ACTIVATE</span><span class="pun">();</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="com">// Send CMD0. Switch up SPI mode</span><span class="pln"><br>&nbsp; &nbsp; m_ucCrc </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0x95</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; MMC_SendCommand</span><span class="pun">(</span><span class="pln">MMC_GO_IDLE_STATE</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">unsigned</span><span class="pln"> </span><span class="kwd">long</span><span class="pun">)</span><span class="pln"> </span><span class="lit">0x00</span><span class="pun">,</span><span class="pln"> ertR1</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; </span><span class="com">// Card in IDLE state ?</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0x01</span><span class="pun">)</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; m_CardStatus </span><span class="pun">=</span><span class="pln"> ecsERROR</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; </span><span class="com">// Send CMD8. Check for SDC ver.2+ card</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; m_ucCrc </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0x87</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; MMC_SendCommand</span><span class="pun">(</span><span class="pln">MMC_SEND_IF_COND</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x01AA</span><span class="pun">,</span><span class="pln"> ertR7</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0x01</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Card type is SDC ver.2+</span><span class="pln"><br><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Check the card support Vdd 2.7-3.6V</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">((</span><span class="lit">0xAA</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR7</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">R7Data</span><span class="pun">.</span><span class="pln">bits</span><span class="pun">.</span><span class="pln">bitCheckPattern</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(</span><span class="lit">0x01</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR7</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">R7Data</span><span class="pun">.</span><span class="pln">bits</span><span class="pun">.</span><span class="pln">bitVoltageAccepted</span><span class="pun">))</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiMaxErrorsCMD </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0xFFFF</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// ACMD41</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MMC_SendCommandA</span><span class="pun">(</span><span class="pln">MMC_CMD_SD_SEND_OP_COND</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">unsigned</span><span class="pln"> </span><span class="kwd">long</span><span class="pun">)</span><span class="lit">1</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">30</span><span class="pun">,</span><span class="pln"> ertR1</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">while</span><span class="pun">((((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(</span><span class="pln">uiMaxErrorsCMD</span><span class="pun">--));</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// CMD58</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="lit">0x00</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiMaxErrorsCMD </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0xFF</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MMC_SendCommand</span><span class="pun">(</span><span class="pln">MMC_READ_OCR</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x00</span><span class="pun">,</span><span class="pln"> ertR3</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">while</span><span class="pun">((((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(</span><span class="pln">uiMaxErrorsCMD</span><span class="pun">--));</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="lit">0x00</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardStatus </span><span class="pun">=</span><span class="pln"> ecsOK</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="lit">0x01</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR3</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">R3Data</span><span class="pun">.</span><span class="pln">bits</span><span class="pun">.</span><span class="pln">bitCCS</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardType </span><span class="pun">=</span><span class="pln"> ectSDHC</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">else</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardType </span><span class="pun">=</span><span class="pln"> ectSDCv2x</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="com">// end CMD8</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; </span><span class="kwd">else</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Card is MMC or SDC v1.x</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; uiMaxErrorsCMD </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0x7FF</span><span class="pun">;</span><span class="pln"><br><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// ACMD41</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MMC_SendCommandA</span><span class="pun">(</span><span class="pln">MMC_CMD_SD_SEND_OP_COND</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x00</span><span class="pun">,</span><span class="pln"> ertR1</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">while</span><span class="pun">((((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(</span><span class="pln">uiMaxErrorsCMD</span><span class="pun">--));</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Check for SDC v1.0 card</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="lit">0x00</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Card is SDC v1.0</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardStatus </span><span class="pun">=</span><span class="pln"> ecsOK</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardType </span><span class="pun">=</span><span class="pln"> ectSDCv1x</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">else</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Check for MMC card</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiMaxErrorsCMD </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0x7FF</span><span class="pun">;</span><span class="pln"><br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// CMD1</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MMC_SendCommand</span><span class="pun">(</span><span class="pln">MMC_SEND_OP_COND</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x00</span><span class="pun">,</span><span class="pln"> ertR1</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">while</span><span class="pun">((((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(</span><span class="pln">uiMaxErrorsCMD</span><span class="pun">--));</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="lit">0x00</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// Card is MMC</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardStatus </span><span class="pun">=</span><span class="pln"> ecsOK</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m_CardType </span><span class="pun">=</span><span class="pln"> ectMMC</span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"> &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br><br><br>&nbsp; &nbsp; MMC_Finish</span><span class="pun">();</span><span class="pln"><br><br>&nbsp; &nbsp; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">m_CardStatus </span><span class="pun">!=</span><span class="pln"> ecsOK</span><span class="pun">)</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; MMC_PowerDown</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="kwd">else</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; MMC_SendCommand</span><span class="pun">(</span><span class="pln">MMC_SET_BLOCKLEN</span><span class="pun">,</span><span class="pln"> MMC_BLOCK_SIZE</span><span class="pun">,</span><span class="pln"> ertR1</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; MMC_Finish</span><span class="pun">();</span><span class="pln"><br></span></code></pre><br>
  376. Закончив процесс идентификации(тип карты памяти) и инициализации, можно приступать к работе с картой памяти: вычисление объема, чтение и запись данных и т.д.Но это уже вопрос следующей статьи. Жду комментариев и вопросов. Критика и советы оч приветствуются!<br>
  377. <br>
  378. P.S. Забегая немного вперед, пару скринов чтения информации с карты памяти:<br>
  379. <br>
  380. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/d40234.jpg" title="SD MMC PC Info" alt="SD MMC PC Info"><br>
  381. <br>
  382. Да. и если можно, объясните мне, чайнику, как залить видео? СПС =)
  383. </cut></div>
  384. <ul class="tags">
  385. <li><a href="http://we.easyelectronics.ru/tag/MMC/">MMC</a>, </li>
  386. <li><a href="http://we.easyelectronics.ru/tag/SD/">SD</a>, </li>
  387. <li><a href="http://we.easyelectronics.ru/tag/AVR/">AVR</a></li>
  388. </ul>
  389. <ul class="info">
  390. <li id="vote_area_topic_1077" class="voting positive guest">
  391. <a href="#" class="plus" onclick="return ls.vote.vote(1077,this,1,'topic');"></a>
  392. <span id="vote_total_topic_1077" class="total" title="всего проголосовало: 9"> +9 </span>
  393. <a href="#" class="minus" onclick="return ls.vote.vote(1077,this,-1,'topic');"></a>
  394. </li>
  395. <li class="date">13 сентября 2011, 00:39</li>
  396. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  397. <!-- Attachments plugin -->
  398. <link rel="stylesheet" type="text/css" href="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/small.css">
  399. <li class="FilesInTopic" title="Прикреплено 1 файлов.">
  400. 1
  401. </li>
  402. <!-- /Attachments plugin -->
  403. </ul>
  404. <!-- Attachments plugin -->
  405. <div class="AttachmentsInTopic">
  406. Файлы в топике:
  407. <a href="http://we.easyelectronics.ru/attachments/get/290">Simplified_Physical_Layer_Spec.pdf</a> </div>
  408. <!-- /Attachments plugin -->
  409. <div id="ish-socbookmarks">
  410. <div id="vkontakte">
  411. <script type="text/javascript"><!--
  412. document.write(VK.Share.button(false,{type: "round", text: "Вконтакте"}));
  413. --></script>
  414. </div>
  415. <div id="facebook">
  416. <script type="text/javascript"><!--
  417. document.write('<iframe src="http://www.facebook.com/plugins/like.php?href='+escape(document.location.href)+'&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowTransparency="true"></iframe>');
  418. --></script><iframe src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/like.htm" scrolling="no" style="border:none; overflow:hidden; width:100px; height:20px;" allowtransparency="true" frameborder="0"></iframe>
  419. </div>
  420. <div id="moimir">
  421. <script type="text/javascript"><!--
  422. document.write('<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url='+escape(document.location.href)+'">МойМир</a>');
  423. --></script><a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url=http%3A//we.easyelectronics.ru/AVR/mmcsd-i-avr-chast-1-inicializaciya-i-identifikaciya.html">МойМир</a>
  424. </div>
  425. <div id="tweetme">
  426. <script type="text/javascript">
  427. tweetmeme_style = 'compact';
  428. </script>
  429. <script type="text/javascript" src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/button.htm"></script>
  430. </div>
  431. <div id="google_plusone">
  432. <g:plusone></g:plusone>
  433. </div>
  434. </div>
  435. </div>
  436. <div class="comments-header">
  437. <h3>Комментарии (<span id="count-comments">27</span>)</h3>
  438. <a href="http://we.easyelectronics.ru/rss/comments/1077/" class="rss">RSS</a>
  439. <a href="#" onclick="ls.comments.collapseCommentAll(); return false;" onfocus="blur();">свернуть</a> /
  440. <a href="#" onclick="ls.comments.expandCommentAll(); return false;" onfocus="blur();">развернуть</a>
  441. </div>
  442. <a name="comments"></a>
  443. <div class="comments" id="comments">
  444. <div class="comment-wrapper" id="comment_wrapper_id_25236">
  445. <div id="comment_id_25236" class="comment not-admin ">
  446. <a name="comment25236"></a>
  447. <div style="display: none;" class="folding"></div>
  448. <div id="comment_content_id_25236" class="content">
  449. Спасибо за статью. Много имел дела с картами MMC/SD в свзязке с AVR, много подводных камней встречал, но статья некоторые моменты помогла освежить.<br>
  450. З.Ы. А таких моментов масса. Встречались карты, которые сами по себе порой включали проверку CRC. Таким приходилось принудительно его отключать в процессе инициализации.
  451. </div>
  452. <div id="vote_area_comment_25236" class="voting guest ">
  453. <a href="#" class="plus" onclick="return ls.vote.vote(25236,this,1,'comment');"></a>
  454. <span id="vote_total_comment_25236" class="total">0</span>
  455. <a href="#" class="minus" onclick="return ls.vote.vote(25236,this,-1,'comment');"></a>
  456. </div>
  457. <ul class="info">
  458. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/Dominikanez/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  459. <li class="username"><a href="http://we.easyelectronics.ru/profile/Dominikanez/">Dominikanez</a></li>
  460. <li class="date">13 сентября 2011, 06:31</li>
  461. <li><a href="#comment25236" class="comment-link"></a></li>
  462. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  463. </ul>
  464. </div>
  465. </div>
  466. <div class="comment-wrapper" id="comment_wrapper_id_25237">
  467. <div id="comment_id_25237" class="comment not-admin ">
  468. <a name="comment25237"></a>
  469. <div class="folding"></div>
  470. <div id="comment_content_id_25237" class="content">
  471. А программа, скрины которой представлены в конце статьи — это твоя терминалка или специальная тулза для картридеров?
  472. </div>
  473. <div id="vote_area_comment_25237" class="voting guest ">
  474. <a href="#" class="plus" onclick="return ls.vote.vote(25237,this,1,'comment');"></a>
  475. <span id="vote_total_comment_25237" class="total">0</span>
  476. <a href="#" class="minus" onclick="return ls.vote.vote(25237,this,-1,'comment');"></a>
  477. </div>
  478. <ul class="info">
  479. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/Dominikanez/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  480. <li class="username"><a href="http://we.easyelectronics.ru/profile/Dominikanez/">Dominikanez</a></li>
  481. <li class="date">13 сентября 2011, 06:40</li>
  482. <li><a href="#comment25237" class="comment-link"></a></li>
  483. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  484. </ul>
  485. </div>
  486. <div class="comment-wrapper" id="comment_wrapper_id_25276">
  487. <div id="comment_id_25276" class="comment not-admin ">
  488. <a name="comment25276"></a>
  489. <div class="folding"></div>
  490. <div id="comment_content_id_25276" class="content">
  491. в устройстве используется софтварный усб. Реализован вендорный класс и при подключении к пк определяется как усб устройство. Работаю с ним через обертку к драйверам. Во второй статье выложу исходники
  492. </div>
  493. <div id="vote_area_comment_25276" class="voting guest ">
  494. <a href="#" class="plus" onclick="return ls.vote.vote(25276,this,1,'comment');"></a>
  495. <span id="vote_total_comment_25276" class="total">0</span>
  496. <a href="#" class="minus" onclick="return ls.vote.vote(25276,this,-1,'comment');"></a>
  497. </div>
  498. <ul class="info">
  499. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  500. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  501. <li class="date">13 сентября 2011, 10:42</li>
  502. <li><a href="#comment25276" class="comment-link"></a></li>
  503. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25276,25237); return false;" title="Ответ на">↑</a></li>
  504. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  505. </ul>
  506. </div>
  507. <div class="comment-wrapper" id="comment_wrapper_id_25330">
  508. <div id="comment_id_25330" class="comment not-admin ">
  509. <a name="comment25330"></a>
  510. <div style="display: none;" class="folding"></div>
  511. <div id="comment_content_id_25330" class="content">
  512. С нетерпением жду остальных частей.
  513. </div>
  514. <div id="vote_area_comment_25330" class="voting guest ">
  515. <a href="#" class="plus" onclick="return ls.vote.vote(25330,this,1,'comment');"></a>
  516. <span id="vote_total_comment_25330" class="total">0</span>
  517. <a href="#" class="minus" onclick="return ls.vote.vote(25330,this,-1,'comment');"></a>
  518. </div>
  519. <ul class="info">
  520. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/Dominikanez/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  521. <li class="username"><a href="http://we.easyelectronics.ru/profile/Dominikanez/">Dominikanez</a></li>
  522. <li class="date">13 сентября 2011, 14:48</li>
  523. <li><a href="#comment25330" class="comment-link"></a></li>
  524. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25330,25276); return false;" title="Ответ на">↑</a></li>
  525. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  526. </ul>
  527. </div>
  528. </div></div></div>
  529. <div class="comment-wrapper" id="comment_wrapper_id_25254">
  530. <div id="comment_id_25254" class="comment not-admin ">
  531. <a name="comment25254"></a>
  532. <div style="display: none;" class="folding"></div>
  533. <div id="comment_content_id_25254" class="content">
  534. Очень хорошо. Перенес в коллективный блог. Видео заливается на ютуб и полученная от него ссылка вставляется в теги для видео.
  535. </div>
  536. <div id="vote_area_comment_25254" class="voting guest ">
  537. <a href="#" class="plus" onclick="return ls.vote.vote(25254,this,1,'comment');"></a>
  538. <span id="vote_total_comment_25254" class="total">0</span>
  539. <a href="#" class="minus" onclick="return ls.vote.vote(25254,this,-1,'comment');"></a>
  540. </div>
  541. <ul class="info">
  542. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/DIHALT/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_004.jpg" alt="avatar"></a></li>
  543. <li class="username"><a href="http://we.easyelectronics.ru/profile/DIHALT/">DIHALT</a></li>
  544. <li class="date">13 сентября 2011, 09:53</li>
  545. <li><a href="#comment25254" class="comment-link"></a></li>
  546. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  547. </ul>
  548. </div>
  549. </div>
  550. <div class="comment-wrapper" id="comment_wrapper_id_25270">
  551. <div id="comment_id_25270" class="comment not-admin ">
  552. <a name="comment25270"></a>
  553. <div style="display: none;" class="folding"></div>
  554. <div id="comment_content_id_25270" class="content">
  555. Познавательная статья +1
  556. </div>
  557. <div id="vote_area_comment_25270" class="voting guest ">
  558. <a href="#" class="plus" onclick="return ls.vote.vote(25270,this,1,'comment');"></a>
  559. <span id="vote_total_comment_25270" class="total">0</span>
  560. <a href="#" class="minus" onclick="return ls.vote.vote(25270,this,-1,'comment');"></a>
  561. </div>
  562. <ul class="info">
  563. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/bomond/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_002.gif" alt="avatar"></a></li>
  564. <li class="username"><a href="http://we.easyelectronics.ru/profile/bomond/">bomond</a></li>
  565. <li class="date">13 сентября 2011, 10:31</li>
  566. <li><a href="#comment25270" class="comment-link"></a></li>
  567. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  568. </ul>
  569. </div>
  570. </div>
  571. <div class="comment-wrapper" id="comment_wrapper_id_25296">
  572. <div id="comment_id_25296" class="comment not-admin ">
  573. <a name="comment25296"></a>
  574. <div class="folding"></div>
  575. <div id="comment_content_id_25296" class="content">
  576. <blockquote>Из таблицы команд видно, что у каждой команды есть свой индекс</blockquote>Так и не понял куда смотреть.
  577. </div>
  578. <div id="vote_area_comment_25296" class="voting guest ">
  579. <a href="#" class="plus" onclick="return ls.vote.vote(25296,this,1,'comment');"></a>
  580. <span id="vote_total_comment_25296" class="total">0</span>
  581. <a href="#" class="minus" onclick="return ls.vote.vote(25296,this,-1,'comment');"></a>
  582. </div>
  583. <ul class="info">
  584. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/opolo84/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_002.jpg" alt="avatar"></a></li>
  585. <li class="username"><a href="http://we.easyelectronics.ru/profile/opolo84/">opolo84</a></li>
  586. <li class="date">13 сентября 2011, 12:45</li>
  587. <li><a href="#comment25296" class="comment-link"></a></li>
  588. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  589. </ul>
  590. </div>
  591. <div class="comment-wrapper" id="comment_wrapper_id_25310">
  592. <div id="comment_id_25310" class="comment not-admin ">
  593. <a name="comment25310"></a>
  594. <div class="folding"></div>
  595. <div id="comment_content_id_25310" class="content">
  596. Прошу прощения, рисунок с таблицей по размерам не влез. Сейчас поправлю. Индекс это номер команды: например чтобы отправить команду CMD9 (индекс равен 9), нужно прибавить к 0x40 этот индекс.
  597. </div>
  598. <div id="vote_area_comment_25310" class="voting guest ">
  599. <a href="#" class="plus" onclick="return ls.vote.vote(25310,this,1,'comment');"></a>
  600. <span id="vote_total_comment_25310" class="total">0</span>
  601. <a href="#" class="minus" onclick="return ls.vote.vote(25310,this,-1,'comment');"></a>
  602. </div>
  603. <ul class="info">
  604. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  605. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  606. <li class="date">13 сентября 2011, 13:47</li>
  607. <li><a href="#comment25310" class="comment-link"></a></li>
  608. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25310,25296); return false;" title="Ответ на">↑</a></li>
  609. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  610. </ul>
  611. </div>
  612. <div class="comment-wrapper" id="comment_wrapper_id_25311">
  613. <div id="comment_id_25311" class="comment not-admin ">
  614. <a name="comment25311"></a>
  615. <div style="display: none;" class="folding"></div>
  616. <div id="comment_content_id_25311" class="content">
  617. Во второй части статьи я выложу исходники для AVR'ки и datasheet'ы на карты памяти
  618. </div>
  619. <div id="vote_area_comment_25311" class="voting guest ">
  620. <a href="#" class="plus" onclick="return ls.vote.vote(25311,this,1,'comment');"></a>
  621. <span id="vote_total_comment_25311" class="total">0</span>
  622. <a href="#" class="minus" onclick="return ls.vote.vote(25311,this,-1,'comment');"></a>
  623. </div>
  624. <ul class="info">
  625. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  626. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  627. <li class="date">13 сентября 2011, 13:48</li>
  628. <li><a href="#comment25311" class="comment-link"></a></li>
  629. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25311,25310); return false;" title="Ответ на">↑</a></li>
  630. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  631. </ul>
  632. </div>
  633. </div></div></div>
  634. <div class="comment-wrapper" id="comment_wrapper_id_25774">
  635. <div id="comment_id_25774" class="comment not-admin ">
  636. <a name="comment25774"></a>
  637. <div class="folding"></div>
  638. <div id="comment_content_id_25774" class="content">
  639. Спасибо!<br>
  640. Читал где-то слухи, что SDHC по спецификации не обязаны поддерживать SPI. Надеюсь это брехня?
  641. </div>
  642. <div id="vote_area_comment_25774" class="voting guest ">
  643. <a href="#" class="plus" onclick="return ls.vote.vote(25774,this,1,'comment');"></a>
  644. <span id="vote_total_comment_25774" class="total">0</span>
  645. <a href="#" class="minus" onclick="return ls.vote.vote(25774,this,-1,'comment');"></a>
  646. </div>
  647. <ul class="info">
  648. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lasttry/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  649. <li class="username"><a href="http://we.easyelectronics.ru/profile/lasttry/">lasttry</a></li>
  650. <li class="date">16 сентября 2011, 10:38</li>
  651. <li><a href="#comment25774" class="comment-link"></a></li>
  652. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  653. </ul>
  654. </div>
  655. <div class="comment-wrapper" id="comment_wrapper_id_25785">
  656. <div id="comment_id_25785" class="comment not-admin ">
  657. <a name="comment25785"></a>
  658. <div style="display: none;" class="folding"></div>
  659. <div id="comment_content_id_25785" class="content">
  660. Во-первых, зачем важему контроллеру 4Гб+ памяти ?? фильмы что ли хранить?<br>
  661. Во-вторых, если какая и не поддерживает, то можно спокойно пойти в магаз и за разумные деньги купить длугую карточку.<br>
  662. Так что не шибко парьтесь по этому поводу. единственное чем оно вам грозит — это при запуске она не проинициализируется, что вполне можно обнаружить.
  663. </div>
  664. <div id="vote_area_comment_25785" class="voting guest ">
  665. <a href="#" class="plus" onclick="return ls.vote.vote(25785,this,1,'comment');"></a>
  666. <span id="vote_total_comment_25785" class="total">0</span>
  667. <a href="#" class="minus" onclick="return ls.vote.vote(25785,this,-1,'comment');"></a>
  668. </div>
  669. <ul class="info">
  670. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/angel5a/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  671. <li class="username"><a href="http://we.easyelectronics.ru/profile/angel5a/">angel5a</a></li>
  672. <li class="date">16 сентября 2011, 13:16</li>
  673. <li><a href="#comment25785" class="comment-link"></a></li>
  674. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25785,25774); return false;" title="Ответ на">↑</a></li>
  675. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  676. </ul>
  677. </div>
  678. </div>
  679. <div class="comment-wrapper" id="comment_wrapper_id_25786">
  680. <div id="comment_id_25786" class="comment not-admin ">
  681. <a name="comment25786"></a>
  682. <div style="display: none;" class="folding"></div>
  683. <div id="comment_content_id_25786" class="content">
  684. Китайские карточки иногда не поддерживают спи несмотря на спецификации. Тут уж как повезёт.
  685. </div>
  686. <div id="vote_area_comment_25786" class="voting guest ">
  687. <a href="#" class="plus" onclick="return ls.vote.vote(25786,this,1,'comment');"></a>
  688. <span id="vote_total_comment_25786" class="total">0</span>
  689. <a href="#" class="minus" onclick="return ls.vote.vote(25786,this,-1,'comment');"></a>
  690. </div>
  691. <ul class="info">
  692. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/Lifelover/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.jpg" alt="avatar"></a></li>
  693. <li class="username"><a href="http://we.easyelectronics.ru/profile/Lifelover/">Lifelover</a></li>
  694. <li class="date">16 сентября 2011, 13:20</li>
  695. <li><a href="#comment25786" class="comment-link"></a></li>
  696. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25786,25774); return false;" title="Ответ на">↑</a></li>
  697. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  698. </ul>
  699. </div>
  700. </div>
  701. <div class="comment-wrapper" id="comment_wrapper_id_25791">
  702. <div id="comment_id_25791" class="comment not-admin ">
  703. <a name="comment25791"></a>
  704. <div class="folding"></div>
  705. <div id="comment_content_id_25791" class="content">
  706. Все что я юзал с SPI дружили. По спецификации положено всем, но как говорят товарищи по сообществу, то видимо бывают и поделки которые не держат. Но, опять же я таких не встречал
  707. </div>
  708. <div id="vote_area_comment_25791" class="voting guest ">
  709. <a href="#" class="plus" onclick="return ls.vote.vote(25791,this,1,'comment');"></a>
  710. <span id="vote_total_comment_25791" class="total">0</span>
  711. <a href="#" class="minus" onclick="return ls.vote.vote(25791,this,-1,'comment');"></a>
  712. </div>
  713. <ul class="info">
  714. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  715. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  716. <li class="date">16 сентября 2011, 13:28</li>
  717. <li><a href="#comment25791" class="comment-link"></a></li>
  718. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25791,25774); return false;" title="Ответ на">↑</a></li>
  719. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  720. </ul>
  721. </div>
  722. <div class="comment-wrapper" id="comment_wrapper_id_25803">
  723. <div id="comment_id_25803" class="comment not-admin ">
  724. <a name="comment25803"></a>
  725. <div class="folding"></div>
  726. <div id="comment_content_id_25803" class="content">
  727. Где-то я читал, что поддержка SPI не обязательна для microSD и что microSDHC и выше часто ее не имеют (microSDSC большинство SPI поддерживает).
  728. </div>
  729. <div id="vote_area_comment_25803" class="voting guest ">
  730. <a href="#" class="plus" onclick="return ls.vote.vote(25803,this,1,'comment');"></a>
  731. <span id="vote_total_comment_25803" class="total">0</span>
  732. <a href="#" class="minus" onclick="return ls.vote.vote(25803,this,-1,'comment');"></a>
  733. </div>
  734. <ul class="info">
  735. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.gif" alt="avatar"></a></li>
  736. <li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
  737. <li class="date">16 сентября 2011, 14:25</li>
  738. <li><a href="#comment25803" class="comment-link"></a></li>
  739. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25803,25791); return false;" title="Ответ на">↑</a></li>
  740. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  741. </ul>
  742. </div>
  743. <div class="comment-wrapper" id="comment_wrapper_id_25807">
  744. <div id="comment_id_25807" class="comment not-admin ">
  745. <a name="comment25807"></a>
  746. <div class="folding"></div>
  747. <div id="comment_content_id_25807" class="content">
  748. Согласно докам SanDisk, Toshiba и чего-то там еще обязательно есть SPI причем в любой. Если производитель придерживается документации (не зряже стандар написан), то SPI должен быть
  749. </div>
  750. <div id="vote_area_comment_25807" class="voting guest ">
  751. <a href="#" class="plus" onclick="return ls.vote.vote(25807,this,1,'comment');"></a>
  752. <span id="vote_total_comment_25807" class="total">0</span>
  753. <a href="#" class="minus" onclick="return ls.vote.vote(25807,this,-1,'comment');"></a>
  754. </div>
  755. <ul class="info">
  756. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  757. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  758. <li class="date">16 сентября 2011, 14:35</li>
  759. <li><a href="#comment25807" class="comment-link"></a></li>
  760. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25807,25803); return false;" title="Ответ на">↑</a></li>
  761. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  762. </ul>
  763. </div>
  764. <div class="comment-wrapper" id="comment_wrapper_id_25815">
  765. <div id="comment_id_25815" class="comment not-admin ">
  766. <a name="comment25815"></a>
  767. <div style="display: none;" class="folding"></div>
  768. <div id="comment_content_id_25815" class="content">
  769. Возможно это связано с тем, что microSD (вроде бы) сначала были отдельным стандартом T-Flash. Ну и источник, откуда я инфу брал — нечто в духе википедии, так что не уверен. Ну и инфа выглядит в духе «бывают microSD без SPI и для microSDHC на такую нарваться шансов больше» (хотя я когда читал так понял, что microSDHC с SPI вообще сложно найти). Сам не проверял. Из того, что с SD по SPI работает у меня только NanoDSO, а он по любому SDHC не держит. Хотя нет, еще анлокер/ресеттер карт, но на SDHC его тоже еще не приходилось натравливать.
  770. </div>
  771. <div id="vote_area_comment_25815" class="voting guest ">
  772. <a href="#" class="plus" onclick="return ls.vote.vote(25815,this,1,'comment');"></a>
  773. <span id="vote_total_comment_25815" class="total">0</span>
  774. <a href="#" class="minus" onclick="return ls.vote.vote(25815,this,-1,'comment');"></a>
  775. </div>
  776. <ul class="info">
  777. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/Vga/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.gif" alt="avatar"></a></li>
  778. <li class="username"><a href="http://we.easyelectronics.ru/profile/Vga/">Vga</a></li>
  779. <li class="date">16 сентября 2011, 14:57</li>
  780. <li><a href="#comment25815" class="comment-link"></a></li>
  781. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(25815,25807); return false;" title="Ответ на">↑</a></li>
  782. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  783. </ul>
  784. </div>
  785. </div></div></div></div></div>
  786. <div class="comment-wrapper" id="comment_wrapper_id_62291">
  787. <div id="comment_id_62291" class="comment not-admin ">
  788. <a name="comment62291"></a>
  789. <div style="display: none;" class="folding"></div>
  790. <div id="comment_content_id_62291" class="content">
  791. Тоже подключал разные карты к ATMEGA8515, аппаратному SPI. MMC карты инициировались нормально, а SD никак, то вообще молчат, то мусор какой-то гонят. Уже подумал, что имеющиеся у меня SD карты SPI и не поддерживают. А оказалось важным следующее: битик SPHA при инициализации SPI. То есть по какому фронту CLK считываются данные в МК. у меня все заработало при SPHA=0. может кому пригодится…
  792. </div>
  793. <div id="vote_area_comment_62291" class="voting guest ">
  794. <a href="#" class="plus" onclick="return ls.vote.vote(62291,this,1,'comment');"></a>
  795. <span id="vote_total_comment_62291" class="total">0</span>
  796. <a href="#" class="minus" onclick="return ls.vote.vote(62291,this,-1,'comment');"></a>
  797. </div>
  798. <ul class="info">
  799. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/emax/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  800. <li class="username"><a href="http://we.easyelectronics.ru/profile/emax/">emax</a></li>
  801. <li class="date">17 мая 2012, 07:15</li>
  802. <li><a href="#comment62291" class="comment-link"></a></li>
  803. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  804. </ul>
  805. </div>
  806. </div>
  807. <div class="comment-wrapper" id="comment_wrapper_id_84128">
  808. <div id="comment_id_84128" class="comment not-admin ">
  809. <a name="comment84128"></a>
  810. <div style="display: none;" class="folding"></div>
  811. <div id="comment_content_id_84128" class="content">
  812. Читайте внимательно статью!) После CMD0 получили 0х01. Карта перешла в режим инициализации или занята! Если CMD8 возвращает 0x05 то эта команда не поддерживается а карта еще в процессе инициализации=(
  813. </div>
  814. <div id="vote_area_comment_84128" class="voting guest ">
  815. <a href="#" class="plus" onclick="return ls.vote.vote(84128,this,1,'comment');"></a>
  816. <span id="vote_total_comment_84128" class="total">0</span>
  817. <a href="#" class="minus" onclick="return ls.vote.vote(84128,this,-1,'comment');"></a>
  818. </div>
  819. <ul class="info">
  820. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  821. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  822. <li class="date">02 ноября 2012, 18:08</li>
  823. <li><a href="#comment84128" class="comment-link"></a></li>
  824. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  825. </ul>
  826. </div>
  827. </div>
  828. <div class="comment-wrapper" id="comment_wrapper_id_84129">
  829. <div id="comment_id_84129" class="comment not-admin ">
  830. <a name="comment84129"></a>
  831. <div style="display: none;" class="folding"></div>
  832. <div id="comment_content_id_84129" class="content">
  833. Да, и с какого перепуга вы шлете CMD55 как отдельную команду? Два раза отправлять CMD0 это так нельзя=) Вы же получили ответ на ее выполнение 0х01, поэтому еще раз на ее выполнение будет иллигал комманд=)
  834. </div>
  835. <div id="vote_area_comment_84129" class="voting guest ">
  836. <a href="#" class="plus" onclick="return ls.vote.vote(84129,this,1,'comment');"></a>
  837. <span id="vote_total_comment_84129" class="total">0</span>
  838. <a href="#" class="minus" onclick="return ls.vote.vote(84129,this,-1,'comment');"></a>
  839. </div>
  840. <ul class="info">
  841. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  842. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  843. <li class="date">02 ноября 2012, 18:11</li>
  844. <li><a href="#comment84129" class="comment-link"></a></li>
  845. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  846. </ul>
  847. </div>
  848. </div>
  849. <div class="comment-wrapper" id="comment_wrapper_id_84133">
  850. <div id="comment_id_84133" class="comment not-admin ">
  851. <a name="comment84133"></a>
  852. <div class="folding"></div>
  853. <div id="comment_content_id_84133" class="content">
  854. Да, и:<br>
  855. 1)<blockquote>Появился какой-то новый стандарт что ли?<br>
  856. или чей-то такое?)</blockquote> надобно прочитать старый для начала, чтоп говорить о появлении нового<br>
  857. 2)<blockquote>Можно еще чего-нибудь попробовать отправить?)</blockquote> можно отправить все что угодно, хоть «Войну и мир» Толстого, важно понимать к чему это может привести =)
  858. </div>
  859. <div id="vote_area_comment_84133" class="voting guest ">
  860. <a href="#" class="plus" onclick="return ls.vote.vote(84133,this,1,'comment');"></a>
  861. <span id="vote_total_comment_84133" class="total">0</span>
  862. <a href="#" class="minus" onclick="return ls.vote.vote(84133,this,-1,'comment');"></a>
  863. </div>
  864. <ul class="info">
  865. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  866. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  867. <li class="date">02 ноября 2012, 18:19</li>
  868. <li><a href="#comment84133" class="comment-link"></a></li>
  869. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  870. </ul>
  871. </div>
  872. <div class="comment-wrapper" id="comment_wrapper_id_84134">
  873. <div id="comment_id_84134" class="comment not-admin ">
  874. <a name="comment84134"></a>
  875. <div style="display: none;" class="folding"></div>
  876. <div id="comment_content_id_84134" class="content">
  877. Пардон, это относилось к тов. <a href="http://we.easyelectronics.ru/profile/BeloBird/" class="ls-user">BeloBird</a>
  878. </div>
  879. <div id="vote_area_comment_84134" class="voting guest ">
  880. <a href="#" class="plus" onclick="return ls.vote.vote(84134,this,1,'comment');"></a>
  881. <span id="vote_total_comment_84134" class="total">0</span>
  882. <a href="#" class="minus" onclick="return ls.vote.vote(84134,this,-1,'comment');"></a>
  883. </div>
  884. <ul class="info">
  885. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  886. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  887. <li class="date">02 ноября 2012, 18:20</li>
  888. <li><a href="#comment84134" class="comment-link"></a></li>
  889. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(84134,84133); return false;" title="Ответ на">↑</a></li>
  890. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  891. </ul>
  892. </div>
  893. </div></div>
  894. <div class="comment-wrapper" id="comment_wrapper_id_86511">
  895. <div id="comment_id_86511" class="comment not-admin ">
  896. <a name="comment86511"></a>
  897. <div class="folding"></div>
  898. <div id="comment_content_id_86511" class="content">
  899. работаю с microSD картой, емкостью 2 гб<br>
  900. я отправляю на карту cmd0, а в ответ получаю ответ R1=0<br>
  901. чтото не так или повторить отправку cmd0?
  902. </div>
  903. <div id="vote_area_comment_86511" class="voting guest ">
  904. <a href="#" class="plus" onclick="return ls.vote.vote(86511,this,1,'comment');"></a>
  905. <span id="vote_total_comment_86511" class="total">0</span>
  906. <a href="#" class="minus" onclick="return ls.vote.vote(86511,this,-1,'comment');"></a>
  907. </div>
  908. <ul class="info">
  909. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/WitGo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  910. <li class="username"><a href="http://we.easyelectronics.ru/profile/WitGo/">WitGo</a></li>
  911. <li class="date">18 ноября 2012, 20:28</li>
  912. <li><a href="#comment86511" class="comment-link"></a></li>
  913. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  914. </ul>
  915. </div>
  916. <div class="comment-wrapper" id="comment_wrapper_id_86515">
  917. <div id="comment_id_86515" class="comment not-admin ">
  918. <a name="comment86515"></a>
  919. <div style="display: none;" class="folding"></div>
  920. <div id="comment_content_id_86515" class="content">
  921. Повторить однозначно=)
  922. </div>
  923. <div id="vote_area_comment_86515" class="voting guest ">
  924. <a href="#" class="plus" onclick="return ls.vote.vote(86515,this,1,'comment');"></a>
  925. <span id="vote_total_comment_86515" class="total">0</span>
  926. <a href="#" class="minus" onclick="return ls.vote.vote(86515,this,-1,'comment');"></a>
  927. </div>
  928. <ul class="info">
  929. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  930. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  931. <li class="date">18 ноября 2012, 23:27</li>
  932. <li><a href="#comment86515" class="comment-link"></a></li>
  933. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(86515,86511); return false;" title="Ответ на">↑</a></li>
  934. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  935. </ul>
  936. </div>
  937. </div></div>
  938. <div class="comment-wrapper" id="comment_wrapper_id_88027">
  939. <div id="comment_id_88027" class="comment not-admin ">
  940. <a name="comment88027"></a>
  941. <div class="folding"></div>
  942. <div id="comment_content_id_88027" class="content">
  943. здрасьте всем! Автору респект!!!<br>
  944. не могу понять, как команду послать один раз, но в цикле????<br>
  945. <em><blockquote>«Для этого отправим карте памяти команду ACMD41, которая инициирует процесс инициализации карты. Эта команда посылается в цикле либо для ее выполнения взводится таймер, по которому проверяется ответ на эту команду.»</blockquote></em>
  946. </div>
  947. <div id="vote_area_comment_88027" class="voting guest ">
  948. <a href="#" class="plus" onclick="return ls.vote.vote(88027,this,1,'comment');"></a>
  949. <span id="vote_total_comment_88027" class="total">0</span>
  950. <a href="#" class="minus" onclick="return ls.vote.vote(88027,this,-1,'comment');"></a>
  951. </div>
  952. <ul class="info">
  953. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/rubleffsky/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  954. <li class="username"><a href="http://we.easyelectronics.ru/profile/rubleffsky/">rubleffsky</a></li>
  955. <li class="date">28 ноября 2012, 17:53</li>
  956. <li><a href="#comment88027" class="comment-link"></a></li>
  957. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  958. </ul>
  959. </div>
  960. <div class="comment-wrapper" id="comment_wrapper_id_88066">
  961. <div id="comment_id_88066" class="comment not-admin ">
  962. <a name="comment88066"></a>
  963. <div style="display: none;" class="folding"></div>
  964. <div id="comment_content_id_88066" class="content">
  965. Спасибо=) <br>
  966. Вот так наверное, не?<br>
  967. <pre class="prettyprint"><code><span class="com">// ACMD41</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">do</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MMC_SendCommandA</span><span class="pun">(</span><span class="pln">MMC_CMD_SD_SEND_OP_COND</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x00</span><span class="pun">,</span><span class="pln"> ertR1</span><span class="pun">);</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPI_ReadByte</span><span class="pun">();</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">while</span><span class="pun">((((</span><span class="pln">CCardR1</span><span class="pun">*)&amp;</span><span class="pln">ucRespData</span><span class="pun">)-&gt;</span><span class="pln">ucData</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="pun">(</span><span class="pln">uiMaxErrorsCMD</span><span class="pun">--));</span></code></pre><br>
  968. <br>
  969. Да, и не заметил где про 1 раз написано?<br>
  970. С уважением!
  971. </div>
  972. <div id="vote_area_comment_88066" class="voting guest ">
  973. <a href="#" class="plus" onclick="return ls.vote.vote(88066,this,1,'comment');"></a>
  974. <span id="vote_total_comment_88066" class="total">0</span>
  975. <a href="#" class="minus" onclick="return ls.vote.vote(88066,this,-1,'comment');"></a>
  976. </div>
  977. <ul class="info">
  978. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  979. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  980. <li class="date">28 ноября 2012, 22:18</li>
  981. <li><a href="#comment88066" class="comment-link"></a></li>
  982. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(88066,88027); return false;" title="Ответ на">↑</a></li>
  983. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  984. </ul>
  985. </div>
  986. </div></div>
  987. <div class="comment-wrapper" id="comment_wrapper_id_88102">
  988. <div id="comment_id_88102" class="comment not-admin ">
  989. <a name="comment88102"></a>
  990. <div class="folding"></div>
  991. <div id="comment_content_id_88102" class="content">
  992. Скажи, пожалуйста, в какой программе рисовал схему для статьи?
  993. </div>
  994. <div id="vote_area_comment_88102" class="voting guest ">
  995. <a href="#" class="plus" onclick="return ls.vote.vote(88102,this,1,'comment');"></a>
  996. <span id="vote_total_comment_88102" class="total">0</span>
  997. <a href="#" class="minus" onclick="return ls.vote.vote(88102,this,-1,'comment');"></a>
  998. </div>
  999. <ul class="info">
  1000. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/NBS/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24_003.jpg" alt="avatar"></a></li>
  1001. <li class="username"><a href="http://we.easyelectronics.ru/profile/NBS/">NBS</a></li>
  1002. <li class="date">28 ноября 2012, 23:40</li>
  1003. <li><a href="#comment88102" class="comment-link"></a></li>
  1004. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  1005. </ul>
  1006. </div>
  1007. <div class="comment-wrapper" id="comment_wrapper_id_88108">
  1008. <div id="comment_id_88108" class="comment not-admin ">
  1009. <a name="comment88108"></a>
  1010. <div style="display: none;" class="folding"></div>
  1011. <div id="comment_content_id_88108" class="content">
  1012. Вроде sPlan, правда было давно…
  1013. </div>
  1014. <div id="vote_area_comment_88108" class="voting guest ">
  1015. <a href="#" class="plus" onclick="return ls.vote.vote(88108,this,1,'comment');"></a>
  1016. <span id="vote_total_comment_88108" class="total">0</span>
  1017. <a href="#" class="minus" onclick="return ls.vote.vote(88108,this,-1,'comment');"></a>
  1018. </div>
  1019. <ul class="info">
  1020. <li class="avatar"><a href="http://we.easyelectronics.ru/profile/lleeloo/"><img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/avatar_24x24.gif" alt="avatar"></a></li>
  1021. <li class="username"><a href="http://we.easyelectronics.ru/profile/lleeloo/">lleeloo</a></li>
  1022. <li class="date">29 ноября 2012, 00:18</li>
  1023. <li><a href="#comment88108" class="comment-link"></a></li>
  1024. <li class="goto-comment-parent"><a href="#" onclick="ls.comments.goToParentComment(88108,88102); return false;" title="Ответ на">↑</a></li>
  1025. <li class="goto-comment-child"><a href="#" title="Обратно к ответу">↓</a></li>
  1026. </ul>
  1027. </div>
  1028. </div></div>
  1029. </div>
  1030. Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
  1031. </div><!-- /content-inner -->
  1032. </div><!-- /content -->
  1033. <div id="sidebar">
  1034. <div class="block stream" id="block_stream">
  1035. <h2>Прямой эфир</h2>
  1036. <ul class="switcher">
  1037. <li id="block_stream_item_comment" class="active">Комментарии</li>
  1038. <li id="block_stream_item_topic">Публикации</li>
  1039. </ul>
  1040. <div class="block-content" id="block_stream_content">
  1041. <ul class="list">
  1042. <li class="even">
  1043. <a href="http://we.easyelectronics.ru/profile/khomin/" class="user">khomin</a> →
  1044. <span class="stream-comment-icon"></span>
  1045. <a href="http://we.easyelectronics.ru/Tools/multimetr-victor-86e-obzor.html#comment159385" class="topic-title">Мультиметр Victor 86E. Обзор</a>
  1046. <span>18</span> →
  1047. <a href="http://we.easyelectronics.ru/blog/Tools/" class="blog-title">Инструмент</a>
  1048. </li>
  1049. <li>
  1050. <a href="http://we.easyelectronics.ru/profile/khomin/" class="user">khomin</a> →
  1051. <span class="stream-comment-icon"></span>
  1052. <a href="http://we.easyelectronics.ru/khomin/stm32-usb-qt-libusb-shablon-proekta.html#comment159382" class="topic-title">STM32 USB, QT, Libusb, шаблон проекта</a>
  1053. <span>41</span> →
  1054. <a href="http://we.easyelectronics.ru/my/khomin/" class="blog-title">Блог им. khomin</a>
  1055. </li>
  1056. <li class="even">
  1057. <a href="http://we.easyelectronics.ru/profile/mChel/" class="user">mChel</a> →
  1058. <span class="stream-comment-icon"></span>
  1059. <a href="http://we.easyelectronics.ru/part/led-kuby-novaya-tehnologiya.html#comment159380" class="topic-title">LED-кубы: новая технология</a>
  1060. <span>76</span> →
  1061. <a href="http://we.easyelectronics.ru/blog/part/" class="blog-title">Деталька</a>
  1062. </li>
  1063. <li>
  1064. <a href="http://we.easyelectronics.ru/profile/denis_vishniakov/" class="user">denis_vishniakov</a> →
  1065. <span class="stream-comment-icon"></span>
  1066. <a href="http://we.easyelectronics.ru/e_mc2/b-bezyshodnost.html#comment159375" class="topic-title">Б – Безысходность</a>
  1067. <span>517</span> →
  1068. <a href="http://we.easyelectronics.ru/my/e_mc2/" class="blog-title">Блог им. e_mc2</a>
  1069. </li>
  1070. <li class="even">
  1071. <a href="http://we.easyelectronics.ru/profile/trengtor/" class="user">trengtor</a> →
  1072. <span class="stream-comment-icon"></span>
  1073. <a href="http://we.easyelectronics.ru/Tools/dolgozhdannyy-payalnik-a-bf-gs110d.html#comment159343" class="topic-title">Долгожданный паяльник A-BF GS110D</a>
  1074. <span>206</span> →
  1075. <a href="http://we.easyelectronics.ru/blog/Tools/" class="blog-title">Инструмент</a>
  1076. </li>
  1077. <li>
  1078. <a href="http://we.easyelectronics.ru/profile/angel5a/" class="user">angel5a</a> →
  1079. <span class="stream-comment-icon"></span>
  1080. <a href="http://we.easyelectronics.ru/howwork/obuchaemyy-433mgc-pultik-dlya-klonirovaniya-statichnogo-koda.html#comment159321" class="topic-title">Обучаемый 433МГц пультик для клонирования статичного кода.</a>
  1081. <span>11</span> →
  1082. <a href="http://we.easyelectronics.ru/blog/howwork/" class="blog-title">Как работает?</a>
  1083. </li>
  1084. <li class="even">
  1085. <a href="http://we.easyelectronics.ru/profile/yanvasilij/" class="user">yanvasilij</a> →
  1086. <span class="stream-comment-icon"></span>
  1087. <a href="http://we.easyelectronics.ru/STM32/opisanie-drayverov-hal-stm32f4xx-chastichnyy-perevod.html#comment159298" class="topic-title">Описание драйверов HAL STM32F4xx, частичный перевод</a>
  1088. <span>34</span> →
  1089. <a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
  1090. </li>
  1091. <li>
  1092. <a href="http://we.easyelectronics.ru/profile/GarryC/" class="user">GarryC</a> →
  1093. <span class="stream-comment-icon"></span>
  1094. <a href="http://we.easyelectronics.ru/Soft/vinxfs-samaya-malenkaya-faylovaya-sistema-fat32-dlya-avr.html#comment159263" class="topic-title">VinxFS - Самая маленькая файловая система FAT32 для AVR</a>
  1095. <span>61</span> →
  1096. <a href="http://we.easyelectronics.ru/blog/Soft/" class="blog-title">Алгоритмы и программные решения</a>
  1097. </li>
  1098. <li class="even">
  1099. <a href="http://we.easyelectronics.ru/profile/Jarik65535/" class="user">Jarik65535</a> →
  1100. <span class="stream-comment-icon"></span>
  1101. <a href="http://we.easyelectronics.ru/electro-and-pc/poluchenie-sinhronnyh-dannyh-s-pomoschyu-mikroshemy-cypress-cy7c68013a-fx2lp-na-primere-ustroystva-videozahvata-dlya-staryh-kompyutorov.html#comment159251" class="topic-title">Получение синхронных данных с помощью микросхемы Cypress CY7C68013A (FX2LP) на примере устройства видеозахвата для старых компьюторов.</a>
  1102. <span>34</span> →
  1103. <a href="http://we.easyelectronics.ru/blog/electro-and-pc/" class="blog-title">Связь железа с компьютером.</a>
  1104. </li>
  1105. <li>
  1106. <a href="http://we.easyelectronics.ru/profile/Vitaliy_81/" class="user">Vitaliy_81</a> →
  1107. <span class="stream-comment-icon"></span>
  1108. <a href="http://we.easyelectronics.ru/STM32/udobnaya-nastroyka-gpio-stm32f030-moy-velosiped.html#comment159241" class="topic-title">Удобная настройка GPIO STM32F030. Мой велосипед.</a>
  1109. <span>92</span> →
  1110. <a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
  1111. </li>
  1112. <li class="even">
  1113. <a href="http://we.easyelectronics.ru/profile/trengtor/" class="user">trengtor</a> →
  1114. <span class="stream-comment-icon"></span>
  1115. <a href="http://we.easyelectronics.ru/trengtor/oblagorazhivaem-deshevyy-kitayskiy-dc-dc-preobrazovatel.html#comment159224" class="topic-title">Облагораживаем дешевый китайский DC-DC преобразователь</a>
  1116. <span>58</span> →
  1117. <a href="http://we.easyelectronics.ru/my/trengtor/" class="blog-title">Блог им. trengtor</a>
  1118. </li>
  1119. <li>
  1120. <a href="http://we.easyelectronics.ru/profile/Vga/" class="user">Vga</a> →
  1121. <span class="stream-comment-icon"></span>
  1122. <a href="http://we.easyelectronics.ru/pashamray/otkrytoe-programmnoe-obespechenie-dlya-programmatora-tl866.html#comment159203" class="topic-title">Открытое программное обеспечение для программатора TL866</a>
  1123. <span>30</span> →
  1124. <a href="http://we.easyelectronics.ru/my/pashamray/" class="blog-title">Блог им. pashamray</a>
  1125. </li>
  1126. <li class="even">
  1127. <a href="http://we.easyelectronics.ru/profile/trengtor/" class="user">trengtor</a> →
  1128. <span class="stream-comment-icon"></span>
  1129. <a href="http://we.easyelectronics.ru/trengtor/poradovali-avtory-diptrace.html#comment159170" class="topic-title">Порадовали авторы DipTrace</a>
  1130. <span>76</span> →
  1131. <a href="http://we.easyelectronics.ru/my/trengtor/" class="blog-title">Блог им. trengtor</a>
  1132. </li>
  1133. <li>
  1134. <a href="http://we.easyelectronics.ru/profile/selevo/" class="user">selevo</a> →
  1135. <span class="stream-comment-icon"></span>
  1136. <a href="http://we.easyelectronics.ru/angel5a/stm8-i-termometr-lm75.html#comment159157" class="topic-title">STM8 и термометр LM75</a>
  1137. <span>34</span> →
  1138. <a href="http://we.easyelectronics.ru/my/angel5a/" class="blog-title">Блог им. angel5a</a>
  1139. </li>
  1140. <li class="even">
  1141. <a href="http://we.easyelectronics.ru/profile/Vga/" class="user">Vga</a> →
  1142. <span class="stream-comment-icon"></span>
  1143. <a href="http://we.easyelectronics.ru/cortex/sparivaem-coide-i-rossiyskiy-cortex-m3.html#comment159110" class="topic-title">Спариваем CoIDE и российский Cortex M3</a>
  1144. <span>40</span> →
  1145. <a href="http://we.easyelectronics.ru/blog/cortex/" class="blog-title">Cortex</a>
  1146. </li>
  1147. <li>
  1148. <a href="http://we.easyelectronics.ru/profile/Leoniv/" class="user">Leoniv</a> →
  1149. <span class="stream-comment-icon"></span>
  1150. <a href="http://we.easyelectronics.ru/STM32/demony-v-acp-stm32.html#comment159105" class="topic-title">Демоны в АЦП STM32</a>
  1151. <span>20</span> →
  1152. <a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
  1153. </li>
  1154. <li class="even">
  1155. <a href="http://we.easyelectronics.ru/profile/count_enable/" class="user">count_enable</a> →
  1156. <span class="stream-comment-icon"></span>
  1157. <a href="http://we.easyelectronics.ru/khomin/m-bus-chast-i.html#comment159037" class="topic-title">M-BUS, часть I</a>
  1158. <span>16</span> →
  1159. <a href="http://we.easyelectronics.ru/my/khomin/" class="blog-title">Блог им. khomin</a>
  1160. </li>
  1161. <li>
  1162. <a href="http://we.easyelectronics.ru/profile/well-man2000/" class="user">well-man2000</a> →
  1163. <span class="stream-comment-icon"></span>
  1164. <a href="http://we.easyelectronics.ru/Tools/instrument-dlya-zachistki-mgtf.html#comment158952" class="topic-title">Инструмент для зачистки МГТФ</a>
  1165. <span>118</span> →
  1166. <a href="http://we.easyelectronics.ru/blog/Tools/" class="blog-title">Инструмент</a>
  1167. </li>
  1168. <li class="even">
  1169. <a href="http://we.easyelectronics.ru/profile/Logman/" class="user">Logman</a> →
  1170. <span class="stream-comment-icon"></span>
  1171. <a href="http://we.easyelectronics.ru/STM32/stm32-1-wire-dma-prodolzhenie.html#comment158920" class="topic-title">Stm32 + 1-wire + DMA (продолжение)</a>
  1172. <span>16</span> →
  1173. <a href="http://we.easyelectronics.ru/blog/STM32/" class="blog-title">STM32</a>
  1174. </li>
  1175. <li>
  1176. <a href="http://we.easyelectronics.ru/profile/skelet/" class="user">skelet</a> →
  1177. <span class="stream-comment-icon"></span>
  1178. <a href="http://we.easyelectronics.ru/skelet/klon-r-45.html#comment158766" class="topic-title">Клон Р-45</a>
  1179. <span>11</span> →
  1180. <a href="http://we.easyelectronics.ru/my/skelet/" class="blog-title">Блог им. skelet</a>
  1181. </li>
  1182. </ul>
  1183. <div class="bottom">
  1184. <a href="http://we.easyelectronics.ru/comments/">Весь эфир</a> | <a href="http://we.easyelectronics.ru/rss/allcomments/">RSS</a>
  1185. </div>
  1186. </div>
  1187. </div>
  1188. <div class="block tags">
  1189. <ul class="cloud">
  1190. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/1-Wire/">1-Wire</a></li>
  1191. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/Altera/">Altera</a></li>
  1192. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/arduino/">arduino</a></li>
  1193. <li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/ARM/">ARM</a></li>
  1194. <li><a class="w10" rel="tag" href="http://we.easyelectronics.ru/tag/AVR/">AVR</a></li>
  1195. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/avr-gcc/">avr-gcc</a></li>
  1196. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/C%2B%2B/">C++</a></li>
  1197. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/DIY/">DIY</a></li>
  1198. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/enc28j60/">enc28j60</a></li>
  1199. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/ethernet/">ethernet</a></li>
  1200. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/FPGA/">FPGA</a></li>
  1201. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/gcc/">gcc</a></li>
  1202. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/I2C/">I2C</a></li>
  1203. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/IAR/">IAR</a></li>
  1204. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/KEIL/">KEIL</a></li>
  1205. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/LaunchPad/">LaunchPad</a></li>
  1206. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/LCD/">LCD</a></li>
  1207. <li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/led/">led</a></li>
  1208. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/linux/">linux</a></li>
  1209. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/LPCXpresso/">LPCXpresso</a></li>
  1210. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/MSP430/">MSP430</a></li>
  1211. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/nxp/">nxp</a></li>
  1212. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/PCB/">PCB</a></li>
  1213. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/PIC/">PIC</a></li>
  1214. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/pinboard2/">pinboard2</a></li>
  1215. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/RTOS/">RTOS</a></li>
  1216. <li><a class="w10" rel="tag" href="http://we.easyelectronics.ru/tag/STM32/">STM32</a></li>
  1217. <li><a class="w6" rel="tag" href="http://we.easyelectronics.ru/tag/STM8/">STM8</a></li>
  1218. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/STM8L/">STM8L</a></li>
  1219. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/TI/">TI</a></li>
  1220. <li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/UART/">UART</a></li>
  1221. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/USART/">USART</a></li>
  1222. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/USB/">USB</a></li>
  1223. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC/">алгоритм</a></li>
  1224. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80/">ассемблер</a></li>
  1225. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%90%D0%A6%D0%9F/">АЦП</a></li>
  1226. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B1%D0%BB%D0%BE%D0%BA%20%D0%BF%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F/">блок питания</a></li>
  1227. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81/">вопрос</a></li>
  1228. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D1%8C%D0%BA%D0%B0/">деталька</a></li>
  1229. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B9/">дисплей</a></li>
  1230. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B8%D0%B4%D0%B5%D1%8F/">идея</a></li>
  1231. <li><a class="w6" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82/">инструмент</a></li>
  1232. <li><a class="w6" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D1%81/">конкурс</a></li>
  1233. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D1%812/">конкурс2</a></li>
  1234. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%9B%D0%A3%D0%A2/">ЛУТ</a></li>
  1235. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B/">микроконтроллеры</a></li>
  1236. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D0%BC/">начинающим</a></li>
  1237. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BE%D0%B1%D0%B7%D0%BE%D1%80/">обзор</a></li>
  1238. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/">Отладочная плата</a></li>
  1239. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%B0%D1%8F%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA/">паяльник</a></li>
  1240. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/">печатная плата</a></li>
  1241. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D0%B5/">питание</a></li>
  1242. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%BB%D0%B0%D1%82%D0%B0/">плата</a></li>
  1243. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%9F%D0%9B%D0%98%D0%A1/">ПЛИС</a></li>
  1244. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%BE%D0%B4%D0%B5%D0%BB%D0%BA%D0%B8/">поделки</a></li>
  1245. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8/">покупки</a></li>
  1246. <li><a class="w4" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80/">программатор</a></li>
  1247. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/">программирование</a></li>
  1248. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%80%D0%BE%D0%B1%D0%BE%D1%82/">робот</a></li>
  1249. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4/">светодиод</a></li>
  1250. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D0%BE%D1%84%D1%82/">софт</a></li>
  1251. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D1%85%D0%B5%D0%BC%D0%B0/">схема</a></li>
  1252. <li><a class="w3" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%81%D1%85%D0%B5%D0%BC%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0/">схемотехника</a></li>
  1253. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8/">Технологии</a></li>
  1254. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%83%D0%BC%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC/">умный дом</a></li>
  1255. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%84%D0%BE%D1%82%D0%BE%D1%80%D0%B5%D0%B7%D0%B8%D1%81%D1%82/">фоторезист</a></li>
  1256. <li><a class="w5" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%85%D0%B0%D0%BB%D1%8F%D0%B2%D0%B0/">халява</a></li>
  1257. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%85%D1%80%D0%B5%D0%BD%D1%8C/">хрень</a></li>
  1258. <li><a class="w1" rel="tag" href="http://we.easyelectronics.ru/tag/%D0%A7%D0%B0%D1%81%D1%8B/">Часы</a></li>
  1259. <li><a class="w2" rel="tag" href="http://we.easyelectronics.ru/tag/%D1%8E%D0%BC%D0%BE%D1%80/">юмор</a></li>
  1260. </ul>
  1261. </div>
  1262. <div class="block blogs" id="block_blogs">
  1263. <h2>Блоги</h2>
  1264. <ul class="switcher">
  1265. <li id="block_blogs_item_top" class="active">Топ</li>
  1266. </ul>
  1267. <div class="block-content" id="block_blogs_content">
  1268. <ul class="list">
  1269. <li>
  1270. <span class="rating">37.52</span>
  1271. <a href="http://we.easyelectronics.ru/blog/AVR/">AVR</a>
  1272. </li>
  1273. <li>
  1274. <span class="rating">36.47</span>
  1275. <a href="http://we.easyelectronics.ru/blog/STM8/">STM8</a>
  1276. </li>
  1277. <li>
  1278. <span class="rating">29.53</span>
  1279. <a href="http://we.easyelectronics.ru/blog/JunkBox/">Мусоровоз</a>
  1280. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/lock.png" alt="[x]" title="Закрытый блог"> </li>
  1281. <li>
  1282. <span class="rating">25.72</span>
  1283. <a href="http://we.easyelectronics.ru/blog/STM32/">STM32</a>
  1284. </li>
  1285. <li>
  1286. <span class="rating">23.24</span>
  1287. <a href="http://we.easyelectronics.ru/blog/part/">Деталька</a>
  1288. </li>
  1289. <li>
  1290. <span class="rating">21.17</span>
  1291. <a href="http://we.easyelectronics.ru/blog/electro-and-pc/">Связь железа с компьютером.</a>
  1292. </li>
  1293. <li>
  1294. <span class="rating">18.15</span>
  1295. <a href="http://we.easyelectronics.ru/blog/Shematech/">Схемотехника</a>
  1296. </li>
  1297. <li>
  1298. <span class="rating">17.75</span>
  1299. <a href="http://we.easyelectronics.ru/blog/smarthouse/">Умный дом</a>
  1300. </li>
  1301. <li>
  1302. <span class="rating">17.13</span>
  1303. <a href="http://we.easyelectronics.ru/blog/msp430/">MSP430</a>
  1304. </li>
  1305. <li>
  1306. <span class="rating">14.79</span>
  1307. <a href="http://we.easyelectronics.ru/blog/LPC/">LPC1xxx</a>
  1308. </li>
  1309. </ul>
  1310. </div>
  1311. <div class="bottom">
  1312. <a href="http://we.easyelectronics.ru/blogs/">Все блоги</a>
  1313. </div>
  1314. </div>
  1315. </div> </div><!-- /wrapper -->
  1316. <div id="footer">
  1317. <div id="footer-inner">
  1318. <div class="right">© Powered by <a href="http://livestreetcms.ru/">LiveStreet CMS</a></div>
  1319. Design by — <a href="http://www.xeoart.com/">Студия XeoArt</a>
  1320. <img src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/xeoart.gif" border="0">
  1321. </div>
  1322. </div>
  1323. </div><!-- /container -->
  1324. <!-- Yandex.Metrika counter -->
  1325. <div style="display:none;"><script type="text/javascript">
  1326. (function(w, c) {
  1327. (w[c] = w[c] || []).push(function() {
  1328. try {
  1329. w.yaCounter4558804 = new Ya.Metrika({id:4558804,
  1330. clickmap:true,
  1331. trackLinks:true});
  1332. }
  1333. catch(e) { }
  1334. });
  1335. })(window, "yandex_metrika_callbacks");
  1336. </script></div>
  1337. <script src="MMC%28SD%29%20%D0%B8%20AVR.%20%D0%A7%D0%B0%D1%81%D1%82%D1%8C%201.%20%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F.%20_%20AVR%20_%20%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20EasyElectronics.ru_files/watch.js" type="text/javascript" defer="defer"></script>
  1338. <noscript><div><img src="//mc.yandex.ru/watch/4558804" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  1339. <!-- /Yandex.Metrika counter -->
  1340. </body></html>