{"id":1018,"date":"2018-05-30T21:27:43","date_gmt":"2018-05-30T21:27:43","guid":{"rendered":"http:\/\/hayperek.pl\/?p=1018"},"modified":"2018-07-21T20:13:15","modified_gmt":"2018-07-21T20:13:15","slug":"w-poszukiwaniu-nastepcy","status":"publish","type":"post","link":"https:\/\/hayperek.pl\/en\/2018\/05\/30\/w-poszukiwaniu-nastepcy\/","title":{"rendered":"W poszukiwaniu nast\u0119pcy&#8230;."},"content":{"rendered":"<p>Jak wspomnia\u0142em w jednym z <a href=\"http:\/\/hayperek.pl\/en\/2018\/05\/28\/zadyszka-na-ostatniej-prostej-czyli-co-zrobic-kiedy-nasz-procesor-okaze-sie-zbyt-slaby\/\">poprzednich artyku\u0142\u00f3w<\/a> powoli zbli\u017camy si\u0119 do granic mo\u017cliwo\u015bci naszego mikrokontrolera STM32F407. Szczeg\u00f3lnie dokuczliwy wydaje si\u0119 by\u0107 brak pami\u0119ci RAM, kt\u00f3rej mamy jedynie 192kB.W dzisiejszym artykule spr\u00f3bujemy poszuka\u0107 potencjalnych kandydat\u00f3w na nast\u0119pc\u0119 \ud83d\ude42 Do dzie\u0142a!<\/p>\n<p>Pierwszym istotnym za\u0142o\u017ceniem jest to, i\u017c pozostajemy w rodzinie STM32. Przy obecnym zaawansowaniu prac nie jest wskazana przesiadka na ca\u0142kowicie inn\u0105 platform\u0119. Ponadto wi\u0119ksi bracia STM32F407 mog\u0105 pochwali\u0107 si\u0119 naprawd\u0119 imponuj\u0105cymi mo\u017cliwo\u015bciami. W gr\u0119 wchodz\u0105 wi\u0119c dwie grupy: uk\u0142ady serii F4, bazuj\u0105ce na rdzeniu Cortex-M4 oraz F7 &#8211; zbudowane w oparciu o rdze\u0144 Cortex-M7.<\/p>\n<p>Najwi\u0119ksz\u0105 zalet\u0105 rodziny F7 jest posiadanie pami\u0119ci podr\u0119cznej cache typu L1. Pozwala to przyspieszy\u0107 wykonywanie kodu, gdy\u017c procesor nie musi &#8222;si\u0119ga\u0107&#8221; za ka\u017cdym razem bezpo\u015brednio do pami\u0119ci operacyjnej b\u0105d\u017a programu. Ponadto taktowanie zegara mo\u017ce wynosi\u0107 a\u017c 216MHz w por\u00f3wnaniu do 180MHz dla uk\u0142ad\u00f3w z serii F4. Wyb\u00f3r mo\u017ce wydawa\u0107 si\u0119 oczywisty &#8211; pami\u0119tajmy jednak, \u017ce to nie moc obliczeniowa stanowi nasze g\u0142\u00f3wne zmartwienie, a pami\u0119\u0107.<\/p>\n<p>Uk\u0142ady F7 mog\u0105 si\u0119 pochwali\u0107 od 256kB do 512kB wbudowanej pami\u0119ci SRAM. Dla por\u00f3wnania &#8211; seria F4 posiada maksymalnie 384kB. Oznacza to, i\u017c \u017caden z tych uk\u0142ad\u00f3w nie ma wystarczaj\u0105cej ilo\u015bci pami\u0119ci aby skutecznie i szybko obs\u0142u\u017cy\u0107 ogromn\u0105 ilo\u015b\u0107 element\u00f3w graficznych. Naturalnym (i jedynym sensownym) wyj\u015bciem by\u0142oby zatem uzupe\u0142nienie systemu o zewn\u0119trzn\u0105 ko\u015b\u0107 pami\u0119ci SDRAM o pojemno\u015bci kilku MB. To ju\u017c w zupe\u0142no\u015bci wystarcza na nasze potrzeby \ud83d\ude42 Cen\u0105 za to jest niestety znaczna komplikacja urz\u0105dzenia oraz konieczno\u015b\u0107 wprowadzenia dwuwarstwowej p\u0142ytki drukowanej, co nie pozostaje bez wp\u0142ywu na ostateczne koszty. No ale c\u00f3\u017c &#8211; jest to jedyne rozs\u0105dne rozwi\u0105zanie, kt\u00f3re nie zamknie nam drogi do dalszego rozwoju systemu.<\/p>\n<blockquote><p>Czego zatem potrzebujemy?<\/p><\/blockquote>\n<p>Skoro moc obliczeniowa serii F4 mo\u017ce zosta\u0107 uznana za wystarczaj\u0105c\u0105, warto spojrze\u0107 na uk\u0142ady posiadaj\u0105ce interfejsy zewn\u0119trznych pami\u0119ci.<\/p>\n<blockquote><p>Przecie\u017c obecny procesor STM32F407 ma wbudowany kontroler pami\u0119ci FSMC<\/p><\/blockquote>\n<p>To prawda, jednak nie wspiera on pami\u0119ci dynamicznych, czyli w tak\u017ce SDRAM. Ko\u015bci pami\u0119ci statycznej SRAM r\u00f3wnie\u017c s\u0105 dost\u0119pne, oferuj\u0105 jednak znacznie mniejsz\u0105 pojemno\u015b\u0107, rz\u0119du setek kB przy dwu-trzy krotnie wy\u017cszej cenie. Musimy wi\u0119c wybra\u0107 uk\u0142ad posiadaj\u0105cy kontroler FMC <em>(ang. Flexible Memory Controler)<\/em>.<\/p>\n<p>W ten spos\u00f3b zamykamy si\u0119 do dw\u00f3ch linii produktowych w obr\u0119bie rodziny F4 &#8211; linii <em>Foundation<\/em> and <em>Advanced<\/em>, gdy\u017c jedynie one wyposa\u017cono w tego rodzaju kontrolery.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.st.com\/content\/ccc\/fragment\/product_related\/series_information\/series_level_diagram\/18\/e0\/d8\/4e\/64\/15\/42\/ba\/STM32F4_series_SS1577.jpg\/files\/STM32F4_series_SS1577.jpg\/_jcr_content\/translations\/en.STM32F4_series_SS1577.jpg\" alt=\"\" \/><\/p>\n<p>Najbardziej obiecuj\u0105cymi kandydatami s\u0105 uk\u0142ady: STM32F427 oraz STM32429 &#8211; oba posiadaj\u0105 384kB wbudowanej pami\u0119ci SRAM oraz a\u017c do 2MB pami\u0119ci programu Flash <em>(to ogromnie du\u017co!)<\/em>.<\/p>\n<p>Ostateczna decyzja jeszcze nie zapad\u0142a, gdy\u017c musimy przemy\u015ble\u0107 kilka innych kwestii. Na t\u0105 chwil\u0119 zaw\u0119zili\u015bmy jednak wyb\u00f3r do dw\u00f3ch uk\u0142ad\u00f3w \ud83d\ude42<\/p>","protected":false},"excerpt":{"rendered":"<p>Jak wspomnia\u0142em w jednym z poprzednich artyku\u0142\u00f3w powoli zbli\u017camy si\u0119 do granic mo\u017cliwo\u015bci naszego mikrokontrolera STM32F407. Szczeg\u00f3lnie dokuczliwy wydaje si\u0119 by\u0107 brak pami\u0119ci RAM, kt\u00f3rej mamy jedynie 192kB.W dzisiejszym artykule spr\u00f3bujemy poszuka\u0107 potencjalnych kandydat\u00f3w na nast\u0119pc\u0119 \ud83d\ude42 Do dzie\u0142a! Pierwszym istotnym za\u0142o\u017ceniem jest to, i\u017c pozostajemy w rodzinie STM32. Przy obecnym zaawansowaniu prac nie jest [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1133,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-1018","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-stodni","9":"post-with-thumbnail","10":"post-with-thumbnail-large"},"_links":{"self":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/1018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/comments?post=1018"}],"version-history":[{"count":3,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/1018\/revisions"}],"predecessor-version":[{"id":1026,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/1018\/revisions\/1026"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/media\/1133"}],"wp:attachment":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/media?parent=1018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/categories?post=1018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/tags?post=1018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}