{"id":1033,"date":"2018-06-01T21:47:36","date_gmt":"2018-06-01T21:47:36","guid":{"rendered":"http:\/\/hayperek.pl\/?p=1033"},"modified":"2018-07-21T20:14:00","modified_gmt":"2018-07-21T20:14:00","slug":"pamiec-dobra-choc-krotka","status":"publish","type":"post","link":"https:\/\/hayperek.pl\/en\/2018\/06\/01\/pamiec-dobra-choc-krotka\/","title":{"rendered":"Pami\u0119\u0107 dobra, cho\u0107 kr\u00f3tka&#8230;"},"content":{"rendered":"<p>Na pewno wiemy ju\u017c, \u017ce nasz system wyposa\u017cony zostanie w ko\u015b\u0107 pami\u0119ci SDRAM&#8230; Otwartym jednak wci\u0105\u017c pozostaje pytanie:<\/p>\n<h5>Jaka dok\u0142adnie ma by\u0107 ta pami\u0119\u0107?<\/h5>\n<p>Wyb\u00f3r pami\u0119ci SDRAM jest ogromny, wi\u0119c postanowi\u0142em si\u0119gn\u0105\u0107 po co\u015b sprawdzonego i wykorzystywanego w wielu systemach prototypowych z mikrokontrolerami STM32F429\/STM32F427. Okazuje si\u0119, i\u017c zdecydowana wi\u0119kszo\u015b\u0107 z nich u\u017cywa uk\u0142adu IS42S16400J, o pojemno\u015bci 64Mb czyli 8MB. Patrz\u0105c z perspektywy gigabajtowych pojemno\u015bci jakie mo\u017cna spotka\u0107 w przeci\u0119tnych nawet telefonach kom\u00f3rkowych, wspomniane kilka megabajt\u00f3w nie robi wi\u0119kszego wra\u017cenia. Pami\u0119tajmy jednak, i\u017c jest to prawie 20x wi\u0119cej ni\u017c b\u0119dziemy mieli wbudowanej pami\u0119ci SRAM w naszym nowym procesorze.<\/p>\n<p>Od strony mechanicznej, do wyboru mamy trzy rodzaje obudowy naszego scalaka &#8211; dwa z nich to obudowy typu BGA, a jedna &#8211; TSOP. Wyb\u00f3r jest tu do\u015b\u0107 oczywisty &#8211; monta\u017c powierzchniowy ko\u015bci BGA jest o wiele bardziej wymagaj\u0105cy i niezbyt nadaje si\u0119 do zastosowania w urz\u0105dzeniu prototypowym. Z drugiej strony uk\u0142ady w obudowach TSOP zar\u00f3wno \u0142atwo przylutowa\u0107 jak i ewentualnie wylutowa\u0107, np. w celu podmiany na ko\u015b\u0107 o wi\u0119kszej pojemno\u015bci.<\/p>\n<h5>A gdzie tkwi haczyk?<\/h5>\n<p>Dotychczas interesowali\u015bmy si\u0119 jedynie tym, \u017ce brakuje nam pami\u0119ci i na pewno b\u0119dziemy potrzebowali dodatkowej, zewn\u0119trznej ko\u015bci. Dzi\u015b uda\u0142o nam si\u0119 znale\u017a\u0107 kandydata na to miejsce. Czy to oznacza koniec problem\u00f3w? Niestety nie&#8230;<\/p>\n<ol>\n<li>Pod\u0142\u0105czenie ko\u015bci pami\u0119ci pozbawia nas kilkunastu pin\u00f3w procesora, kt\u00f3re b\u0119d\u0105 pe\u0142ni\u0107 rol\u0119 linii adresuj\u0105cych oraz steruj\u0105cych prac\u0105 pami\u0119ci SDRAM.<\/li>\n<li>Pami\u0119\u0107 typu SDRAM, ze wzgl\u0119du na swoj\u0105 budow\u0119, wymaga okresowego &#8222;od\u015bwie\u017cania&#8221;. Oznacza to, i\u017c przej\u015bcie w jakikolwiek tryb niskiego poboru pr\u0105du spowoduje zniszczenie przechowywanych w  niej danych, a co za tym idzie &#8211; wymusi ponownie ich wczytanie\/utworzenie po wybudzeniu si\u0119 urz\u0105dzenia. <\/li>\n<p>,<\/p>\n<li>W por\u00f3wnaniu do wbudowanej pami\u0119ci SRAM, czas dost\u0119pu jest kilkukrotnie d\u0142u\u017cszy. Oznacza to, \u017ce wczytanie b\u0105d\u017a zapisanie czegokolwiek do zewn\u0119trznej ko\u015bci pami\u0119ci b\u0119dzie trwa\u0142o znacznie d\u0142u\u017cej ni\u017c ma to miejsce w przypadku pami\u0119ci wbudowanej. Wymusza to dok\u0142adne przemy\u015blenie co nale\u017cy umie\u015bci\u0107 w pojemnej, lecz wolnej pami\u0119ci zewn\u0119trznej, a co pozostawi\u0107 w szybkiej pami\u0119ci SRAM.<\/li>\n<li>Pami\u0119\u0107 wsp\u00f3\u0142dzieli magistral\u0119 danych z wy\u015bwietlaczem LCD. Oznacza to, i\u017c nie jest mo\u017cliwe jednoczesny dost\u0119p do obu tych medi\u00f3w. Ponadto po\u0142\u0105czenia musz\u0105 zosta\u0107 zaprojektowane bardzo starannie, aby nie doprowadzi\u0107 do powstawania zak\u0142\u00f3ce\u0144.<\/li>\n<\/ol>\n<p>Powy\u017csza lista to jedynie cz\u0119\u015b\u0107 potencjalnych problem\u00f3w, na jakie mo\u017cemy si\u0119 natkn\u0105\u0107 dodaj\u0105c pozornie tak &#8222;oczywist\u0105&#8221; rzecz, jak\u0105 jest pami\u0119\u0107. Pokazuje ona r\u00f3wnie\u017c ponownie, jak bardzo z\u0142o\u017conym procesem jest projektowanie i modyfikowanie system\u00f3w wbudowanych &#8211; zar\u00f3wno tych najmniejszych, jak i tych ju\u017c nieco bardziej rozbudowanych. Widzimy, \u017ce poruszenie jednego &#8222;kamienia&#8221; powoduje powstanie ca\u0142kiem sporej lawiny zmian, kt\u00f3ra dotyka ka\u017cdej niemal\u017ce warstwy, ka\u017cdego aspektu. Wyliczmy kolejno: schemat ideowy, p\u0142ytk\u0119 PCB, system zasilania, warstw\u0119 driver\u00f3w sprz\u0119tu, warstw\u0119 alokacji pami\u0119ci, konfiguracj\u0119 linkera, wydajno\u015b\u0107 i op\u00f3\u017anienia w systemie, map\u0119 pami\u0119ci&#8230; Ca\u0142kiem sporo tego&#8230; a czasu co raz to mniej&#8230;<\/p>","protected":false},"excerpt":{"rendered":"<p>Na pewno wiemy ju\u017c, \u017ce nasz system wyposa\u017cony zostanie w ko\u015b\u0107 pami\u0119ci SDRAM&#8230; Otwartym jednak wci\u0105\u017c pozostaje pytanie: Jaka dok\u0142adnie ma by\u0107 ta pami\u0119\u0107? Wyb\u00f3r pami\u0119ci SDRAM jest ogromny, wi\u0119c postanowi\u0142em si\u0119gn\u0105\u0107 po co\u015b sprawdzonego i wykorzystywanego w wielu systemach prototypowych z mikrokontrolerami STM32F429\/STM32F427. Okazuje si\u0119, i\u017c zdecydowana wi\u0119kszo\u015b\u0107 z nich u\u017cywa uk\u0142adu IS42S16400J, o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1135,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-1033","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\/1033","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=1033"}],"version-history":[{"count":2,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/1033\/revisions"}],"predecessor-version":[{"id":1035,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/1033\/revisions\/1035"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/media\/1135"}],"wp:attachment":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/media?parent=1033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/categories?post=1033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/tags?post=1033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}