STM32. Интерфейс SPI » ChipSpace.htm 178 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843
  1. <!DOCTYPE html>
  2. <!--[if IE 6]> <html id="ie6" lang="ru-RU"> <![endif]-->
  3. <!--[if IE 7]> <html id="ie7" lang="ru-RU"> <![endif]-->
  4. <!--[if IE 8]> <html id="ie8" lang="ru-RU"> <![endif]-->
  5. <!--[if !(IE 6) | !(IE 7) | !(IE 8)]><!-->
  6. <html lang="ru-RU"><!--<![endif]--><head>
  7. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  8. <meta charset="UTF-8">
  9. <link rel="pingback" href="http://chipspace.ru/xmlrpc.php">
  10. <title> STM32. Интерфейс SPI » ChipSpace</title>
  11. <meta name="description" content="Рассмотрена работа с интерфейсом SPI микроконтроллеров STM32.">
  12. <meta name="keywords" content="stm32,spi stm32">
  13. <link rel="shortcut icon" href="http://chipspace.ru/wp-content/uploads/2013/06/Favicon_32.jpg">
  14. <!--[if lt IE 9]>
  15. <script src="http://chipspace.ru/wp-content/themes/suffusion/scripts/html5.js" type="text/javascript"></script>
  16. <![endif]-->
  17. <link rel="alternate" type="application/rss+xml" title="ChipSpace » Лента" href="http://chipspace.ru/feed/">
  18. <link rel="alternate" type="application/rss+xml" title="ChipSpace » Лента комментариев" href="http://chipspace.ru/comments/feed/">
  19. <link rel="alternate" type="application/rss+xml" title="ChipSpace » Лента комментариев к «STM32. Интерфейс SPI»" href="http://chipspace.ru/stm32-spi/feed/">
  20. <script type="text/javascript">
  21. window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/chipspace.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.2.5"}};
  22. !function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&&c.getContext("2d");return d&&d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),c.toDataURL().length>3e3):(d.fillText(String.fromCharCode(55357,56835),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
  23. </script>
  24. <style type="text/css">
  25. img.wp-smiley,
  26. img.emoji {
  27. display: inline !important;
  28. border: none !important;
  29. box-shadow: none !important;
  30. height: 1em !important;
  31. width: 1em !important;
  32. margin: 0 .07em !important;
  33. vertical-align: -0.1em !important;
  34. background: none !important;
  35. padding: 0 !important;
  36. }
  37. </style>
  38. <link rel="stylesheet" id="sidebar-login-css" href="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/sidebar-login.css" type="text/css" media="all">
  39. <link rel="stylesheet" id="suffusion-theme-css" href="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/style.css" type="text/css" media="all">
  40. <link rel="stylesheet" id="suffusion-theme-skin-1-css" href="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/skin.css" type="text/css" media="all">
  41. <!--[if !IE]>--><link rel="stylesheet" id="suffusion-rounded-css" href="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/rounded-corners.css" type="text/css" media="all">
  42. <!--<![endif]-->
  43. <!--[if gt IE 8]><link rel='stylesheet' id='suffusion-rounded-css' href='http://chipspace.ru/wp-content/themes/suffusion/rounded-corners.css?ver=4.4.7' type='text/css' media='all' />
  44. <![endif]-->
  45. <!--[if lt IE 8]><link rel='stylesheet' id='suffusion-ie-css' href='http://chipspace.ru/wp-content/themes/suffusion/ie-fix.css?ver=4.4.7' type='text/css' media='all' />
  46. <![endif]-->
  47. <link rel="stylesheet" id="suffusion-generated-css" href="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/a.css" type="text/css" media="all">
  48. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/jquery-2.js"></script>
  49. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/prettify_mod.js"></script>
  50. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/jquery-migrate-1.js"></script>
  51. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/jquery.js"></script>
  52. <script type="text/javascript">
  53. /* <![CDATA[ */
  54. var sidebar_login_params = {"ajax_url":"http:\/\/chipspace.ru\/wp-admin\/admin-ajax.php","force_ssl_login":"0","force_ssl_admin":"0","is_ssl":"0","i18n_username_required":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f","i18n_password_required":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c","error_class":"sidebar_login_error"};
  55. /* ]]> */
  56. </script>
  57. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/sidebar-login.js"></script>
  58. <script type="text/javascript">
  59. /* <![CDATA[ */
  60. var Suffusion_JS = {"wrapper_width_type_page_template_1l_sidebar_php":"fixed","wrapper_max_width_page_template_1l_sidebar_php":"1200","wrapper_min_width_page_template_1l_sidebar_php":"600","wrapper_orig_width_page_template_1l_sidebar_php":"75","wrapper_width_type_page_template_1r_sidebar_php":"fixed","wrapper_max_width_page_template_1r_sidebar_php":"1200","wrapper_min_width_page_template_1r_sidebar_php":"600","wrapper_orig_width_page_template_1r_sidebar_php":"75","wrapper_width_type_page_template_1l1r_sidebar_php":"fixed","wrapper_max_width_page_template_1l1r_sidebar_php":"1200","wrapper_min_width_page_template_1l1r_sidebar_php":"600","wrapper_orig_width_page_template_1l1r_sidebar_php":"75","wrapper_width_type_page_template_2l_sidebars_php":"fixed","wrapper_max_width_page_template_2l_sidebars_php":"1200","wrapper_min_width_page_template_2l_sidebars_php":"600","wrapper_orig_width_page_template_2l_sidebars_php":"75","wrapper_width_type_page_template_2r_sidebars_php":"fixed","wrapper_max_width_page_template_2r_sidebars_php":"1200","wrapper_min_width_page_template_2r_sidebars_php":"600","wrapper_orig_width_page_template_2r_sidebars_php":"75","wrapper_width_type":"fluid","wrapper_max_width":"1200","wrapper_min_width":"600","wrapper_orig_width":"98","wrapper_width_type_page_template_no_sidebars_php":"fluid","wrapper_max_width_page_template_no_sidebars_php":"1200","wrapper_min_width_page_template_no_sidebars_php":"600","wrapper_orig_width_page_template_no_sidebars_php":"98","suf_featured_interval":"4000","suf_featured_transition_speed":"1000","suf_featured_fx":"fade","suf_featured_pause":"Pause","suf_featured_resume":"Resume","suf_featured_sync":"0","suf_featured_pager_style":"numbers","suf_nav_delay":"500","suf_nav_effect":"none","suf_navt_delay":"500","suf_navt_effect":"fade","suf_jq_masonry_enabled":"disabled","suf_fix_aspect_ratio":"preserve","suf_show_drop_caps":""};
  61. /* ]]> */
  62. </script>
  63. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/suffusion.js"></script>
  64. <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://chipspace.ru/xmlrpc.php?rsd">
  65. <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://chipspace.ru/wp-includes/wlwmanifest.xml">
  66. <link rel="prev" title="STM32L. System clock configuration. Утилита для конфигурации тактовых частот и создания файла system_stm32l1xx.c." href="http://chipspace.ru/stm32-system-clock-configuration/">
  67. <link rel="next" title="STM32. Стандартные библиотеки для модуля SPI" href="http://chipspace.ru/stm32-spi-stdperiph_lib/">
  68. <link rel="canonical" href="http://chipspace.ru/stm32-spi/">
  69. <link rel="shortlink" href="http://chipspace.ru/?p=1110">
  70. <!-- Start Additional Feeds -->
  71. <!-- End Additional Feeds -->
  72. <!-- location header -->
  73. <!-- THEMEKITFORWP STYLE OPTIONS prettify-wordpress-->
  74. <style>.str{ color: #800; }
  75. .kwd{ color: #008; }
  76. .com{ color: #0f800f; }
  77. .typ{ color: #606; }
  78. .lit{ color: #066; }
  79. .pun{ color: #660; }
  80. .pln{ color: #0e0e11; }
  81. .tag{ color: #008; }
  82. .atn{ color: #606; }
  83. .atv{ color: #088108; }
  84. .dec{ color: #606; }
  85. .prettyprint, .prettyprint code{ background-color: #fdfcfc;}
  86. .prettyprint{border: #5c71b7 solid 1px;padding: 10px; margin: 0 0 20px 0; overflow: auto; position: relative;}
  87. .prettyprint{-moz-border-radius: 0px;border-radius: 0px;}
  88. .prettyprint, .prettyprint code{ font-weight: normal; font-style: normal; font-size: 13px; color: #333333; font-family: Courier New, Courier New, monospace; }
  89. .prettyprint:after{ font-weight: normal; font-style: normal; font-size: 13px; color: #999999; font-family: Courier, MonoSpace; }
  90. .prettyprint:after{ content: attr(rel); position: absolute; top: 15px; line-height: 0; right: 12px; }
  91. </style><!-- END THEMEKITFORWP STYLE OPTIONS --></head>
  92. <body class="single single-post postid-1110 single-format-standard custom-background light-theme-purple suffusion-custom device-desktop">
  93. <nav id="nav-top" class="tab fix">
  94. <div class="col-control right">
  95. </div><!-- /.col-control -->
  96. </nav><!-- /#nav-top -->
  97. <div id="wrapper" class="fix">
  98. <div id="header-container" class="custom-header fix">
  99. <header id="header" class="fix">
  100. <h2 class="blogtitle left"><a href="http://chipspace.ru/">ChipSpace</a></h2>
  101. <div class="description right"></div>
  102. </header><!-- /header -->
  103. <nav id="nav" class="tab fix">
  104. <div class="col-control left">
  105. <!-- right-header-widgets -->
  106. <div id="right-header-widgets" class="warea">
  107. <form method="get" class="searchform " action="http://chipspace.ru/">
  108. <input name="s" class="searchfield" value="Search" onfocus="if (this.value == 'Search') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search';}" type="text">
  109. <input class="searchsubmit" value="" name="searchsubmit" type="submit">
  110. </form>
  111. </div>
  112. <!-- /right-header-widgets -->
  113. <ul class="sf-menu">
  114. <li><a href="http://chipspace.ru/">Главная</a></li><li class="page_item page-item-762"><a href="http://chipspace.ru/contact/">Контакты</a></li>
  115. <li class="page_item page-item-2800"><a href="http://chipspace.ru/%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%8d%d0%bb%d0%b5%d0%ba%d1%82%d1%80%d0%be%d0%bd%d0%b8%d0%ba%d0%b8/">Разработка электроники</a></li>
  116. <li class="page_item page-item-1125"><a href="http://chipspace.ru/links/">Ссылки</a></li>
  117. <li><a href="http://feeds.feedburner.com/chipspace" title="Подписка на RSS-ленту новостей дает возможность узнавать об обновлениях на сайте" target="_blank">RSS</a></li>
  118. <li><a href="http://chipspace.ru/karta-sajta/" title="Полный список статей" target="_blank">Содержание</a></li>
  119. </ul>
  120. </div><!-- /col-control -->
  121. </nav><!-- /nav -->
  122. </div><!-- //#header-container -->
  123. <script type="text/javascript">
  124. <!--
  125. var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="//www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})()
  126. //-->
  127. </script> <div id="container" class="fix">
  128. <div id="main-col">
  129. <div id="content">
  130. <article class="post-1110 post type-post status-publish format-standard hentry category-microcontrollers-stm32 tag-stm32 tag-stm32-spi tag-stm32-discovery category-9-id full-content meta-position-corners fix" id="post-1110">
  131. <header class="post-header title-container fix">
  132. <div class="title">
  133. <h1 class="posttitle"><a href="http://chipspace.ru/stm32-spi/" class="entry-title" rel="bookmark" title="STM32. Интерфейс SPI">STM32. Интерфейс SPI</a></h1>
  134. <div class="postdata fix">
  135. <span class="category"><span class="icon">&nbsp;</span><a href="http://chipspace.ru/category/microcontrollers/microcontrollers-stm32/" rel="category tag">STM32</a></span>
  136. <span class="comments"><span class="icon">&nbsp;</span><a href="#respond">Add comments</a></span>
  137. </div><!-- /.postdata -->
  138. </div><!-- /.title -->
  139. <div class="date"><span class="month">Окт</span> <span class="day">03</span><span class="year">2012</span></div>
  140. </header><!-- /.title-container -->
  141. <span class="post-format-icon">&nbsp;</span><span class="updated" title="2012-10-03T01:05:00+00:00"></span> <div class="entry-container fix">
  142. <div class="entry fix">
  143. <p><em>SPI (Serial Pheripheral Interface) – </em>последовательный
  144. синхронный интерфейс для обмена данными между микросхемами. Этот
  145. интерфейс подразумевает четкую иерархию – всегда есть ведущее устройство
  146. “Master” и подчиненное устройство “Slave” (или несколько устройств на
  147. одной шине). Master выбирает подчиненное устройство, с которым будет
  148. производить обмен данными в текущий момент. Подчиненные устройства Slave
  149. ожидают команды от Master для начала обмена данными. Сигнал
  150. синхронизации генерирует Master и, далее, ведущее и подчиненное
  151. устройства начинают обмен данными. Ведущим устройством очень часто
  152. является микроконтроллер, а подчиненными устройствами могут быть
  153. различные микросхемы: память, АЦП и ЦАП, микроконтроллеры, и другие.</p>
  154. <p><span id="more-1110"></span>Простейшая схема подключения при
  155. использовании интерфейса SPI с одним ведущим и одним подчиненным
  156. устройством приведена на рисунке.
  157. </p><p><a href="http://chipspace.ru/wp-content/uploads/2013/11/SPI.gif"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SPI" alt="SPI" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/SPI_thumb.gif" border="0" height="209" width="469"></a></p>
  158. <p>На этом рисунке, как уже упоминалось выше, Master – ведущее
  159. устройство, Slave – подчиненное. Как видно из рисунка, одноименные
  160. выводы соединены друг с другом. Рассмотрим подробнее назначение
  161. используемых выводов.</p>
  162. <ul>
  163. <li><strong>MOSI</strong> (<em>Master Output Slave Input</em>) – в
  164. зависимости от режима работы это вход или выход. Если устройство
  165. является ведущим (Master), то вывод будет являться выходом для передачи
  166. данных подчиненному устройству (<em><strong>Master Output</strong> <span style="color: #808080">Slave Input</span></em>).
  167. В обратном случае, когда устройство является подчиненным (Slave), этот
  168. вывод будет входом для приема данных от ведущего устройства (<em><span style="color: #808080">Master Output</span></em> <em><strong>Slave Input</strong></em>). </li>
  169. <li><strong>MISO</strong> (<em>Master Input Slave Output</em>) – этот
  170. вывод также служит для передачи или приема данных, но в обратном
  171. направлении, чем предыдущий. То есть, если устройство является ведущим
  172. (Master), вывод является входом для приема данных от подчиненного
  173. устройства (<em><strong>Master Input</strong> <span style="color: #808080">Slave Output</span></em>). А для подчиненного устройства (Slave) этот вывод – выход для передачи данных ведущему устройству (<em><span style="color: #808080">Master Input</span> <strong>Slave Output</strong></em>). Стрелки на рисунке у выводов MOSI и MISO отображают направление потока данных. </li>
  174. <li><strong>SCK</strong> (<em>Serial Clock</em>) – тактовый сигнал. Генерируется ведущим устройством (Master). </li>
  175. <li><strong>NSS</strong> (<em>Slave Select</em>) – выбор подчиненного
  176. устройства. Низкий уровень на этом входе у подчиненного устройства
  177. означает, что оно выбрано ведущим устройством для обмена данными. </li>
  178. </ul>
  179. <p>Это краткая информация о назначении выводов при использовании данного интерфейса. <br>С выводами MOSI и MISO все однозначно – это передача и прием данных. <br>Для
  180. тактового сигнала (линия SCK) имеются несколько комбинаций полярности
  181. сигнала (высокий или низкий уровень сигнала в состоянии ожидания, когда
  182. нет обмена данными) и фазы сигнала синхронизации. Под фазой сигнала
  183. синхронизации имеется в виду привязка моментов выдачи данных на шину и
  184. чтения данных с шины к соответствующим моментам изменения уровней
  185. тактового сигнала. Для устройств Master и Slave настройки режимов
  186. тактовой линии SCK должны совпадать. В документации на конкретное
  187. периферийное устройство можно найти информацию о полярности и фазе
  188. тактового сигнала, используемых при чтении и передаче данных.
  189. Производителем микросхемы может быть предусмотрен всего один из
  190. возможных режимов, поэтому при настройке ведущего устройства
  191. (микроконтроллера), эту информацию необходимо учитывать. <br>Вывод
  192. NSS у микроконтроллеров STM32 тоже может быть сконфигурирован по
  193. разному. Все возможные варианты настроек линий SCK и NSS рассмотрим
  194. подробней, но чуть позже.</p>
  195. <p>Пока же начнем с внутренней структуры модуля SPI и принципов его функционирования.</p>
  196. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/Single-master_single-slave-application.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Single master_single slave application" alt="Single master_single slave application" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/Single-master_single-slave-application_thumb.jpg" border="0" height="275" width="620"></a></p>
  197. <p>На этом рисунке изображены основные элементы модулей SPI ведущего и
  198. подчиненного устройств, задействованные при обмене данными. Генератор
  199. ведущего устройства (SPI clock generator) формирует тактовый сигнал,
  200. управляющий регистрами сдвига обоих устройств. Регистр сдвига ведущего
  201. устройства Master с каждым тактовым импульсом сдвигает свое содержимое,
  202. при этом на выход MOSI последовательно выдаются данные, а со входа MISO
  203. считываются данные и загружаются в тот же регистр сдвига, но с другой
  204. стороны. Когда подчиненное устройство начинает принимать данные на вход
  205. MOSI, эти данные последовательно заносятся в его регистр сдвига.
  206. Одновременно, с приходом каждого нового тактового импульса, с другой
  207. стороны регистра сдвига данные “выталкиваются” на выход MISO, эти данные
  208. передаются ведущему устройству. Перед началом передачи данных между
  209. устройствами, эти данные должны быть загружены в регистры сдвига обоих
  210. устройств. Прямого доступа к регистру сдвига нет, для записи и чтения
  211. данных существует регистр SPI_DR, который взаимодействует с регистром
  212. сдвига. Перед началом передачи данных, эти данные необходимо записать в
  213. регистр SPI_DR, а принятые данные считываются из этого же регистра.
  214. Никаких противоречий здесь нет, пользователю виден только один регистр
  215. SPI_DR, но фактически этот регистр разделен на два отдельных буферных
  216. регистра: Tx buffer и Rx buffer. При операции записи в регистр SPI_DR
  217. происходит запись в Tx buffer и в регистр сдвига, эти данные
  218. предназначены для передачи. После окончания приема данных, содержимое
  219. регистра сдвига переносится в Rx buffer. При операции чтения из регистра
  220. SPI_DR, происходит обращение уже к Rx buffer и оттуда считываются
  221. принятые данные.</p>
  222. <p>Модуль SPI STM32 может оперировать с данными размерностью 8 или 16
  223. разрядов. Направление передачи данных может быть разным: первым может
  224. передаваться старший значащий бит (MSB) или младший значащий бит (LSB).</p>
  225. <p>На рисунке приведена общая блок-схема модуля SPI.</p>
  226. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/SPI-block-diagram.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SPI block diagram" alt="SPI block diagram" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/SPI-block-diagram_thumb.jpg" border="0" height="521" width="660"></a></p>
  227. <p>Кроме уже знакомых регистров Shift register, Rx buffer, Tx buffer, здесь изображены следующие компоненты:</p>
  228. <ul>
  229. <li>2 регистра управления – SPI_CR1, SPI_CR2, а также регистр статуса SPI_SR. </li>
  230. <li>Генератор тактового сигнала – Baud rate generator. Скорость обмена
  231. данными (частота сигнала на выходе SCK) задается с помощью разрядов
  232. BR[2:0] регистра SPI_CR1. Частота может задаваться от Fpclk/2 до
  233. Fpclk/256, где Fpclk – входная частота тактирования модуля SPI. </li>
  234. <li>Управляющая логика – Master control logic. Управляет блоком
  235. передачи/приема устройства (выводы MOSI/MISO) в зависимости от заданных
  236. настроек. Могут использоваться различные режимы работы модуля SPI:
  237. полнодуплексный режим (передача и прием данных осуществляются через
  238. разные выводы); режим передачи и приема с использованием одной
  239. двунаправленной линии; режим работы только на прием данных (передатчик
  240. отключен). </li>
  241. <li>Блок Communication&nbsp; control, как видно из рисунка может
  242. выставить некоторые флаги ошибок в регистре статуса SPI_SR, например,
  243. потери данных <strong>OVR</strong> (когда в приемный буфер поступили
  244. новые данные, а предыдущие еще не были считаны, соответственно, они
  245. будут перезаписаны и потеряны); <strong>MODF</strong> – флаг
  246. сигнализирует, что при работе устройства в режиме Master на вход NSS
  247. поступил сигнал низкого уровня и устройство должно быть переведено в
  248. режим Slave; <strong>CRCERR</strong> – при проверке контрольной суммы выявлена ошибка. </li>
  249. <li>Мультиплексор выбора режимов работы вывода NSS, изображен вот таким блоком на рисунке. </li>
  250. </ul>
  251. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/Multiplex-NSS.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Multiplex NSS" alt="Multiplex NSS" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/Multiplex-NSS_thumb.jpg" border="0" height="138" width="154"></a></p>
  252. <p>Рассмотрим подробней режимы конфигурации вывода NSS модуля SPI.
  253. Дополнительный вывод NSS предназначен для выбора подчиненного устройства
  254. подачей на его вход SS (Slave Select) сигнала низкого уровня. Этот
  255. вывод позволяет ведущему устройству Master поддерживать связь с
  256. конкретным подчиненным устройством, не создавая конфликтов на шине
  257. данных.&nbsp; В ведущем устройстве Master вывод NSS может использоваться
  258. в качестве выхода (установлен бит SSOE) и управлять ведомым
  259. устройством. Если в режиме Master вывод NSS сконфигурирован как вход, то
  260. на нем должен быть высокий уровень. В противном случае, низкий уровень
  261. на входе NSS ведущего устройства Master вызовет переход модуля SPI в
  262. состояние “ошибка режима Master”, при этом устройство автоматически
  263. перейдет в режим Slave.</p>
  264. <p>Управление NSS может быть программным или аппаратным. Выбор режима зависит от состояния бита SSM регистра SPI_CR1.</p>
  265. <ul>
  266. <li>SSM = 1 — программное управление NSS. Уведомление о выборе Slave
  267. Select формируется внутри модуля SPI. Логический уровень сигнала на
  268. выводе NSS в данном случае игнорируется, вместо него определяющим
  269. становится значение бита SSI, которым и заменяется состояние входа NSS.
  270. Напомню, если устройство Master, то SSI должен быть установлен, что
  271. аналогично высокому уровню на входе NSS. Иначе, модуль перейдет в режим
  272. Slave, просигнализировав об “ошибке режима Master” установкой бита MODF и
  273. может сгенерировать прерывание, если это разрешено. В этом режиме
  274. внешний вывод NSS освобождается и может быть использован в приложении
  275. для других целей как обычный GPIO. </li>
  276. <li>SSM = 0 – аппаратное управление NSS. В этом режиме вывод NSS
  277. используется модулем SPI в двух разных конфигурациях, в зависимости от
  278. состояния разряда SSOE регистра SPI_CR2, который разрешает использовать
  279. этот вывод в качестве выхода или же нет.- Когда NSS разрешено работать в
  280. качестве выхода (SSM = 0, SSOE = 1), эта конфигурация используется
  281. только в режиме Master. Когда ведущее устройство начинает соединение,
  282. NSS переводится в состояние низкого уровня, и поддерживается в этом
  283. состоянии до момента деактивации модуля SPI.
  284. <p>— В другой конфигурации NSS запрещено использовать как выход (SSM =
  285. 0, SSOE = 0). Это позволяет использовать “мультимастерный” режим для
  286. нескольких ведущих устройств Master. Для устройств Slave вход NSS так и
  287. остается входом выбора устройства для обмена данными, управляемым низким
  288. уровнем.</p>
  289. </li>
  290. </ul>
  291. <p>Для управления выбором подчиненных устройств Slave select, в ведущем
  292. устройстве Master вместо вывода NSS можно задействовать любые другие
  293. выводы портов микроконтроллера. Подача низкого уровня на вход Slave
  294. select подчиненного устройства может быть воспринята некоторыми
  295. микросхемами как сигнал к началу обмена данными, поэтому принудительно
  296. подключать вход NSS к низкому уровню можно не у всех микросхем (у STM32
  297. так можно делать).</p>
  298. <p>Теперь рассмотрим различные комбинации полярности и фазы тактового
  299. сигнала. Всего тут возможны 4 режима работы, которые задаются битами
  300. CPOL и CPHA регистра SPI_CR1. Бит CPOL (clock polarity) определяет
  301. уровень сигнала синхронизации (высокий или низкий) на линии SCK в
  302. состоянии ожидания. При CPOL = 0 в состоянии ожидания будет низкий
  303. уровень сигнала на выходе SCK, а при CPOL = 1 – высокий уровень.
  304. Состояние бита CPHA задает перепад сигнала (переход из высокого уровня в
  305. низкий или наоборот), который будет являться стробирующим при фиксации
  306. данных на выводах MOSI и MISO. В зависимости от полярности тактового
  307. сигнала, заданной в разряде CPOL, бит CPHA задает первый или второй
  308. перепад тактового сигнала (falling edge или rising edge) в качестве
  309. стробирующего. 4 различных комбинации бит CPOL и CPHA и соответствующие
  310. им режимы приведены на рисунке ниже. На этом рисунке Capture strobe –
  311. моменты фиксации данных.</p>
  312. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/Data-clock-timing-diagram.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Data clock timing diagram" alt="Data clock timing diagram" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/Data-clock-timing-diagram_thumb.jpg" border="0" height="588" width="488"></a></p>
  313. <p>Теперь обратимся к регистрам модуля SPI. В микроконтроллерах STM32F,
  314. начиная с устройств high density, модуль SPI может содержать регистры
  315. для работы с интерфейсом I2S. То есть платы STM32L-DISCOVERY и
  316. STM32VL-DISCOVERY не поддерживают этот протокол. Далее при рассмотрении
  317. регистров будут описаны только те из них, которые относятся
  318. непосредственно к интерфейсу SPI. Интерфейс I2S предназначен для систем
  319. передачи аудиоданных, он более специализированный и, в данный момент,
  320. рассматриваться не будет.</p>
  321. <p><span style="color: #408080"><strong>Регистр управления SPI_CR1:</strong></span></p>
  322. <p><strong>Бит 15 — BIDIMODE — </strong>разрешает или запрещает использование двунаправленного режима обмена данными по одной линии</p>
  323. <p>0: Режим 2-х однонаправленных линий данных <br>1: Режим 1-ой двунаправленной линии данных</p>
  324. <p><strong>Бит 14 — BIDIOE — </strong>в режиме двунаправленного обмена данными по одной линии, разрешает или запрещает передачу данных</p>
  325. <p>0: Выход неактивен (только прием данных) <br>1: Выход активен (только передача данных) <br><em>В режиме Master используется вывод MOSI, в режиме Slave – MISO.</em></p>
  326. <p><strong>Биты 13 и&nbsp; <strong>12</strong> — CRCEN и <strong>CRCNEXT</strong>&nbsp;</strong>задействуют подсчет контрольной суммы данных.</p>
  327. <p><strong>Бит 11 — DFF – </strong>формат данных</p>
  328. <p>0: 8 бит <br>1: 16 бит</p>
  329. <p><strong>Бит 10 — RXONLY – </strong>только прием. В комбинации с битом BIDIMODE задает направление передачи данных.</p>
  330. <p>0: Полнодуплексный режим (передача и прием данных) <br>1: Выход отключен (только прием данных)</p>
  331. <p><strong>Бит 9 — SSM – </strong>программное управление выбором
  332. устройства (NSS). Когда этот бит установлен, вместо уровня на входе NSS
  333. контролируется состояние бита SSI.</p>
  334. <p>0: Программный режим отключен <br>1: Программный режим включен</p>
  335. <p><strong>Бит 8 — SSI – </strong>состояние этого бита воздействует на
  336. устройство только при установленном бите SSM (при программном управлении
  337. NSS). Значение этого бита принудительно заменяет состояние входа NSS,
  338. которое при этом игнорируется</p>
  339. <p><strong>Бит 7 — LSBFIRST – </strong>порядок передачи данных</p>
  340. <p>0: Первым передается старший значащий разряд – MSB <br>1: Первым передается младший значащий разряд – LSB</p>
  341. <p><strong>Бит 6 — SPE – </strong>включение модуля SPI</p>
  342. <p>0: модуль отключен <br>1: модуль включен</p>
  343. <p><strong>Биты 5:3 — BR[2:0] – </strong>выбор скорости обмена</p>
  344. <p>000: Fpclk/2 <br>001: Fpclk/4 <br>…………… <br>111: Fpclk/256</p>
  345. <p><strong>Бит 2 – MSTR</strong> – выбор режима Master</p>
  346. <p>0: Режим Slave <br>1: Режим Master</p>
  347. <p><strong>Бит 1 – CPOL – </strong>полярность тактового сигнала</p>
  348. <p>0: Низкий уровень в режиме ожидания на выводе SCK <br>1: Высокий уровень в режиме ожидания на выводе SCK</p>
  349. <p><strong>Бит 0 – CPHA</strong> – фаза тактового сигнала</p>
  350. <p>0: Строб данных происходит по первому перепаду тактового сигнала <br>1: Строб данных происходит по второму перепаду тактового сигнала</p>
  351. <p>&nbsp;</p>
  352. <p><span style="color: #408080"><strong>Регистр управления SPI_CR2:</strong></span></p>
  353. <p><strong>Бит 7 – TXEIE – </strong>разрешение прерывания при опустошении буфера передачи Tx buffer</p>
  354. <p>0: Прерывание запрещено <br>1: Разрешена генерация прерывания при установке флага TXE в регистре SPI_SR</p>
  355. <p><strong>Бит 6 – RXNEIE – </strong>разрешение прерывания при поступлении данных в буфер приемника Rx buffer</p>
  356. <p>0: Прерывание запрещено <br>1: Разрешена генерация прерывания при установке флага RXNE в регистре SPI_SR</p>
  357. <p><strong>Бит 5 – ERRIE – </strong>разрешение прерывания при
  358. возникновении ошибки. Установленные флаги ошибок CRCERR, OVR, MODF
  359. вызовут генерацию прерывания об ошибке.</p>
  360. <p>0: Прерывание запрещено <br>1: Прерывание разрешено</p>
  361. <p><strong>Бит 2 – SSOE</strong> – разрешение использования вывода NSS в качестве выход</p>
  362. <p>0: Выход неактивен <br>1: Выход активен</p>
  363. <p><strong>Бит 1 – TXDMAEN – </strong>активация/деактивация запроса DMA
  364. для буфера передачи Tx buffer. Когда этот бит установлен, запрос DMA
  365. формируется при установке флага TXE в регистре SPI_SR</p>
  366. <p>0: Запрос DMA запрещен <br>1: Запрос DMA разрешен</p>
  367. <p><strong>Бит 0 – RXDMAEN </strong><strong>– </strong>активация/деактивация
  368. запроса DMA для буфера приема Rx buffer. Когда этот бит установлен,
  369. запрос DMA формируется при установке флага RXNE в регистре SPI_SR</p>
  370. <p>0: Запрос DMA запрещен <br>1: Запрос DMA разрешен</p>
  371. <p>&nbsp;</p>
  372. <p><strong><span style="color: #408080">Регистр статуса SPI_SR:</span></strong></p>
  373. <p><strong>Бит 7 – BSY – </strong>флаг занятости. Установлен, когда происходит обмен данными и буфер передатчика содержит данные</p>
  374. <p><strong>Бит 6 – OVR</strong> – Устанавливается при потере данных. Поступили новые данные, которые перезаписали предыдущие в регистре данных.</p>
  375. <p><strong>Бит 5 – MODF</strong> – сбой режима работы. Этот флаг может
  376. быть установлен, например, при работе устройства в режиме Master, когда
  377. при этом на его вход NSS поступил сигнал низкого уровня, переводящий
  378. устройство в режим Slave.</p>
  379. <p><strong>Бит 4 – CRCERR</strong> – этот флаг устанавливается при ошибке, возникшей при проверке контрольной суммы CRC.</p>
  380. <p><strong>Бит 1 – TXE – </strong>устанавливается при опустошении буфера передатчика</p>
  381. <p><strong>Бит 0 – RXNE</strong> – устанавливается когда буфер приемника содержит данные, то есть не пустой.</p>
  382. <p><span style="color: #408080"><strong>Регистр данных SPI_DR – </strong></span><span style="color: #000000">16 младших разрядов этого регистра предназначены для записи передаваемых или чтения принятых данных. </span></p>
  383. <p>Регистры, задействованные для подсчета контрольных сумм — <strong><span style="color: #408080">SPI_CRCPR, SPI_RXCRCR, SPI_TXCRCR</span></strong>. Их в данный момент рассматривать не будем.</p>
  384. <p>Перейдем к практической части. Поскольку, для примера работы
  385. необходимо организовать связь хотя бы между одним ведущим и одним
  386. подчиненным устройством, для этих целей задействуем два модуля SPI
  387. одного микроконтроллера. Модуль SPI1 будет работать в режиме Master, а
  388. модуль SPI2 — в режиме Slave.</p>
  389. <p>Порядок настройки модуля в режим Master:</p>
  390. <ul>
  391. <li>Устанавливаем скорость обмена в разрядах BR[2:0] регистра SPI_CR1. </li>
  392. <li>Устанавливаем полярность и фазу тактового сигнала с помощью разрядов CPOL, CPHA регистра SPI_CR1. </li>
  393. <li>Задаем размерность данных (бит DFF). </li>
  394. <li>Задаем порядок передачи бит данных (бит LSBFIRST). </li>
  395. <li>Если вывод NSS будет использоваться как вход в аппаратном режиме, то
  396. необходимо подать на него высокий уровень. Если вывод будет
  397. использоваться в программном режиме, то необходимо установить биты SSM и
  398. SSI. Если вывод NSS при этом будет использоваться в качестве выхода, то
  399. необходимо установить бит SSOE. </li>
  400. <li>Установить биты MSTR и SPE. </li>
  401. </ul>
  402. <p>Порядок настройки модуля в режим Slave:</p>
  403. <ul>
  404. <li>Задаем размерность данных (бит DFF) как у ведущего устройства. </li>
  405. <li>Устанавливаем полярность и фазу тактового сигнала с помощью разрядов
  406. CPOL, CPHA регистра SPI_CR1. Эти настройки должны совпадать с
  407. настройками ведущего устройства. </li>
  408. <li>Задаем порядок передачи бит данных (бит LSBFIRST). Эти настройки должны совпадать с настройками ведущего устройства. </li>
  409. <li>В аппаратном режиме вывод NSS должен быть соединен с низким уровнем
  410. во время обмена данными. Если используется программный режим, то
  411. необходимо установить следующую комбинацию разрядов – SSM = 1, SSI = 0. </li>
  412. <li>Очистить бит MSTR и установить бит SPE. </li>
  413. </ul>
  414. <p>Для модулей SPI будем использовать следующие настройки:</p>
  415. <ul>
  416. <li>программное управление NSS у ведущего устройства, аппаратное у подчиненного. </li>
  417. <li>8 – разрядный размер данных </li>
  418. <li>порядок передачи данных – первым идет старший бит MSB </li>
  419. <li>полярность и фаза тактового сигнала CPOL = 0, CPHA = 0 </li>
  420. <li>скорость обмена – Fpclk/256 </li>
  421. </ul>
  422. <p>На плате STM32VL-DISCOVERY соединим одноименные выводы модулей SPI1 и SPI2 (MOSI, MISO, SCK, NSS).</p>
  423. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/b2559d48046d.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Схема подключения" alt="Схема подключения" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/thumb30.jpg" border="0" height="411" width="542"></a></p>
  424. <ul>
  425. <li>MOSI:&nbsp; PA7 &lt;-&gt; PB15 </li>
  426. <li>MISO:&nbsp; PA6 &lt;-&gt; PB14 </li>
  427. <li>SCK:&nbsp;&nbsp;&nbsp; PA5 &lt;-&gt; PB13 </li>
  428. <li>NSS:&nbsp;&nbsp;&nbsp;&nbsp; PA4 &lt;-&gt; PB12 </li>
  429. </ul>
  430. <p>Расположение выводов приведено для платы STM32VL-DISCOVERY.</p>
  431. <p>Алгоритм программы будет следующим: <br>Настраиваем модуль SPI1 в
  432. режим Master, а модуль SPI2 в режим Slave. Оба модуля одновременно
  433. передают друг другу по одному байту данных, после каждого сеанса обмена
  434. байтами введена программная задержка. <br>Сначала записываем данные в
  435. буфер передатчика модуля SPI2 (Slave), при этом используются только 2
  436. возможных числа: 0x01 или 0x03. <br>Затем записываем значение в
  437. буфер передатчика модуля SPI1 (Master). Сначала пишем в буфер
  438. подчиненного устройства, а затем уже ведущего, потому что запись в буфер
  439. ведущего сразу же даст старт обмену данными. В буфер SPI1 (Master)
  440. можно записать любое значение (у меня в программе это число 0x0F),
  441. анализироваться будут только значения, передаваемые от SPI2 (Slave).
  442. <br>Как только оба модуля обменяются байтом данных, считывается
  443. значение из приемного буфера модуля SPI1 и анализируется. В зависимости
  444. от значения принятых данных (0x01 или 0x03), зажигается один из двух
  445. светодиодов. Как видите, алгоритм упрощен до минимума, а светодиоды
  446. задействованы для визуального контроля значения принятых величин.</p>
  447. <p>Далее приведен текст программы с комментариями для серии STM32F. Код проверен на плате STM32VL-DISCOVERY.</p>
  448. <pre class="prettyprint"><code class="language-c">#include "stm32f10x.h"
  449. uint8_t temp, send_data = 0x01;
  450. //Инициализация GPIO
  451. void gpio_init()
  452. {
  453. //Линии SPI1 (Master)
  454. RCC-&gt;APB2ENR |= (RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPCEN); //Тактирование портов А, В, C и альтернативных функций
  455. GPIOA-&gt;CRL &amp;= ~(GPIO_CRL_CNF7 | GPIO_CRL_CNF5 | GPIO_CRL_CNF4); //Очистка бит выбора режима
  456. GPIOA-&gt;CRL |= GPIO_CRL_CNF7_1 | GPIO_CRL_CNF5_1 | GPIO_CRL_CNF4_1; //PA7(MOSI), PA5(SCK), PA4(NSS) - AF, Output, PP
  457. GPIOA-&gt;CRL |= GPIO_CRL_MODE7 | GPIO_CRL_MODE5 | GPIO_CRL_MODE4; //Выходы MOSI, SCK, NSS - 50MHz
  458. GPIOA-&gt;CRL &amp;= ~GPIO_CRL_MODE6; //PA5(MISO) - Input
  459. GPIOA-&gt;CRL |= GPIO_CRL_CNF6_0; //PA5(MISO) - Input floating
  460. //Линии SPI2 (Slave)
  461. GPIOB-&gt;CRH &amp;= ~(GPIO_CRH_CNF14 | GPIO_CRH_CNF15 | GPIO_CRH_CNF13 | GPIO_CRH_CNF12); //Очистка бит выбора режима
  462. GPIOB-&gt;CRH |= GPIO_CRH_CNF14_1; //PB14(MISO) - AF, Output, PP
  463. GPIOB-&gt;CRH |= GPIO_CRH_MODE14; //Выход MISO - 50MHz
  464. GPIOB-&gt;CRH &amp;= ~(GPIO_CRH_MODE15 | GPIO_CRH_MODE13 | GPIO_CRH_MODE12); //PB15(MOSI), PB13(SCK), PB12(NSS) - Input
  465. GPIOB-&gt;CRH |= GPIO_CRH_CNF15_0 | GPIO_CRH_CNF13_0 | GPIO_CRH_CNF12_1; //PB15(MOSI), PB13(SCK) - Input floating, PB12(NSS) - Input pull-up
  466. //Led
  467. GPIOC-&gt;CRH &amp;= ~(GPIO_CRH_CNF8 | GPIO_CRH_CNF9); //PC8, PC9 - Output, PP
  468. GPIOC-&gt;CRH |= GPIO_CRH_MODE8 | GPIO_CRH_MODE9; //PC8, PC9 - 50MHz
  469. }
  470. //Инициализация SPI1, SPI2
  471. void spi_init()
  472. {
  473. /*Настройка SPI1 (Master)
  474. 8 бит данных, MSB передается первым, программный режим управления NSS
  475. вывод NSS (PA4) разрешено использовать в качестве выхода*/
  476. RCC-&gt;APB2ENR |= RCC_APB2ENR_SPI1EN; //Тактирование модуля SPI1
  477. SPI1-&gt;CR1 |= SPI_CR1_BR; //Baud rate = Fpclk/256
  478. SPI1-&gt;CR1 &amp;= ~SPI_CR1_CPOL; //Полярность тактового сигнала
  479. SPI1-&gt;CR1 &amp;= ~SPI_CR1_CPHA; //Фаза тактового сигнала
  480. SPI1-&gt;CR1 &amp;= ~SPI_CR1_DFF; //8 бит данных
  481. SPI1-&gt;CR1 &amp;= ~SPI_CR1_LSBFIRST; //MSB передается первым
  482. SPI1-&gt;CR1 |= SPI_CR1_SSM; //Программный режим NSS
  483. SPI1-&gt;CR1 |= SPI_CR1_SSI; //Аналогично состоянию, когда на входе NSS высокий уровень
  484. SPI1-&gt;CR2 |= SPI_CR2_SSOE; //Вывод NSS - выход управления slave select
  485. SPI1-&gt;CR1 |= SPI_CR1_MSTR; //Режим Master
  486. SPI1-&gt;CR1 |= SPI_CR1_SPE; //Включаем SPI1
  487. /*Настройка SPI2 (Slave)
  488. 8 бит данных, MSB передается первым, аппаратный режим управления NSS
  489. вывод NSS (PB12) - вход*/
  490. RCC-&gt;APB1ENR |= RCC_APB1ENR_SPI2EN; //Тактирование модуля SPI2
  491. SPI2-&gt;CR1 &amp;= ~SPI_CR1_DFF; //8 бит данных
  492. SPI2-&gt;CR1 &amp;= ~SPI_CR1_CPOL; //Полярность тактового сигнала
  493. SPI2-&gt;CR1 &amp;= ~SPI_CR1_CPHA; //Фаза тактового сигнала
  494. SPI2-&gt;CR1 &amp;= ~SPI_CR1_LSBFIRST; //MSB передается первым
  495. SPI2-&gt;CR1 &amp;= ~SPI_CR1_SSM; //Аппаратное управление входом NSS
  496. SPI2-&gt;CR1 &amp;= ~SPI_CR1_MSTR; //Режим Slave
  497. SPI2-&gt;CR1 |= SPI_CR1_SPE; //Включаем SPI2
  498. }
  499. /*Функция обмена данными между модулями SPI1 и SPI2.
  500. В качестве аргумента при вызове функции передаются числа 0x01 или 0x03,
  501. которые затем записываются в буфер передатчика SPI2.
  502. Значение, записываемое в буфер передатчика SPI1 неважно, в данном случае 0x0F
  503. После обмена байтами данных, значение, принятое модулем SPI1 считывается из
  504. регистра данных SPI1_DR в переменную temp*/
  505. void spi_exchange(uint8_t send_data)
  506. {
  507. SPI2-&gt;DR = send_data; //Пишем в буфер передатчика SPI2
  508. SPI1-&gt;DR = 0x0F; //Пишем в буфер передатчика SPI1. После этого стартует обмен данными
  509. while(!(SPI1-&gt;SR &amp; SPI_SR_RXNE)); //Ожидаем окончания приема данных модулем SPI1 (RXNE =1 - приемный буфер содержит данные)
  510. temp = SPI1-&gt;DR;//Считываем данные из приемного буфера SPI1. При этой операции происходит очистка буфера и сброс флага RXNE
  511. }
  512. //Основной цикл программы
  513. int main()
  514. {
  515. gpio_init(); //Вызов функции инициализации портов
  516. spi_init(); //Вызов функции инициализации модулей SPI
  517. while(1)
  518. {
  519. /*Вызов функции обмена данными.
  520. В качестве аргумента поочередно передаются значения 0x01 или 0x03*/
  521. spi_exchange(send_data);
  522. switch(temp)
  523. {
  524. /*Если SPI1 принял 0x01, зажигаем соответствующий светодиод,
  525. и меняем значение аргумента, передаваемого функции обмена данными
  526. при следующем вызове на 0x03*/
  527. case 0x01:
  528. GPIOC-&gt;BSRR |= GPIO_BSRR_BS8 | GPIO_BSRR_BR9;
  529. send_data = 0x03;
  530. break;
  531. /*Если SPI1 принял 0x03, зажигаем соответствующий светодиод,
  532. и меняем значение аргумента, передаваемого функции обмена данными
  533. при следующем вызове на 0x01*/
  534. case 0x03:
  535. GPIOC-&gt;BSRR |= GPIO_BSRR_BR8 | GPIO_BSRR_BS9;
  536. send_data = 0x01;
  537. break;
  538. }
  539. //Временная задержка между вызовами функции обмена данными
  540. for(uint32_t i=0; i&lt;0x001FFFFF; i++);
  541. }
  542. }</code></pre>
  543. <p>Для платы STM32L-DISCOVERY отличия в настройках будут связаны с
  544. различиями в структуре регистров GPIO между сериями STM32F и STM32L,
  545. другими выводами управления светодиодами, другой системной тактовой
  546. частотой. Для серии STM32L можно использовать те же выводы
  547. микроконтроллера. Но на плате STM32L-DISCOVERY выводы PA7 (MOSI) и PA6
  548. (MISO) не выведены на внешний разъем. Поэтому вместо них задействованы
  549. выводы PA12 (MOSI) и PA11 (MISO), остальные выводы те же самые. При
  550. настройке выводов GPIO STM32L для работы в режиме альтернативной
  551. функции, в частности для использования вывода модулем SPI или другой
  552. периферией, в регистрах альтернативных функций GPIO нужной линии порта
  553. надо присвоить соответствующую альтернативную функцию. В составе
  554. регистров порта ввода-вывода для этой цели предназначены два регистра:
  555. AFRL – для линий порта 0..7, AFRH – для линий порта 8..15. У серии
  556. STM32L, чтобы модуль SPI управлял определенным выводом порта, то есть
  557. использовал этот вывод в качестве одной из своих линий (MOSI, MISO…)
  558. необходимо сделать следующие настройки. Сначала для вывода порта нужно
  559. задать режим работы с альтернативной функцией. А затем, в регистрах
  560. альтернативных функций задать для соответствующих выводов порта номер
  561. альтернативной функции. Для SPI1 это альтернативная функция AFIO5. На
  562. рисунке ниже приведены регистры альтернативных функций порта GPIOA, где
  563. выделенные поля соответствуют выводам порта А, используемым для работы с
  564. модулем SPI1. В них и нужно записать число 0x05 для работы этих выводов
  565. в режиме альтернативной функции №5 (SPI1).</p>
  566. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/ae2ae5699511.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Регистры альтернативных функций" alt="Регистры альтернативных функций" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/thumb31.jpg" border="0" height="331" width="699"></a></p>
  567. <p>Для выводов, работающих с SPI2, альтернативная функция в данном
  568. случае будет тоже AFIO5. Это выводы PB15(MOSI), PB14(MISO), PB13(SCK),
  569. PB12(NSS). Для платы STM32L-DISCOVERY необходимо соединить выводы в
  570. таком порядке:</p>
  571. <p>&nbsp;</p>
  572. <ul>
  573. <li>MOSI:&nbsp; PA12 &lt;-&gt; PB15 </li>
  574. <li>MISO:&nbsp; PA11 &lt;-&gt; PB14 </li>
  575. <li>SCK:&nbsp;&nbsp;&nbsp; PA5&nbsp; &lt;-&gt; PB13 </li>
  576. <li>NSS:&nbsp;&nbsp;&nbsp;&nbsp; PA4&nbsp; &lt;-&gt; PB12 </li>
  577. </ul>
  578. <p>&nbsp;</p>
  579. <p>Настройки непосредственно модулей SPI для серий STM32F и STM32L
  580. абсолютно одинаковы, разница в кодах программ присутствует только в
  581. функции инициализации портов GPIO, а также управления светодиодами. Ниже
  582. приведен текст программы для серии STM32L, который проверен на плате
  583. STM32L-DISCOVERY.</p>
  584. <pre class="prettyprint"><code class="language-c">#include "stm32l1xx.h"
  585. uint8_t temp, send_data = 0x01;
  586. //Инициализация GPIO
  587. void gpio_init()
  588. {
  589. RCC-&gt;AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN; //Тактирование портов A, B
  590. //Линини SPI1 (Master)
  591. //PA12(MOSI), PA11(MISO), PA5(SCK), PA4(NSS) - AF, Push-Pull, AF5(SPI1)
  592. GPIOA-&gt;MODER |= GPIO_MODER_MODER12_1 | GPIO_MODER_MODER11_1 | GPIO_MODER_MODER5_1 | GPIO_MODER_MODER4_1; //Alternate function
  593. GPIOA-&gt;OTYPER &amp;= ~(GPIO_OTYPER_OT_12 | GPIO_OTYPER_OT_11 | GPIO_OTYPER_OT_5 | GPIO_OTYPER_OT_4); //Push-Pull
  594. GPIOA-&gt;AFR[1] |= (5&lt;&lt;16 | 5&lt;&lt;12); //PA12 = AF5, PA11 = AF5
  595. GPIOA-&gt;AFR[0] |= (5&lt;&lt;20 | 5&lt;&lt;16); //PA5 = AF5, PA4 = AF5
  596. //Линии SPI2 (Slave)
  597. //PB15(MOSI), PB14(MISO), PB13(SCK), PB12(NSS) - AF, Push-Pull, AF5(SPI1)
  598. GPIOB-&gt;MODER |= GPIO_MODER_MODER15_1 | GPIO_MODER_MODER14_1 | GPIO_MODER_MODER13_1 | GPIO_MODER_MODER12_1; //Alternate function
  599. GPIOB-&gt;OTYPER &amp;= ~(GPIO_OTYPER_OT_15 | GPIO_OTYPER_OT_14 | GPIO_OTYPER_OT_13 | GPIO_OTYPER_OT_11); //Push-Pull
  600. GPIOB-&gt;AFR[1] |= (5&lt;&lt;28 | 5&lt;&lt;24 | 5&lt;&lt;20 | 5&lt;&lt;16); //PB15, PB14, P13, PB12 = AF5
  601. //LED
  602. GPIOB-&gt;MODER |= GPIO_MODER_MODER6_0 | GPIO_MODER_MODER7_0; //PB6, PB7 - GP Output
  603. GPIOB-&gt;OTYPER &amp;= ~(GPIO_OTYPER_OT_6 | GPIO_OTYPER_OT_7); //PB6, PB7 - Push-Pull
  604. GPIOB-&gt;OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6 | GPIO_OSPEEDER_OSPEEDR7; //40 MHz
  605. GPIOB-&gt;PUPDR &amp;= ~(GPIO_PUPDR_PUPDR6 | GPIO_PUPDR_PUPDR7); //No pull
  606. }
  607. //Инициализация SPI1, SPI2
  608. void spi_init()
  609. {
  610. /*Настройка SPI1 (Master)
  611. 8 бит данных, MSB передается первым, программный режим управления NSS,
  612. вывод NSS (PA4) разрешено использовать в качестве выхода*/
  613. RCC-&gt;APB2ENR |= RCC_APB2ENR_SPI1EN; //Тактирование модуля SPI1
  614. SPI1-&gt;CR1 |= SPI_CR1_BR; //Baud rate = Fpclk/256
  615. SPI1-&gt;CR1 &amp;= ~SPI_CR1_CPOL; //Полярность тактового сигнала
  616. SPI1-&gt;CR1 &amp;= ~SPI_CR1_CPHA; //Фаза тактового сигнала
  617. SPI1-&gt;CR1 &amp;= ~SPI_CR1_DFF; //8 бит данных
  618. SPI1-&gt;CR1 &amp;= ~SPI_CR1_LSBFIRST; //MSB передается первым
  619. SPI1-&gt;CR1 |= SPI_CR1_SSM; //Программный режим NSS
  620. SPI1-&gt;CR1 |= SPI_CR1_SSI; //Аналогично состоянию, когда на входе NSS высокий уровень
  621. SPI1-&gt;CR2 |= SPI_CR2_SSOE; //Вывод NSS - выход управления slave select
  622. SPI1-&gt;CR1 |= SPI_CR1_MSTR; //Режим Master
  623. SPI1-&gt;CR1 |= SPI_CR1_SPE; //Включаем SPI1
  624. /*Настройка SPI2 (Slave)
  625. 8 бит данных, MSB передается первым, аппаратный режим управления NSS,
  626. вывод NSS (PB12) - вход*/
  627. RCC-&gt;APB1ENR |= RCC_APB1ENR_SPI2EN; //Тактирование модуля SPI2
  628. SPI2-&gt;CR1 &amp;= ~SPI_CR1_DFF; //8 бит данных
  629. SPI2-&gt;CR1 &amp;= ~SPI_CR1_CPOL; //Полярность тактового сигнала
  630. SPI2-&gt;CR1 &amp;= ~SPI_CR1_CPHA; //Фаза тактового сигнала
  631. SPI2-&gt;CR1 &amp;= ~SPI_CR1_LSBFIRST; //MSB передается первым
  632. SPI2-&gt;CR1 &amp;= ~SPI_CR1_SSM; //Аппаратное управление входом NSS
  633. SPI2-&gt;CR1 &amp;= ~SPI_CR1_MSTR; //Режим Slave
  634. SPI2-&gt;CR1 |= SPI_CR1_SPE; //Включаем SPI2
  635. }
  636. /*Функция обмена данными между модулями SPI1 и SPI2.
  637. В качестве аргумента при вызове функции передаются числа 0x01 или 0x03,
  638. которые затем записываются в буфер передатчика SPI2.
  639. Значение, записываемое в буфер передатчика SPI1 неважно, в данном случае 0x0F.
  640. После обмена байтами данных, значение, принятое модулем SPI1 считывается из
  641. регистра данных SPI1_DR в переменную temp*/
  642. void spi_exchange(uint8_t send_data)
  643. {
  644. SPI2-&gt;DR = send_data; //Пишем в буфер передатчика SPI2
  645. SPI1-&gt;DR = 0x0F; //Пишем в буфер передатчика SPI1. После этого стартует обмен данными
  646. while(!(SPI1-&gt;SR &amp; SPI_SR_RXNE)); //Ожидаем окончания приема данных модулем SPI1 (RXNE =1 - приемный буфер содержит данные)
  647. temp = SPI1-&gt;DR;//Считываем данные из приемного буфера SPI1. При этой операции происходит очистка буфера и сброс флага RXNE
  648. }
  649. //Основной цикл программы
  650. int main()
  651. {
  652. gpio_init(); //Вызов функции инициализации портов
  653. spi_init(); //Вызов функции инициализации модулей SPI
  654. while(1)
  655. {
  656. /*Вызов функции обмена данными.
  657. В качестве аргумента поочередно передаются значения 0x01 или 0x03*/
  658. spi_exchange(send_data);
  659. switch(temp)
  660. {
  661. /*Если SPI1 принял 0x01, зажигаем соответствующий светодиод,
  662. и меняем значение аргумента, передаваемого функции обмена данными
  663. при следующем вызове на 0x03*/
  664. case 0x01:
  665. GPIOB-&gt;BSRRH |= GPIO_BSRR_BS_7;
  666. GPIOB-&gt;BSRRL |= GPIO_BSRR_BS_6;
  667. send_data = 0x03;
  668. break;
  669. /*Если SPI1 принял 0x03, зажигаем соответствующий светодиод,
  670. и меняем значение аргумента, передаваемого функции обмена данными
  671. при следующем вызове на 0x01*/
  672. case 0x03:
  673. GPIOB-&gt;BSRRH |= GPIO_BSRR_BS_6;
  674. GPIOB-&gt;BSRRL |= GPIO_BSRR_BS_7;
  675. send_data = 0x01;
  676. break;
  677. }
  678. //Временная задержка между вызовами функции обмена данными
  679. for(uint32_t i=0; i&lt;0x0001FFFF; i++);
  680. }
  681. }</code></pre>
  682. <p>
  683. <br>При отладке в “железе” обнаружен небольшой “баг”. Пошаговое выполнение программы приводит к зависанию на строке </p>
  684. <p></p>
  685. <pre class="prettyprint"><code class="language-c">while(!(SPI1-&gt;SR &amp; SPI_SR_RXNE));</code></pre>
  686. <p>Это происходит, если для просмотра в отладчике открыты регистры SPI1.
  687. С чем связано не знаю, могу предположить, что при этом происходит
  688. чтение данных из SPI1_DR отладчиком IAR, а в результате сброс бита RXNE
  689. еще до вызова его проверки. В этом случае он так и не устанавливается.
  690. Если закрыть панель с содержимым регистров SPI1,&nbsp; все работает
  691. стабильно.</p>
  692. <p>Осциллограммы на выводах.</p>
  693. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/SCK.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SCK" alt="SCK" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/SCK_thumb.jpg" border="0" height="420" width="565"></a></p>
  694. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/MOSI.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="MOSI" alt="MOSI" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/MOSI_thumb.jpg" border="0" height="426" width="573"></a></p>
  695. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/MISO_1.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="MISO_1" alt="MISO_1" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/MISO_1_thumb.jpg" border="0" height="424" width="570"></a></p>
  696. <p><a href="http://chipspace.ru/wp-content/uploads/2013/11/MISO_3.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="MISO_3" alt="MISO_3" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/MISO_3_thumb.jpg" border="0" height="422" width="569"></a></p>
  697. <p>На осциллограммах фазы сигналов MOSI, MISO не привязаны к фазам
  698. сигнала SCK, поскольку каждая осциллограмма записана в ждущем режиме
  699. отдельно, без привязки к другим сигналам. Поэтому проверять по этим
  700. осциллограммам соответствие фаз сигналов режиму, установленному разрядом
  701. CPHA модулей, не стоит.</p>
  702. <p><a href="http://chipspace.ru/archives/STM32F_SPI.rar" target="_blank">Проект STM32F_SPI</a></p>
  703. <p><a href="http://chipspace.ru/archives/STM32L_SPI.rar" target="_blank">Проект STM32L_SPI</a></p>
  704. <p>Другие статьи:</p>
  705. <ul>
  706. <li><a title="STM32L. Система формирования тактовых частот Reset and Clock Control (RCC)" href="http://chipspace.ru/stm32l-sistema-taktirovaniya/" target="_blank">STM32L. Система формирования тактовых частот Reset and Clock Control (RCC)</a> </li>
  707. <li><a title="STM32L1xx. Внешние прерывания" href="http://chipspace.ru/stm32l1-exti/" target="_blank">STM32L1xx. Внешние прерывания</a> </li>
  708. <li><a title="STM32_GPIO_configuration - программа для настройки портов ввода-вывода" href="http://chipspace.ru/stm32_gpio_configuration/" target="_blank">STM32_GPIO_configuration — программа для настройки портов ввода-вывода</a> </li>
  709. </ul>
  710. <div></div>
  711. </div><!--/entry -->
  712. </div><!-- .entry-container -->
  713. <footer class="post-footer postdata fix">
  714. <span class="author"><span class="icon">&nbsp;</span>Posted by <span class="vcard"><a href="http://chipspace.ru/author/mrz/" class="url fn" rel="author">ChipSpace</a></span> at 01:05</span> <span class="tags tax"><span class="icon">&nbsp;</span>Tagged with: <a href="http://chipspace.ru/tag/stm32/" rel="tag">stm32</a>, <a href="http://chipspace.ru/tag/stm32-spi/" rel="tag">stm32 spi</a>, <a href="http://chipspace.ru/tag/stm32-discovery/" rel="tag">stm32-discovery</a></span>
  715. </footer><!-- .post-footer -->
  716. <section id="comments">
  717. <h3 class="comments"><span class="icon">&nbsp;</span>
  718. 37 Responses to “STM32. Интерфейс SPI”</h3>
  719. <ol class="commentlist">
  720. <li id="comment-138" class="comment byuser comment-author-sergey140600 even thread-even depth-1 plain-nested">
  721. <div id="div-comment-138" class="comment-body">
  722. <div class="comment-author fix vcard">
  723. <img title="[2.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://2.gravatar.com/avatar/baa1cbebfc5b5a17f5514e5f928f2a37?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  724. <cite class="fn">sergey140600</cite> <span class="says">says:</span> </div>
  725. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-138">
  726. 31.12.2012 at 00:22</a> </div>
  727. </div>
  728. <p>Здравствуйте. Хотел спросить был ли опыт работы с модулем SPI на
  729. STM32L152? Судя по описанию отличий между ними нет. Однако у меня МК не
  730. хочет управлять NSS в режиме hard. Если я правильно понимаю он должен
  731. аппаратно сбрасывать сигнал NSS перед началом передачи и устанавливать
  732. после завершения передачи. Вместо этого NSS постоянно в нуле. Выводы SPI
  733. сконфигурированы как AFIO5.</p>
  734. </div>
  735. <div class="reply">
  736. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  737. </li><!-- #comment-## -->
  738. <li id="comment-139" class="comment odd alt thread-odd thread-alt depth-1 plain-nested">
  739. <div id="div-comment-139" class="comment-body">
  740. <div class="comment-author fix vcard">
  741. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  742. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  743. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-139">
  744. 31.12.2012 at 01:08</a> </div>
  745. </div>
  746. <p>Я столкнулся с той же проблемой, и решения пока не нашел.
  747. Действительно, NSS не управляется как должен. Пробовал различные
  748. варианты настроек SPI, но так же не видел изменений уровней на этом
  749. выводе. Читаю документацию и думаю…</p>
  750. </div>
  751. <div class="reply">
  752. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  753. </li><!-- #comment-## -->
  754. <li id="comment-154" class="comment byuser comment-author-metcenger even thread-even depth-1 plain-nested">
  755. <div id="div-comment-154" class="comment-body">
  756. <div class="comment-author fix vcard">
  757. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  758. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  759. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-154">
  760. 16.01.2013 at 20:39</a> </div>
  761. </div>
  762. <p>Непонятно: для проца STM32L152 при выборе другой ноги PA12 на
  763. (MOSI) , просто нужно указать, что нога PA12 альтернативная и в регистре
  764. альтернативных ф-й задать режим SPI (0x05)? И процессор уже автоматом
  765. назначит ногу РА12 на MOSI?</p>
  766. </div>
  767. <div class="reply">
  768. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  769. <ul class="children">
  770. <li id="comment-155" class="comment odd alt depth-2 plain-nested">
  771. <div id="div-comment-155" class="comment-body">
  772. <div class="comment-author fix vcard">
  773. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  774. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  775. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-155">
  776. 16.01.2013 at 21:19</a> </div>
  777. </div>
  778. <p>Да.</p>
  779. </div>
  780. <div class="reply">
  781. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  782. </li><!-- #comment-## -->
  783. </ul><!-- .children -->
  784. </li><!-- #comment-## -->
  785. <li id="comment-180" class="comment byuser comment-author-metcenger even thread-odd thread-alt depth-1 plain-nested">
  786. <div id="div-comment-180" class="comment-body">
  787. <div class="comment-author fix vcard">
  788. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  789. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  790. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-180">
  791. 31.01.2013 at 16:35</a> </div>
  792. </div>
  793. <p>не совсем понятно с этим NSS. Если у меня STM32 мастер, он
  794. управляет по SPI внешней микросхемой. Что нужно сделать с NSS? Можно его
  795. просто в воздухе оставить и не подключать к микросхеме?</p>
  796. </div>
  797. <div class="reply">
  798. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  799. <ul class="children">
  800. <li id="comment-182" class="comment odd alt depth-2 plain-nested">
  801. <div id="div-comment-182" class="comment-body">
  802. <div class="comment-author fix vcard">
  803. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  804. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  805. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-182">
  806. 31.01.2013 at 23:22</a> </div>
  807. </div>
  808. <p>У микросхемы скорее всего этот вывод должен быть задействован, если она работает Slave. Надо документацию смотреть.</p>
  809. </div>
  810. <div class="reply">
  811. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  812. </li><!-- #comment-## -->
  813. </ul><!-- .children -->
  814. </li><!-- #comment-## -->
  815. <li id="comment-189" class="comment byuser comment-author-metcenger even thread-even depth-1 plain-nested">
  816. <div id="div-comment-189" class="comment-body">
  817. <div class="comment-author fix vcard">
  818. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  819. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  820. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-189">
  821. 01.02.2013 at 18:40</a> </div>
  822. </div>
  823. <p>Запустил Ваш проект с замкнутыми друг на друга MISO и MOSI. Убрал инициализацию второго SPI, добавил USART.<br>
  824. Все работает. Но как только добавляю к проекту файл<br>
  825. startup_stm32l1xx_md.s<br>
  826. так сразу хрень в USART прет.</p>
  827. <p>как это влияет?</p>
  828. <p>тут проект<br>
  829. <a href="http://files.mail.ru/2B5417EE688C412E99C0E9CB966A7569" rel="nofollow">http://files.mail.ru/2B5417EE688C412E99C0E9CB966A7569</a></p>
  830. </div>
  831. <div class="reply">
  832. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  833. <ul class="children">
  834. <li id="comment-190" class="comment odd alt depth-2 plain-nested">
  835. <div id="div-comment-190" class="comment-body">
  836. <div class="comment-author fix vcard">
  837. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  838. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  839. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-190">
  840. 01.02.2013 at 19:38</a> </div>
  841. </div>
  842. <p>Я чуть позже проверю, завтра постараюсь ответить. Еще не понял
  843. всей задумки, что в итоге работает? USART1 и SPI1 только на передачу,
  844. так?</p>
  845. </div>
  846. <div class="reply">
  847. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  848. </li><!-- #comment-## -->
  849. </ul><!-- .children -->
  850. </li><!-- #comment-## -->
  851. <li id="comment-191" class="comment byuser comment-author-metcenger even thread-odd thread-alt depth-1 plain-nested">
  852. <div id="div-comment-191" class="comment-body">
  853. <div class="comment-author fix vcard">
  854. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  855. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  856. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-191">
  857. 01.02.2013 at 20:26</a> </div>
  858. </div>
  859. <p>все просто- без файла<br>
  860. startup_stm32l1xx_md.s , включенного в проект USART корректно работает и все передает.<br>
  861. стоит его только включить, сразу чушь ползет. То -ли по SPI гадость лезет, либо по USART.</p>
  862. <p>но это он 100%</p>
  863. </div>
  864. <div class="reply">
  865. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  866. <ul class="children">
  867. <li id="comment-192" class="comment odd alt depth-2 plain-nested">
  868. <div id="div-comment-192" class="comment-body">
  869. <div class="comment-author fix vcard">
  870. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  871. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  872. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-192">
  873. 02.02.2013 at 16:34</a> </div>
  874. </div>
  875. <p>Попробовал все варианты, результат один и тот же, что с этим файлом, что без него:<br>
  876. <a href="http://chipspace.ru/picture/02.gif" rel="nofollow">http://chipspace.ru/picture/02.gif</a><br>
  877. Такой должен быть результат?<br>
  878. Еще в препроцессоре добавлял пути к файлам:<br>
  879. $PROJ_DIR$\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\startup\iar\<br>
  880. $PROJ_DIR$\Libraries\STM32L1xx_StdPeriph_Driver\src\<br>
  881. Результат тот же. Кстати, почему в проекте не прописаны эти пути, а IAR
  882. не выдает ошибки, что не находит эти файлы? Я в проекте глубоко не
  883. разбирался, может они где-то прописаны?<br>
  884. При запуске в отладчике, в дизассемблере происходит остановка на строке:<br>
  885. 0x80005ec: 0xbeab BKPT #0xab<br>
  886. В терминале результат тот же.<br>
  887. Мне кажется, что проще создать новый пустой проект и туда постепенно
  888. добавлять все эти функции и подключать библиотеки, проверяя все
  889. ПОЭТАПНО. Разбираться откуда берутся проблемы в этом проекте будет
  890. намного сложнее и дольше.</p>
  891. </div>
  892. <div class="reply">
  893. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  894. <ul class="children">
  895. <li id="comment-193" class="comment even depth-3 plain-nested">
  896. <div id="div-comment-193" class="comment-body">
  897. <div class="comment-author fix vcard">
  898. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  899. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  900. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-193">
  901. 02.02.2013 at 16:52</a> </div>
  902. </div>
  903. <p>Как видите, мой результат несколько отличается, я не заметил
  904. различий между работой проектов с этим файлом или без него. Возможно,
  905. дело вовсе не в файле startup_stm32l1xx_md.s, который отвечает за
  906. низкоуровневую инициализацию контроллера. Но его подключение иногда, но
  907. не всегда, может дать какой-то эффект. У меня этот проект вообще ведет
  908. себя странно, ему неважно подключен этот файл или нет, прописаны пути к
  909. библиотекам или нет.<br>
  910. Я бы не советовал отказываться от этого файла, не могу сказать будут ли
  911. последствия. Поэтому советую не лезть в «дебри», а пойти путем, который
  912. указал в предыдущем посте.<br>
  913. Кстати, сравнил в Total Commander файл startup_stm32l1xx_md.s из проекта
  914. с тем же файлом, но из библиотек на своем компьютере. Полностью
  915. идентичны.</p>
  916. </div>
  917. <div class="reply">
  918. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  919. </li><!-- #comment-## -->
  920. </ul><!-- .children -->
  921. </li><!-- #comment-## -->
  922. </ul><!-- .children -->
  923. </li><!-- #comment-## -->
  924. <li id="comment-194" class="comment odd alt thread-even depth-1 plain-nested">
  925. <div id="div-comment-194" class="comment-body">
  926. <div class="comment-author fix vcard">
  927. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  928. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  929. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-194">
  930. 02.02.2013 at 17:27</a> </div>
  931. </div>
  932. <p>А версия IAR 6.50 действительно не ругается на отсутствие путей<br>
  933. $PROJ_DIR$\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\startup\iar\<br>
  934. $PROJ_DIR$\Libraries\STM32L1xx_StdPeriph_Driver\src\<br>
  935. Попробовал на новом проекте.<br>
  936. Я то по привычке все прописываю.</p>
  937. </div>
  938. <div class="reply">
  939. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  940. </li><!-- #comment-## -->
  941. <li id="comment-195" class="comment byuser comment-author-metcenger even thread-odd thread-alt depth-1 plain-nested">
  942. <div id="div-comment-195" class="comment-body">
  943. <div class="comment-author fix vcard">
  944. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  945. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  946. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-195">
  947. 02.02.2013 at 20:41</a> </div>
  948. </div>
  949. <p>Давайте еще раз.<br>
  950. Замыкаем на плате L выводы PA11 PA12.<br>
  951. результат<br>
  952. <a href="http://s019.radikal.ru/i614/1302/e5/08fb185635ba.jpg" rel="nofollow">http://s019.radikal.ru/i614/1302/e5/08fb185635ba.jpg</a></p>
  953. <p>проект<br>
  954. <a href="http://files.mail.ru/CEF255840A1D4BAD883C4C1C20C38254" rel="nofollow">http://files.mail.ru/CEF255840A1D4BAD883C4C1C20C38254</a></p>
  955. <p>как только добавляю файл в проект startup_stm32l1xx_md.s<br>
  956. результат<br>
  957. <a href="http://i062.radikal.ru/1302/e4/ec52cbe4584f.jpg" rel="nofollow">http://i062.radikal.ru/1302/e4/ec52cbe4584f.jpg</a><br>
  958. т.е. хрень)</p>
  959. </div>
  960. <div class="reply">
  961. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  962. <ul class="children">
  963. <li id="comment-196" class="comment odd alt depth-2 plain-nested">
  964. <div id="div-comment-196" class="comment-body">
  965. <div class="comment-author fix vcard">
  966. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  967. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  968. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-196">
  969. 02.02.2013 at 21:27</a> </div>
  970. </div>
  971. <p>Пишу тут статейку, задействовал библиотеки. Заметил, что
  972. переменная SystemCoreClock = 32МГЦ, хотя работаю от генератора MSI с
  973. частотой 2.097МГЦ.<br>
  974. Попробуйте обновить ее командой SystemCoreClockUpdate(); в самом начале
  975. основного цикла main(). У меня после этого значение стало 2.097МГц, то
  976. есть равно частоте MSI, как и положено. Может с этим и связаны ваши
  977. проблемы.</p>
  978. </div>
  979. <div class="reply">
  980. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  981. </li><!-- #comment-## -->
  982. <li id="comment-197" class="comment even depth-2 plain-nested">
  983. <div id="div-comment-197" class="comment-body">
  984. <div class="comment-author fix vcard">
  985. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  986. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  987. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-197">
  988. 02.02.2013 at 22:35</a> </div>
  989. </div>
  990. <p>SPI принимает с ошибками. Пока не нашел почему, но проблему локализовал.<br>
  991. Еще переменная data объявлена как глобальная в main.c и как локальная
  992. одновременно в void Usart1_Send_symbol(), хранится в двух регистрах R0 и
  993. R4. Именно здесь это не вызывает ошибок, но это неправильно.</p>
  994. </div>
  995. <div class="reply">
  996. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  997. </li><!-- #comment-## -->
  998. </ul><!-- .children -->
  999. </li><!-- #comment-## -->
  1000. <li id="comment-198" class="comment odd alt thread-even depth-1 plain-nested">
  1001. <div id="div-comment-198" class="comment-body">
  1002. <div class="comment-author fix vcard">
  1003. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1004. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1005. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-198">
  1006. 02.02.2013 at 23:07</a> </div>
  1007. </div>
  1008. <p>Меняй файл system_stm32l1xx.c на родной библиотечный, с ним все
  1009. работает как надо. Будем разбираться что не так с этой утилитой от ST,
  1010. про которую я писал здесь<br>
  1011. <a href="http://chipspace.ru/stm32-system-clock-configuration/" rel="nofollow">http://chipspace.ru/stm32-system-clock-configuration/</a></p>
  1012. </div>
  1013. <div class="reply">
  1014. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1015. </li><!-- #comment-## -->
  1016. <li id="comment-199" class="comment byuser comment-author-metcenger even thread-odd thread-alt depth-1 plain-nested">
  1017. <div id="div-comment-199" class="comment-body">
  1018. <div class="comment-author fix vcard">
  1019. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1020. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1021. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-199">
  1022. 03.02.2013 at 01:45</a> </div>
  1023. </div>
  1024. <p>Итак, родной библиотечный файл- все работает в ажуре. Я имею ввиду файл system_stm32l1xx.c<br>
  1025. Что же этот файл нам дает? Он дает запуск от кварца 8 МГц и частотой
  1026. системной 32 МГц. Если кварца нет (а на плату L он не запаян), благодаря
  1027. этому файлу, частота шины MSI 2 с копейками МГц. Автоматика, да и
  1028. только. Так вот- кварца нет, все работает. Как только запаял кварц,
  1029. кондеры, резистор(на схеме есть), сразу хрень.<br>
  1030. удалил файл, частота шины стала 2,092 МГц.- вывод в терминалку нормальный.<br>
  1031. т.е. упорно не хочет выводить корректно при частоте шины 32 МГц, хоть с кварцем, хоть RC.</p>
  1032. </div>
  1033. <div class="reply">
  1034. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1035. </li><!-- #comment-## -->
  1036. <li id="comment-200" class="comment byuser comment-author-metcenger odd alt thread-even depth-1 plain-nested">
  1037. <div id="div-comment-200" class="comment-body">
  1038. <div class="comment-author fix vcard">
  1039. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1040. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1041. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-200">
  1042. 03.02.2013 at 01:52</a> </div>
  1043. </div>
  1044. <p>SystemCoreClockUpdate(); //обновили частоту<br>
  1045. не помогло</p>
  1046. </div>
  1047. <div class="reply">
  1048. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1049. <ul class="children">
  1050. <li id="comment-201" class="comment even depth-2 plain-nested">
  1051. <div id="div-comment-201" class="comment-body">
  1052. <div class="comment-author fix vcard">
  1053. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1054. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1055. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-201">
  1056. 03.02.2013 at 11:53</a> </div>
  1057. </div>
  1058. <p>На 32МГц не работает, значит. Настройки флэш-памяти тоже сделал, как тут описано<br>
  1059. <a href="http://chipspace.ru/stm32l-max-sysclk/" rel="nofollow">http://chipspace.ru/stm32l-max-sysclk/</a><br>
  1060. иначе бы не работало.<br>
  1061. Я поэкспериментирую как работает модуль SPI на максимальных частотах. Быстро не обещаю.</p>
  1062. </div>
  1063. <div class="reply">
  1064. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1065. </li><!-- #comment-## -->
  1066. </ul><!-- .children -->
  1067. </li><!-- #comment-## -->
  1068. <li id="comment-206" class="comment odd alt thread-odd thread-alt depth-1 plain-nested">
  1069. <div id="div-comment-206" class="comment-body">
  1070. <div class="comment-author fix vcard">
  1071. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1072. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1073. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-206">
  1074. 03.02.2013 at 13:41</a> </div>
  1075. </div>
  1076. <p>В общем, изменение baud rate не влияет, я уже попробовал, тут и
  1077. так задана минимальная скорость. Модуль SPI должен работать до
  1078. 16Мбит/сек, можно задавать делителем коэффициент от минимального 2 на
  1079. тактовой 32МГц, а у нас 256.<br>
  1080. Надо посмотреть сигналы, как доберусь до осциллографа (на работе) — займусь дальше.</p>
  1081. <p>И, по-моему, строка<br>
  1082. while(!(SPI1-&gt;SR &amp; SPI_SR_TXE))<br>
  1083. ;<br>
  1084. как то не на своем месте <img src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;"></p>
  1085. </div>
  1086. <div class="reply">
  1087. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1088. </li><!-- #comment-## -->
  1089. <li id="comment-207" class="comment even thread-even depth-1 plain-nested">
  1090. <div id="div-comment-207" class="comment-body">
  1091. <div class="comment-author fix vcard">
  1092. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1093. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1094. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-207">
  1095. 03.02.2013 at 13:41</a> </div>
  1096. </div>
  1097. <p>А ведь у тебя регистр DR закольцован, работает и на передачу и на
  1098. прием. В нужный ли момент в таком случае флаг окончания приема RXNE
  1099. выставляется? Попробуй все же задействовать в качестве приемника второй
  1100. модуль SPI.</p>
  1101. </div>
  1102. <div class="reply">
  1103. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1104. </li><!-- #comment-## -->
  1105. <li id="comment-208" class="comment byuser comment-author-metcenger odd alt thread-odd thread-alt depth-1 plain-nested">
  1106. <div id="div-comment-208" class="comment-body">
  1107. <div class="comment-author fix vcard">
  1108. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1109. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1110. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-208">
  1111. 03.02.2013 at 14:11</a> </div>
  1112. </div>
  1113. <p>Подтверди пож-ста, что на данной плате, с моим проектом ты получаешь тот же результат? PA11 на PA12 замкнуты.</p>
  1114. </div>
  1115. <div class="reply">
  1116. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1117. </li><!-- #comment-## -->
  1118. <li id="comment-209" class="comment byuser comment-author-metcenger even thread-even depth-1 plain-nested">
  1119. <div id="div-comment-209" class="comment-body">
  1120. <div class="comment-author fix vcard">
  1121. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1122. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1123. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-209">
  1124. 03.02.2013 at 14:29</a> </div>
  1125. </div>
  1126. <p>я вторым SPI задействовал микросхему W5100. И получал результат не
  1127. очень. Данные от W5100 шли в мой SPI и не корректно воспринимались.
  1128. Начал копать и вышел на такую странность, как в проекте. Данные от w5100
  1129. на осцилле были одни, а воспринимались как другие.</p>
  1130. </div>
  1131. <div class="reply">
  1132. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1133. </li><!-- #comment-## -->
  1134. <li id="comment-210" class="comment odd alt thread-odd thread-alt depth-1 plain-nested">
  1135. <div id="div-comment-210" class="comment-body">
  1136. <div class="comment-author fix vcard">
  1137. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1138. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1139. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-210">
  1140. 03.02.2013 at 15:44</a> </div>
  1141. </div>
  1142. <p>Ага, при 32МГц тактовой неправильно принимает, подтверждаю :). И
  1143. все же попробуй, как я предлагал, может в этом дело. Чисто ради
  1144. эксперимента.</p>
  1145. </div>
  1146. <div class="reply">
  1147. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1148. </li><!-- #comment-## -->
  1149. <li id="comment-211" class="comment even thread-even depth-1 plain-nested">
  1150. <div id="div-comment-211" class="comment-body">
  1151. <div class="comment-author fix vcard">
  1152. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1153. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1154. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-211">
  1155. 03.02.2013 at 15:45</a> </div>
  1156. </div>
  1157. <p>Пока на этом остановился, хочу на осциллографе глянуть.</p>
  1158. </div>
  1159. <div class="reply">
  1160. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1161. <ul class="children">
  1162. <li id="comment-217" class="comment odd alt depth-2 plain-nested">
  1163. <div id="div-comment-217" class="comment-body">
  1164. <div class="comment-author fix vcard">
  1165. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1166. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1167. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-217">
  1168. 04.02.2013 at 16:55</a> </div>
  1169. </div>
  1170. <p>Пока не получилось глянуть осциллограммы, у меня ST-LINK/V2 с
  1171. Дискавери на работе не хочет определяться, систему недавно переставили,
  1172. что-то глючит. Попробую завтра внешниий ST-LINK принести и подключиться.</p>
  1173. </div>
  1174. <div class="reply">
  1175. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1176. </li><!-- #comment-## -->
  1177. </ul><!-- .children -->
  1178. </li><!-- #comment-## -->
  1179. <li id="comment-218" class="comment even thread-odd thread-alt depth-1 plain-nested">
  1180. <div id="div-comment-218" class="comment-body">
  1181. <div class="comment-author fix vcard">
  1182. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1183. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1184. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-218">
  1185. 05.02.2013 at 00:31</a> </div>
  1186. </div>
  1187. <p>Как и следовало ожидать, без файла startup_stm32l1xx_md.s никакой
  1188. начальной инициализации у тебя просто нет. Ниже скриншоты работы с
  1189. файлом и без. Переменная SystemCoreClock — значение тактовой частоты,
  1190. что ясно из названия. Обновляем это значение функцией
  1191. SystemCoreClockUpdate(); и видим результат.<br>
  1192. Тактовая частота с файлом инициализации<br>
  1193. <a href="http://chipspace.ru/picture/03.gif" rel="nofollow">http://chipspace.ru/picture/03.gif</a><br>
  1194. А теперь без него<br>
  1195. <a href="http://chipspace.ru/picture/04.gif" rel="nofollow">http://chipspace.ru/picture/04.gif</a><br>
  1196. В этом случае тактируется по дефолту от MSI.<br>
  1197. Вот ответ на вопрос — как влияет подключение файла инициализации.<br>
  1198. Осталось разобраться с модулями SPI.<br>
  1199. Снова советую разомкнуть PA11, PA12 и проверить работу на двух модулях
  1200. SPI, а не на одном. По datasheet должно работать до 16МБит/сек.</p>
  1201. </div>
  1202. <div class="reply">
  1203. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1204. </li><!-- #comment-## -->
  1205. <li id="comment-219" class="comment byuser comment-author-metcenger odd alt thread-even depth-1 plain-nested">
  1206. <div id="div-comment-219" class="comment-body">
  1207. <div class="comment-author fix vcard">
  1208. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1209. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1210. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-219">
  1211. 10.02.2013 at 01:29</a> </div>
  1212. </div>
  1213. <p>в общем, пришел к такому выводу:<br>
  1214. при настройке в утилите тактовой частоты PCLK2 на 8 МГц через делитель
  1215. APB2 prescaler, при этом сама частота шины = 32 МГц, вне зависимости от
  1216. кварца или RC, то все работает.<br>
  1217. Так же поднимал частоту системную до 12 МГц- все работало.<br>
  1218. Получается, что наш SPI не хочет тактироваться от частот выше 12 МГц (а при частоте шины 32 МГц больше 8 МГц и не выставить)</p>
  1219. </div>
  1220. <div class="reply">
  1221. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1222. </li><!-- #comment-## -->
  1223. <li id="comment-220" class="comment byuser comment-author-metcenger even thread-odd thread-alt depth-1 plain-nested">
  1224. <div id="div-comment-220" class="comment-body">
  1225. <div class="comment-author fix vcard">
  1226. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1227. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1228. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-220">
  1229. 18.02.2013 at 18:33</a> </div>
  1230. </div>
  1231. <p>решил проблему.<br>
  1232. нужно в инициализацию портов добавлять скорость порта, т.е.</p>
  1233. <p>GPIOA-&gt;OSPEEDR |=GPIO_OSPEEDER_OSPEEDR5 | GPIO_OSPEEDER_OSPEEDR11 | GPIO_OSPEEDER_OSPEEDR12; //ноги 40 МГц</p>
  1234. </div>
  1235. <div class="reply">
  1236. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1237. <ul class="children">
  1238. <li id="comment-221" class="comment odd alt depth-2 plain-nested">
  1239. <div id="div-comment-221" class="comment-body">
  1240. <div class="comment-author fix vcard">
  1241. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1242. <cite class="fn"><a href="http://www.chipspace.ru/" rel="external nofollow" class="url">ChipSpace</a></cite> <span class="says">says:</span> </div>
  1243. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-221">
  1244. 18.02.2013 at 19:24</a> </div>
  1245. </div>
  1246. <p>SPI на 16 МГц работает?</p>
  1247. </div>
  1248. <div class="reply">
  1249. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1250. </li><!-- #comment-## -->
  1251. </ul><!-- .children -->
  1252. </li><!-- #comment-## -->
  1253. <li id="comment-222" class="comment byuser comment-author-metcenger even thread-even depth-1 plain-nested">
  1254. <div id="div-comment-222" class="comment-body">
  1255. <div class="comment-author fix vcard">
  1256. <img title="[1.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://1.gravatar.com/avatar/a39c9589f3f05e4fdda96993beea2d9d?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1257. <cite class="fn">metcenger</cite> <span class="says">says:</span> </div>
  1258. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-222">
  1259. 19.02.2013 at 00:42</a> </div>
  1260. </div>
  1261. <p>да, все четко. сейчас проверил.</p>
  1262. </div>
  1263. <div class="reply">
  1264. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1265. </li><!-- #comment-## -->
  1266. <li id="comment-483" class="comment byuser comment-author-s7 odd alt thread-odd thread-alt depth-1 plain-nested">
  1267. <div id="div-comment-483" class="comment-body">
  1268. <div class="comment-author fix vcard">
  1269. <img title="[2.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://2.gravatar.com/avatar/2a3fad59483bc38290539b0c96b29cb2?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1270. <cite class="fn">s7</cite> <span class="says">says:</span> </div>
  1271. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-483">
  1272. 15.01.2014 at 01:01</a> </div>
  1273. </div>
  1274. <p>Длина имеет значение !<br>
  1275. Сделал такой же длинный шлейф из 4-х проводов как на фото…. залил прошивку…. ни один светодиод не горит <img src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/frownie.png" alt=":(" class="wp-smiley" style="height: 1em; max-height: 1em;"><br>
  1276. В отладке видно, что temp возвращает 0<br>
  1277. добавил в SWITCH горение 2-х светодиодов на этот случай…<br>
  1278. case 0x00:<br>
  1279. GPIOC-&gt;BSRR |= GPIO_BSRR_BS8 | GPIO_BSRR_BS9; // горение 2-х светодиодов на случай отсутствия связи<br>
  1280. send_data = 0x03;<br>
  1281. break;</p>
  1282. <p>решил всё таки проверить влияние длины и формы шлейфа — просто смял
  1283. его в небольшой комочек и прижал к плате…. замигали поочерёдно
  1284. светодиоды…<br>
  1285. расправил шлейф — горят оба = SPI ничего поймать не может из-за помех…<br>
  1286. взял алюминиевый скотч (фольга с липким слоем), обмотал шлейф, к земле
  1287. не подключал… замигали поочерёдно светодиоды… даже в расправленном
  1288. положении.</p>
  1289. </div>
  1290. <div class="reply">
  1291. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1292. </li><!-- #comment-## -->
  1293. <li id="comment-520" class="comment byuser comment-author-lcleo even thread-even depth-1 plain-nested">
  1294. <div id="div-comment-520" class="comment-body">
  1295. <div class="comment-author fix vcard">
  1296. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/0bfc5220866a37960aa42bcf2a0ee12e?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1297. <cite class="fn">lcleo</cite> <span class="says">says:</span> </div>
  1298. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-520">
  1299. 18.05.2014 at 22:13</a> </div>
  1300. </div>
  1301. <p>А как в данном примере управляется линия NSS? Со стороны слейва
  1302. понятно — аппаратный режим и он просто ожидает низкого уровня на NSS. А
  1303. вот вывод NSS мастера в программном режиме в режиме выхода и установлен
  1304. бит SSI регистра CR1 т.е. на выводе NSS высокий уровень? в функции
  1305. передачи по SPI нет кода который бы выставил низкий уровень на
  1306. NSS(SSI=0). Получается на NSS Всегда высокий уровень? Как тогда
  1307. принимает данные слейв?</p>
  1308. </div>
  1309. <div class="reply">
  1310. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1311. <ul class="children">
  1312. <li id="comment-521" class="comment byuser comment-author-mrz bypostauthor odd alt depth-2 plain-nested">
  1313. <div id="div-comment-521" class="comment-body">
  1314. <div class="comment-author fix vcard">
  1315. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1316. <cite class="fn">ChipSpace</cite> <span class="says">says:</span> </div>
  1317. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-521">
  1318. 19.05.2014 at 10:33</a> </div>
  1319. </div>
  1320. <p>Здесь несколько режимов управления выводом NSS, я попробую
  1321. написать о них подробней, но придется немного подождать. Я уже сразу не
  1322. вспомню, надо почитать документацию. А по логике вещей уровень на NSS
  1323. должен «опускаться» перед началом передачи мастера, то есть сразу после
  1324. записи числа в его регистр данных.</p>
  1325. </div>
  1326. <div class="reply">
  1327. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1328. <ul class="children">
  1329. <li id="comment-522" class="comment byuser comment-author-lcleo even depth-3 plain-nested">
  1330. <div id="div-comment-522" class="comment-body">
  1331. <div class="comment-author fix vcard">
  1332. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/0bfc5220866a37960aa42bcf2a0ee12e?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1333. <cite class="fn">lcleo</cite> <span class="says">says:</span> </div>
  1334. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-522">
  1335. 19.05.2014 at 11:29</a> </div>
  1336. </div>
  1337. <p>Запустил пример на STM32L152RBT6 discovery, пробовал и аппартатный
  1338. и програмный режимы управления линией NSS, в обоих случаях на нем
  1339. низкий уровень: 0.32В до строчки SPI1-&gt;CR1 |= SPI_CR1_SPE; //Включаем
  1340. SPI1 в функции инициализации spi, после же этой строчки уровень 0.12В
  1341. Может неисправна моя плата….</p>
  1342. <p>Если правильно понял референс мануал, NSS прижимается к земле
  1343. мастером при начале обмена данными(т.е. до обмена NSS=1 ) и остается на
  1344. низком уровне до ОТКЛЮЧЕНИЯ модуля SPI — это в аппартаном режиме,
  1345. данный алгоритм не соответствует нормальной логике работы линии Chip
  1346. select… неправильный NSS получается<br>
  1347. Если же выбран программный режим управления NSS в режиме мастера,NSS в
  1348. режиме выхода — то в мануале нет информации(SSM=1 SSOE=1).Или в этом
  1349. случае не актуален прогррамный режим и сигнал на NSS нельзя выставить
  1350. программно битом SSI и выход ведет себя также как при режиме
  1351. аппаратногоо управления</p>
  1352. </div>
  1353. <div class="reply">
  1354. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1355. </li><!-- #comment-## -->
  1356. </ul><!-- .children -->
  1357. </li><!-- #comment-## -->
  1358. </ul><!-- .children -->
  1359. </li><!-- #comment-## -->
  1360. <li id="comment-571" class="comment byuser comment-author-spinfly odd alt thread-odd thread-alt depth-1 plain-nested">
  1361. <div id="div-comment-571" class="comment-body">
  1362. <div class="comment-author fix vcard">
  1363. <img alt="SPinFly" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/Kid3-48x48.jpg" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1364. <cite class="fn">SPinFly</cite> <span class="says">says:</span> </div>
  1365. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-571">
  1366. 27.09.2014 at 20:53</a> </div>
  1367. </div>
  1368. <p>//Инициализация SPI1, SPI2<br>
  1369. void spi_init()<br>
  1370. {<br>
  1371. /*Настройка SPI1 (Master)<br>
  1372. 8 бит данных, MSB передается первым, программный режим управления NSS<br>
  1373. вывод NSS (PA4) разрешено использовать в качестве выхода*/<br>
  1374. ….<br>
  1375. ….<br>
  1376. ….<br>
  1377. SPI1-&gt;CR1 |= SPI_CR1_SSM; //Программный режим NSS<br>
  1378. SPI1-&gt;CR1 |= SPI_CR1_SSI; //Аналогично состоянию, когда на входе NSS высокий уровень<br>
  1379. SPI1-&gt;CR2 |= SPI_CR2_SSOE; //Вывод NSS — выход управления slave select</p>
  1380. <p>Программный режим мастера (SSI=1), Тогда вывод NSS отключается и
  1381. используется для других целей. А как же тогда ведомое устр-во переходит
  1382. в режим Slave ?<br>
  1383. если :….<br>
  1384. /*Настройка SPI2 (Slave)<br>
  1385. SPI2-&gt;CR1 &amp;= ~SPI_CR1_SSM; //Аппаратное управление входом NSS
  1386. ——&gt;&gt; NSS подключается к линии и ждет низкого сигнала для приема в
  1387. то время как вывод от мастера отключен.<br>
  1388. SPI2-&gt;CR1 &amp;= ~SPI_CR1_MSTR; //Режим Slave</p>
  1389. </div>
  1390. <div class="reply">
  1391. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1392. <ul class="children">
  1393. <li id="comment-572" class="comment byuser comment-author-mrz bypostauthor even depth-2 plain-nested">
  1394. <div id="div-comment-572" class="comment-body">
  1395. <div class="comment-author fix vcard">
  1396. <img title="[0.gravatar.com]" style="border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC&quot;);" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" srcset="http://0.gravatar.com/avatar/f4ebcd809552a0801fbd2dca19fccd71?s=96&amp;d=blank&amp;r=g 2x" class="avatar avatar-48 photo" height="48" width="48"> <div class="comment-author-link">
  1397. <cite class="fn">ChipSpace</cite> <span class="says">says:</span> </div>
  1398. <div class="comment-meta commentmetadata"><a href="http://chipspace.ru/stm32-spi/#comment-572">
  1399. 30.09.2014 at 13:44</a> </div>
  1400. </div>
  1401. <p>Программно.</p>
  1402. </div>
  1403. <div class="reply">
  1404. <a rel="nofollow" class="comment-reply-login" href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">Войдите, чтобы ответить</a> </div>
  1405. </li><!-- #comment-## -->
  1406. </ul><!-- .children -->
  1407. </li><!-- #comment-## -->
  1408. </ol>
  1409. <div class="navigation fix">
  1410. <div class="alignleft"></div>
  1411. <div class="alignright"></div>
  1412. </div>
  1413. <div id="respond" class="comment-respond">
  1414. <h3 id="reply-title" class="comment-reply-title"><span class="icon">&nbsp;</span>Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="http://chipspace.ru/stm32-spi/#respond" style="display:none;">Cancel reply</a></small></h3>
  1415. <p class="must-log-in"><a href="http://chipspace.ru/wp-login.php?redirect_to=http%3A%2F%2Fchipspace.ru%2Fstm32-spi%2F">You must be logged in to post a comment.</a></p> </div><!-- #respond -->
  1416. </section> <!-- #comments --> </article><!--/post -->
  1417. <nav class="post-nav fix">
  1418. <table>
  1419. <tbody><tr>
  1420. <td class="previous"><a href="http://chipspace.ru/stm32-system-clock-configuration/" rel="prev"><span class="icon">&nbsp;</span> STM32L. System clock configuration. Утилита для конфигурации тактовых частот и создания файла system_stm32l1xx.c.</a></td>
  1421. <td class="next"><a href="http://chipspace.ru/stm32-spi-stdperiph_lib/" rel="next"><span class="icon">&nbsp;</span> STM32. Стандартные библиотеки для модуля SPI</a></td>
  1422. </tr>
  1423. </tbody></table>
  1424. </nav>
  1425. </div><!-- content -->
  1426. </div><!-- main col -->
  1427. <div id="sidebar-shell-1" class="sidebar-shell sidebar-shell-right">
  1428. <div class="dbx-group right boxed warea" id="sidebar">
  1429. <!--widget start --><aside id="categories-3" class="dbx-box suf-widget widget_categories"><div class="dbx-content"><h3 class="dbx-handle plain">Рубрики</h3> <ul>
  1430. <li class="cat-item cat-item-102"><a href="http://chipspace.ru/category/gps/">GPS</a> (4)
  1431. </li>
  1432. <li class="cat-item cat-item-90"><a href="http://chipspace.ru/category/analog-digital-devices/">Аналого-цифровые устройства</a> (2)
  1433. </li>
  1434. <li class="cat-item cat-item-23"><a href="http://chipspace.ru/category/analog/">Аналоговая электроника</a> (1)
  1435. </li>
  1436. <li class="cat-item cat-item-69"><a href="http://chipspace.ru/category/indicators/">Индикаторы</a> (1)
  1437. </li>
  1438. <li class="cat-item cat-item-86"><a href="http://chipspace.ru/category/interface/">Интерфейсы</a> (1)
  1439. </li>
  1440. <li class="cat-item cat-item-68"><a href="http://chipspace.ru/category/microcontrollers/">Микроконтроллеры</a> (44)
  1441. <ul class="children">
  1442. <li class="cat-item cat-item-65"><a href="http://chipspace.ru/category/microcontrollers/microcontrollers-atmel/">Atmel</a> (1)
  1443. </li>
  1444. <li class="cat-item cat-item-9"><a href="http://chipspace.ru/category/microcontrollers/microcontrollers-stm32/">STM32</a> (43)
  1445. </li>
  1446. </ul>
  1447. </li>
  1448. <li class="cat-item cat-item-111"><a href="http://chipspace.ru/category/cpld-fpga/">ПЛИС</a> (1)
  1449. </li>
  1450. <li class="cat-item cat-item-114"><a href="http://chipspace.ru/category/site/">Сайт</a> (1)
  1451. </li>
  1452. </ul>
  1453. </div></aside><!--widget end --><!--widget start --><aside id="wp_sidebarlogin-2" class="dbx-box suf-widget widget_wp_sidebarlogin"><div class="dbx-content"><h3 class="dbx-handle plain">Логин</h3>
  1454. <form name="loginform" id="loginform" action="http://chipspace.ru/wp-login.php" method="post">
  1455. <p class="login-username">
  1456. <label for="user_login">Имя пользователя</label>
  1457. <input name="log" id="user_login" class="input" size="20" type="text">
  1458. </p>
  1459. <p class="login-password">
  1460. <label for="user_pass">Пароль</label>
  1461. <input name="pwd" id="user_pass" class="input" value="" size="20" type="password">
  1462. </p>
  1463. <p class="login-remember"><label><input name="rememberme" id="rememberme" value="forever" checked="checked" type="checkbox"> Запомнить меня</label></p>
  1464. <p class="login-submit">
  1465. <input name="wp-submit" id="wp-submit" class="button-primary" value="Войти →" type="submit">
  1466. <input name="redirect_to" value="http://chipspace.ru/stm32-spi/" type="hidden">
  1467. </p>
  1468. </form></div></aside><!--widget end --></div><!--/sidebar -->
  1469. </div>
  1470. </div><!-- /container -->
  1471. <footer>
  1472. <div id="cred">
  1473. <table>
  1474. <tbody><tr>
  1475. <td class="cred-left">© 2011. Екатеринбург.
  1476. </td>
  1477. <td class="cred-center"></td>
  1478. <td class="cred-right"><a href="http://aquoid.com/news/themes/suffusion/">Suffusion theme by Sayontan Sinha</a></td>
  1479. </tr>
  1480. </tbody></table>
  1481. </div>
  1482. </footer>
  1483. <!-- 95 queries, 33MB in 0,705 seconds. -->
  1484. </div><!--/wrapper -->
  1485. <!-- location footer -->
  1486. <script type="text/javascript" src="STM32.%20%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%20SPI%20%C2%BB%20ChipSpace_files/comment-reply.js"></script>
  1487. <!-- Yandex.Metrika counter -->
  1488. <script type="text/javascript">
  1489. (function (d, w, c) {
  1490. (w[c] = w[c] || []).push(function() {
  1491. try {
  1492. w.yaCounter11339371 = new Ya.Metrika({id:11339371,
  1493. clickmap:true,
  1494. trackLinks:true,
  1495. accurateTrackBounce:true});
  1496. } catch(e) { }
  1497. });
  1498. var n = d.getElementsByTagName("script")[0],
  1499. s = d.createElement("script"),
  1500. f = function () { n.parentNode.insertBefore(s, n); };
  1501. s.type = "text/javascript";
  1502. s.async = true;
  1503. s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
  1504. if (w.opera == "[object Opera]") {
  1505. d.addEventListener("DOMContentLoaded", f, false);
  1506. } else { f(); }
  1507. })(document, window, "yandex_metrika_callbacks");
  1508. </script>
  1509. <noscript><div><img title="[mc.yandex.ru]" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="position: absolute; left: -9999px; display: none ! important; border: 1px solid rgb(255, 204, 204); background-repeat: no-repeat; background-position: center center; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9gMFRANL5LXnioAAAJWSURBVDjLnZI/ixtXFMV/972ZNzPSrmTtalexlsWBGMfEYOzaVciXyKdIkW/hFKnS22WafIDUxk0g2AQSgm0csIPWK42ktaSRNPP+pRBK5SLOqS7cew7ccw4xxrPJ+8XdHx4+7AE8e3Cj++zLm71fvrqT8x+QAK35dJr2n/x89urTa+eDm/cS+eI2y3eT+Lx/bt8u1vNqfDH++teXdk/6ThAfUUBIgL9ku75z/8WL7LOlhXIGJ0Pyw75wMcnGv//xSQ2DH4ddu9k01dXWsWzcofhYaiiViLjiWi9UWQa1gzcjWF7hgfzzW5ydnXB62JLjg0PTLfJertNepnQSIA+gE4Cs03UuNYYQYP4e5jPogmSG9vA6rrjC+0AxN2i5Qk0DpXVJhCQB0EVRrzqdFgB1DZfvCDHixiV2NqO6LHHKIKnQMoaWbFBgIrQVgIXaDc+JCHgP5QRZr4jzGWFbo6yncRYviiiQKUhBRch3Lyix4bgPWsAkcDkmZAV2OiE0DaI1WoEShRKF3sWnmt01pFBnJydEpZDEwHSGt47lYsls43AIXjTWV9R1Qx0DGahqLyAhbqrj0/ib0nRzXNoyCo0Kkor2llV0eKOwdUMg4pSQA7JPQXvnJv1B+GlwOvrGlaXB6fV2lb5t6qOtike56DSJgYDGBQcOAsQAfueBMeHR48fhadb1j/58HWARdt6yBv7+/vpBe2o5OogxlcaKdt5aKCNsk309W0WxKQjmQ33/9mJVAdWHdmo/tNvtRZIkfCz+ZQwGg6rT6Zj/LTAajTbD4bD5WIF/AAseEisPFO8uAAAAAElFTkSuQmCC");" alt="" height="50" width="50"></div></noscript>
  1510. <!-- /Yandex.Metrika counter -->
  1511. <style>#content > #center > .dose > .dosesingle,
  1512. #content > #right > .dose > .dosesingle,
  1513. #header + #content > #left > #rlblock_left
  1514. {display:none !important;}</style></body></html>