{"id":32463,"date":"2019-10-31T21:47:12","date_gmt":"2019-10-31T18:47:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\/"},"modified":"2019-10-31T21:47:12","modified_gmt":"2019-10-31T18:47:12","slug":"kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","title":{"rendered":"Kako i za\u0161to \u010ditati datasheet-ove ako su mikrocontroleri va\u0161 hobi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kako i za\u0161to \u010ditati datasheet-ove ako su mikrocontroleri va\u0161 hobi\" src=\"\/wp-content\/uploads\/2019\/04\/ae2537b0263d692c4f79e7b5f7bc0797.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mikroelektronika je postala popularni hobi posljednjih godina zahvaljuju\u0107i \u010darobnom Arduinu. No, ima jedna stvar: uz dovoljno interesa, vrlo brzo se pre\u0111e na DigitalWrite(), a \u0161to dalje - nije ba\u0161 jasno. Razvija\u010di Arduina puno su se trudili smanjiti ulaznu barijeru u svoju ekosustav, ali izvan nje i dalje se nalazi mra\u010dna \u0161uma stroge elektronike koja nije lako dostupna entuzijastima.<\/p>\n<p><\/p>\n<p>Na primjer, datasheetovi. Izgledaju kao da sadr\u017ee sve \u0161to vam treba, samo uzmite i koristite. No, njihovi autori o\u010digledno ne postavljaju sebi zadatak popularizacije mikrokontrolera; ponekad <em>se \u010dini<\/em>, kao da namjerno koriste nejasne pojmove i kraticu pri opisivanju jednostavnih stvari kako bi maksimalno zbunili neupu\u0107enog. No, nije sve tako lo\u0161e, uz malo \u017eelje sve \u0107e se razjasniti.<\/p>\n<p><\/p>\n<p>U ovom \u0107u \u010dlanku podijeliti iskustvo humanista koji se bavi datasheetovima u hobisti\u010dke svrhe. Tekst je namijenjen onima koji su odrasli s Arduinom, i predvi\u0111a odre\u0111eno razumijevanje osnovnih principa rada mikrokontrolera.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Po\u010det \u0107u s tradicionalnim<\/p>\n<p><\/p>\n<h3 id=\"migaem-svetodiodom-na-arduino\">Treptanjem LED-a na Arduinu<\/h3>\n<p><\/p>\n<p>I odmah kod:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">void setup() {\nDDRB |= (1&lt;&lt;5);\n}\n\nvoid loop() {\nPINB = (1&lt;&lt;5);\nfor (volatile uint32_t k=0; k&lt;100000; k++);\n}<\/code><\/pre>\n<p><\/p>\n<p>\"\u0160to je ovo?\" - upitat \u0107e iskusni \u010ditatelj. \"Za\u0161to ne\u0161to pi\u0161e\u0161 u ulazni registar PINB? On je samo za \u010ditanje!\" Zaista, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arduino.cc\/en\/Reference\/PortManipulation\">dokumentacija Arduina<\/a><\/noindex>, kao i ve\u0107ina obrazovnih \u010dlanaka na internetu, tvrdi da je ovaj registar samo za \u010ditanje. I sam sam to mislio sve dok nisam ponovno pregledao <noindex><a rel=\"nofollow\" href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf\">datashit<\/a><\/noindex> Atmega328p, pripremaju\u0107i ovaj \u010dlanak. A tu se ka\u017ee:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kako i za\u0161to \u010ditati datasheet-ove ako su mikrocontroleri va\u0161 hobi\" src=\"\/wp-content\/uploads\/2019\/04\/4c754bda59d9f18a38209cc32f0fb3a3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To je relativno nova funkcionalnost, nije je bilo na Atmega8, o njoj ne znaju svi ili je ne spominju zbog povratne kompatibilnosti. No, sasvim je korisno za demonstraciju misli da se datasheetovi trebaju \u010ditati kako bi se iskoristile sve mogu\u0107nosti \u010dipa, uklju\u010duju\u0107i one koje su malo poznate. I to nije jedini razlog.<\/p>\n<p><\/p>\n<h2 id=\"zachem-esche-chitat-datashity\">Za\u0161to jo\u0161 \u010ditati datasheetove<\/h2>\n<p><\/p>\n<p>Obi\u010dno, nakon igranja sa svjetlima i AnalogWrite-om, Arduino zaljubljenici po\u010dinju povezivati razne module i \u010dipove na plo\u010du za koje ve\u0107 postoje napisane biblioteke. Pr sooner ili kasnije nai\u0111e na biblioteku koja ne radi onako kako bi trebala. Tada entuzijasta po\u010dinje istra\u017eivati kako bi je popravio, a unutra...<\/p>\n<p><\/p>\n<p>Tamo se doga\u0111a ne\u0161to potpuno nejasno, zbog \u010dega je potrebno krenuti na Google, \u010ditati brojne tutorijale, povla\u010diti dijelove ne\u010dijeg prikladnog koda i kona\u010dno ostvariti svoje. To donosi sna\u017ean osje\u0107aj postignu\u0107a, ali zapravo proces vi\u0161e nalikuje izmi\u0161ljanju bicikla putem reverznog in\u017eenjerstva motocikla. A ni razumijevanje kako taj bicikl funkcionira ne postaje ve\u0107e. Znam, jer sam se time bavio dovoljno dugo.<\/p>\n<p><\/p>\n<p>Da sam umjesto ovog zanimljivog zadatka potro\u0161io nekoliko dana na prou\u010davanje dokumentacije za Atmega328, u\u0161tedio bih ogromnu koli\u010dinu vremena. Na kraju krajeva, to je prili\u010dno jednostavan mikrokontroler.<\/p>\n<p><\/p>\n<p>Stoga bi bilo dobro \u010ditati datasheetove barem kako bismo imali predstavu o tome kako je mikrokontroler uop\u0107e konstruiran i \u0161to sve mo\u017ee raditi. I jo\u0161:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>kako bismo provjeravali i optimizirali tu\u0111e biblioteke. \u010cesto ih pi\u0161u isti entuzijasti koji izmi\u0161ljaju bicikl; ili, s druge strane, autori namjerno dodaju vi\u0161ak za\u0161tite od gluposti. Neka bude tri puta sporije, ali neka sigurno funkcionira;<\/p>\n<p>\n<\/li>\n<li>\n<p>kako bismo imali mogu\u0107nost koristiti \u010dipove za koje nitko nije napisao biblioteku;<\/p>\n<p>\n<\/li>\n<li>\n<p>kako bismo olak\u0161ali sebi zadatak migracije s jednog modela mikrokontrolera na drugi;<\/p>\n<p>\n<\/li>\n<li>\n<p>kako bismo kona\u010dno optimizirali svoj stari kod koji nije mogao stati u Arduinu;<\/p>\n<p>\n<\/li>\n<li>\n<p>kako bismo nau\u010dili upravljati bilo kojim \u010dipom izravno preko njegovih registara, ne zamaraju\u0107i se prou\u010davanjem strukture njegovih biblioteka, ako takve uop\u0107e postoje.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"zachem-pisat-v-registry-napryamuyu-kogda-est-hal-i-ll\">Za\u0161to pisati izravno u registre, kada postoje HAL i LL?<\/h2>\n<p><\/p>\n<p><em>Rje\u010dnik<\/em><br \/>\n<em><strong>HAL, High Abstraction Layer<\/strong> \u2013 biblioteka za upravljanje mikrokontrolerom s visokim razinama apstrakcije. Ako trebate koristiti SPI1 su\u010delje, jednostavno ga postavite i aktivirajte, ne razmi\u0161ljaju\u0107i o tome koji registri za \u0161to odgovaraju.<br \/>\n<strong>LL, Low Level API<\/strong> \u2013 biblioteka koja sadr\u017ei makroe ili strukture s adresama registara, omogu\u0107uju\u0107i pristup njima po imenu. DDRx, PORTx, PINx na Atmegi \u2013 to je LL.<\/em><\/p>\n<p><\/p>\n<p>Rasprave o temi \u201eHAL, LL ili registri\u201c redovito se nalaze u komentarima na Habru. Ne pretendiraju\u0107i na pristup astralnom znanju, samo \u0107u podijeliti svoje amatersko iskustvo i razmi\u0161ljanja.<\/p>\n<p><\/p>\n<p>Nakon \u0161to sam se manje-vi\u0161e upoznao s Atmegom i pro\u010ditao mnogo \u010dlanaka o \u010darima STM32, kupio sam pola tuceta razli\u010ditih plo\u010da \u2013 i Discovery, i 'Plave Tablete', pa \u010dak i same \u010dipove za svoje projekte. Sve to je dvije godine skupljalo pra\u0161inu u kutiji. Ponekad sam si govorio: 'To je to, od ovog vikenda po\u010dinjem s STM-om', pokretao CubeMX, generirao postavke za SPI, gledao na zid teksta za\u010dinjenog copyrightima STM-a, te odlu\u010dio da je to nekako previ\u0161e.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kako i za\u0161to \u010ditati datasheet-ove ako su mikrocontroleri va\u0161 hobi\" src=\"\/wp-content\/uploads\/2019\/04\/d83be97ba2767121f4be20d524000afe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Naravno, mogu\u0107e je shvatiti \u0161to je CubeMX ovdje napisao. No, jasno je i da je neprakti\u010dno zapamtiti sve formulacije da bih ih kasnije mogao pisati rukama. A debagiranje toga, ako slu\u010dajno zaboravim ozna\u010diti neku opciju u Kubem, to je pravo mu\u010denje.<\/p>\n<p><\/p>\n<p>Pro\u0161lo je dvije godine, a ja jo\u0161 uvijek u\u017eivam u <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=fr.appsolute.st&amp;hl=ru\">ST MCU Finder<\/a><\/noindex> raznim ukusnim, ali za moje razumijevanje nedostupnim \u010dipovima, i slu\u010dajno sam naletio na <noindex><a rel=\"nofollow\" href=\"https:\/\/lujji.github.io\/blog\/bare-metal-programming-stm8\/\">izvrsnu stavku<\/a><\/noindex>, iako o STM8. I <em>iznenada<\/em> shvatio sam da sam tokom cijelog ovog vremena kucao na otvorena vrata: registri kod STM-a su postavljeni sli\u010dno kao kod bilo kojeg drugog mikrocontroller-a, i za rad s njima Cube nije obavezan. <em>\u0160to, da li je to bilo mogu\u0107e?..<\/em><\/p>\n<p><\/p>\n<p>HAL i konkretno STM32CubeMX \u2013 alat za profesionalne in\u017eenjere koji intenzivno rade s STM32 \u010dipovima. Glavna prednost je visok nivo apstrakcije, mogu\u0107nost brze migracije s jednog mikrocontroller-a na drugi, pa \u010dak i s jedne jezgre na drugu, ostaju\u0107i unutar STM32 linije. Hobi in\u017eenjeri se s takvim zadacima rijetko susre\u0107u \u2013 na\u0161 izbor mikrocontroller-a je obi\u010dno ograni\u010den na asortiman s AliExpress-a, i \u010de\u0161\u0107e migriramo izme\u0111u radikalno razli\u010ditih \u010dipova \u2013 prelazimo s Atmega na STM, iz STM na ESP, ili \u0161to god novo donesu na\u0161i kineski prijatelji. HAL ovdje ne poma\u017ee, a u\u010denje mu uzima mnogo vremena.<\/p>\n<p><\/p>\n<p>Preostaje LL \u2013 ali od njega do registara je samo korak. Osobno smatram da je korisno pisati svoje makroe s adresama registara: pa\u017eljivije prou\u010davam datasheet, razmi\u0161ljam o tome \u0161to \u0107e mi trebati u budu\u0107nosti, a \u0161to sigurno ne, bolje strukturiram svoje programe, a i op\u0107enito, prevazila\u017eenje poma\u017ee pam\u0107enju.<\/p>\n<p><\/p>\n<p>Osim toga, postoji nijansa s popularnim STM32F103 \u2013 za njega postoje dvije nespojive verzije LL, jedna slu\u017ebena od STM-a, druga od Leaf Labs, koja se koristi u projektu STM32duino. Ako \u017eelite pisati open-source biblioteku (a ja sam imao upravo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Ontaelio\/DMdriverSTM32F1\">takav zadatak<\/a><\/noindex>), potrebno je ili napraviti dvije verzije, ili se obratiti registrima direktno.<\/p>\n<p><\/p>\n<p>Na kraju, odustajanje od LL, po mom mi\u0161ljenju, olak\u0161ava migraciju, posebno ako se na to ra\u010duna od samog po\u010detka rada na projektu. Ekstreman primjer: napisat \u0107emo Arduinov blink u Atmel Studiju bez LL:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">#include &lt;stdint.h&gt;\n\n#define _REG(addr) (*(volatile uint8_t*)(addr))\n\n#define DDR_B 0x24\n#define OUT_B 0x25\n\nint main(void)\n{\n    volatile uint32_t k;\n\n    _REG(DDR_B) |= (1&lt;&lt;5);\n\n    while(1)\n    {\n        _REG(OUT_B) |= (1&lt;&lt;5);\n        for (k=0; k&lt;50000; k++);\n        _REG(OUT_B) &amp;= ~(1&lt;&lt;5);\n        for (k=0; k&lt;50000; k++);\n    } \n}<\/code><\/pre>\n<p><\/p>\n<p>Da bi ovaj kod trep\u0107e LED diodom na kineskoj plo\u010di s STM8 (iz ST Visual Desktop), dovoljno je promijeniti samo dvije adrese:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">#define DDR_B 0x5007\n#define OUT_B 0x5005<\/code><\/pre>\n<p><\/p>\n<p>Da, koristim posebnost povezivanja LED diode na odre\u0111enoj plo\u010di, treptat \u0107e vrlo sporo, ali ho\u0107e!<\/p>\n<p><\/p>\n<h2 id=\"kakie-byvayut-datashity\">Koje vrste datasheeta postoje<\/h2>\n<p><\/p>\n<p>U \u010dlanicama i na forumima, i na ruskom i na engleskom jeziku, pod \"datasheetovima\" podrazumijevaju se svi tehni\u010dki dokumenti za \u010dipove, a tako se pona\u0161am i u ovom tekstu. Formalno, oni su samo jedna vrsta takve dokumentacije:<\/p>\n<p><\/p>\n<p><strong>Datasheet<\/strong> \u2013 tehni\u010dki podaci, takti\u010dko-tehni\u010dke karakteristike. Obavezno prisutni kod svakog elektroni\u010dkog sastavnog dijela. Referentna informacija, korisno je imati pri ruci, ali nema mnogo smisla detaljno je \u010ditati. Ipak, jednostavniji \u010dipovi \u010desto se ograni\u010davaju na datasheet kako ne bi stvarali suvi\u0161ne dokumente; u tom slu\u010daju <em>Referentni priru\u010dnik<\/em> uklju\u010duje se ovdje.<\/p>\n<p><\/p>\n<p><strong>Referentni priru\u010dnik<\/strong> \u2013 sama instrukcija, op\u0161irna knjiga od 1000+ stranica. Detaljno obja\u0161njava rad svega \u0161to je ugra\u0111eno u \u010dip. Glavni dokument za u\u010denje mikro kontrolera. Za razliku od <em>datasheet<\/em>, instrukcije se pi\u0161u za \u0161iroku seriju MK, sadr\u017ee mnogo informacija o perifernim ure\u0111ajima koji nedostaju u va\u0161em konkretnom modelu.<\/p>\n<p><\/p>\n<p><strong>Programming Manual<\/strong> ili <strong>Priru\u010dnik za set instrukcija<\/strong> \u2013 upute za jedinstvene komande mikro kontrolera. Namijenjeno je onima koji programiraju u Assembleru. Autori kompajlera aktivno ga koriste za optimizaciju koda, stoga nam obi\u010dno ne\u0107e biti potrebna. Me\u0111utim, korisno je zaviriti ovdje za op\u0107e razumijevanje, posebno kod odre\u0111enih specifi\u010dnih komandi poput izlaza iz prekida, kao i pri aktivnoj upotrebi debagera.<\/p>\n<p><\/p>\n<p><strong>Bilje\u0161ka o aplikaciji<\/strong> \u2013 korisni savjeti za rje\u0161avanje specifi\u010dnih zadataka, \u010desto s primjerima koda.<\/p>\n<p><\/p>\n<p><strong>Ispravak lista<\/strong> \u2013 opis slu\u010dajeva nestandardnog pona\u0161anja \u010dipa s mogu\u0107im rje\u0161enjima, ako ih ima.<\/p>\n<p><\/p>\n<h2 id=\"chto-est-v-datashitah\">\u0160to je sve u datasheetovima<\/h2>\n<p><\/p>\n<p>Izravno u <em>Datasheet<\/em> mo\u017eemo zatrebati takve sekcije:<\/p>\n<p><\/p>\n<p><strong>Sa\u017eetak ure\u0111aja<\/strong> \u2013 prva stranica datasheeta ukratko govori o ure\u0111aju. Veoma je korisna u situacijama kada ste negdje prona\u0161li \u010dip (vidjeli u trgovini, izvadili iz ure\u0111aja, nai\u0161li na spominjanje) i \u017eelite razumjeti o \u010demu se radi.<\/p>\n<p><\/p>\n<p><strong>Op\u0161ti opis<\/strong> \u2013 detaljan opis mogu\u0107nosti \u010dipova iz serije.<\/p>\n<p><\/p>\n<p><strong>Priklju\u010dci<\/strong> \u2013 sheme priklju\u010daka za sve mogu\u0107e ku\u0107i\u0161te \u010dipa (na kojoj nozi se nalazi koji pin).<\/p>\n<p><\/p>\n<p><strong>Pin Description<\/strong> \u2013 opis svrhe i mogu\u0107nosti svakog pina.<\/p>\n<p><\/p>\n<p><strong>Memorijska mapa<\/strong> \u2013 mapa adresa u memoriji mo\u017eda nam ne\u0107e biti potrebna, ali ponekad uklju\u010duje i tabelu adresa registarskih blokova.<\/p>\n<p><\/p>\n<p><strong>Registri<\/strong> \u2013 tabela adresa registarskih blokova obi\u010dno se nalazi u tehni\u010dkoj dokumentaciji, a u <em>Uputstvu<\/em> \u2013 samo pomaci (<em>adrese pomaka<\/em>).<\/p>\n<p><\/p>\n<p><strong>Elektri\u010dne karakteristike<\/strong> \u2013 u ovom delu nas prvenstveno zanimaju <strong>maksimalnim ocjenama<\/strong>, koja navodi maksimalne optere\u0107enja na \u010dip. Za razliku od neuni\u0161tivog Atmega328p, ve\u0107ina mikrokontrolera ne dopu\u0161ta povezivanje ozbiljnih optere\u0107enja na pinove, \u0161to postaje neugodno iznena\u0111enje za Arduino entuzijaste.<\/p>\n<p><\/p>\n<p><strong>Informacije o paketu<\/strong> \u2013 crte\u017ei dostupnih ku\u0107i\u0161ta, korisni prilikom projektovanja vlastitih plo\u010da.<\/p>\n<p><\/p>\n<p><em>Referentni priru\u010dnik<\/em> strukturalno se sastoji od sekcija posve\u0107enih konkretnoj periferiji nazna\u010denoj u njihovim naslovima. Svako poglavlje mo\u017ee se uslovno podeliti na tri dela:<\/p>\n<p><\/p>\n<p><strong>Overview<\/strong>, <strong>Uvod<\/strong>, <strong>Karakteristike<\/strong> \u2013 pregled mogu\u0107nosti periferije;<\/p>\n<p><\/p>\n<p><strong>Funkcionalni opis<\/strong>, <strong>Vodi\u010d za upotrebu<\/strong> ili jednostavno glavni deo sekcije \u2013 detaljan tekstualni opis principa rada periferije i na\u010dina njene upotrebe;<\/p>\n<p><\/p>\n<p><strong>Registri<\/strong> \u2013 opis upravlja\u010dkih registara. U jednostavnim slu\u010dajevima kao \u0161to su GPIO ili SPI, to mo\u017ee biti sasvim dovoljno za po\u010detak kori\u0161\u0107enja periferije, ali \u010desto ipak treba pro\u010ditati i prethodne delove.<\/p>\n<p><\/p>\n<h2 id=\"kak-chitat-datashity\">Kako \u010ditati tehni\u010dke dokumente<\/h2>\n<p><\/p>\n<p>Tehni\u010dki dokumenti mogu zastra\u0161ivati svojim obimom i obiljem nepoznatih re\u010di. U stvarnosti nije tako stra\u0161no, ako znate nekoliko saveta.<\/p>\n<p><\/p>\n<p>Instalirajte <strong>dobru PDF \u010dita\u010d<\/strong>. Tehni\u010dki dokumenti se pi\u0161u u slavnim tradicijama papirnih uputstava, sjajno je \u0161tampati ih, obele\u017eiti plasti\u010dnim oznakama i povezati. Hipertekst u njima je prisutan u minimalnim koli\u010dinama. Na sre\u0107u, barem struktura dokumenta je prikazana oznakama, tako da je dobar \u010dita\u010d s lako dostupnom navigacijom veoma potreban.<\/p>\n<p><\/p>\n<p>Tehni\u010dki dokument nije knjiga Stroustrupa, u njemu <strong>ne treba \u010ditati sve redom<\/strong>. Ako ste iskoristili prethodni savet \u2013 jednostavno prona\u0111ite potrebnu sekciju u panelu oznaka.<\/p>\n<p><\/p>\n<p>Tehni\u010dki dokumenti, posebno <em>Reference Manual<\/em>, mogu opisivati mogu\u0107nosti ne konkretnog \u010dipa, ve\u0107 <strong>cela serija<\/strong>. To zna\u010di da polovina, a ponekad i dve tre\u0107ine informacija nemaju veze s va\u0161im \u010dipom. Pre nego \u0161to prou\u010dite registre TIM7, proverite u <em>Op\u0161ti opis<\/em>, imate li ga?<\/p>\n<p><\/p>\n<p>Zna\u0107 <strong>engleski<\/strong> dovoljno na <strong>osnovnoj razini<\/strong>. Tehni\u010dki opisi napola se sastoje od termina nepoznatih prosje\u010dnom govorniku jezika, a napola - od jednostavnih povezuju\u0107ih konstrukcija. Ponekad postoje divni kineski tehni\u010dki opisi na kineskom engleskom, gdje je polovica tako\u0111er izraza, a druga polovica - nasumi\u010dni skup rije\u010di.<\/p>\n<p><\/p>\n<p>Ako nai\u0111ete na <strong>nepoznatu rije\u010d<\/strong>, nemojte poku\u0161avati prevesti je pomo\u0107u englesko-ruskog rje\u010dnika. Ako vas zbunjuje <em>histerezis<\/em>, prijevod \u201ehistereza\u201d ne\u0107e vam ni\u0161ta pomo\u0107i. Koristite Google, Stack Overflow, Wikipediju, forume gdje \u0107e biti <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/5357918\/what-does-hysteresis-mean-and-how-does-it-apply-to-computer-science-or-programmi\">obja\u0161njeno jednostavnim rije\u010dima s primjerima<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Najbolji na\u010din da razumijete pro\u010ditano je <strong>provjeriti u praksi<\/strong>. Stoga, imajte pri ruci razvojnu plo\u010du koju istra\u017eujete, i jo\u0161 bolje dvije - u slu\u010daju da ne\u0161to ne razumijete i ugledate \u010darobni dim.<\/p>\n<p><\/p>\n<p>Prakti\u010dno je imati tehni\u010dki opis pri ruci kada <strong>pro\u010ditate ne\u010diji vodi\u010d<\/strong> ili istra\u017eujete tu\u0111u biblioteku. Sasvim je mogu\u0107e da \u0107ete u njemu prona\u0107i optimalnije rje\u0161enje za va\u0161 problem. I obrnuto - ako iz tehni\u010dkog opisa ne uspijevate shvatiti kako zapravo radi registrator, pretra\u017eite ga: vjerojatno je netko ve\u0107 sve opisao jednostavnim rije\u010dima ili ostavio razumljiv kod na GitHubu.<\/p>\n<p><\/p>\n<h2 id=\"slovarik\">Rje\u010dnik<\/h2>\n<p><\/p>\n<p>Malo korisnih rije\u010di i oznaka koje poma\u017eu br\u017eem snala\u017eenju u tehni\u010dkim opisima. Ono \u0161to sam se sjetio u posljednjih nekoliko dana, dodatke i ispravke su dobrodo\u0161li.<\/p>\n<p><\/p>\n<p><em>Elektricitet<\/em><br \/>\n<strong>Vcc<\/strong>, <strong>Vdd<\/strong> \u2013 \u201eplus\u201d, napajanje<br \/>\n<strong>Vss<\/strong>, <strong>Vee<\/strong> \u2013 \u201eminus\u201d, zemlja<br \/>\n<strong>current<\/strong> \u2013 struja<br \/>\n<strong>napon<\/strong> \u2013 napon<br \/>\n<strong>da povu\u010de struju<\/strong> \u2013 raditi \u201ezemljom\u201c za vanjsko optere\u0107enje<br \/>\n<strong>da napaja struju<\/strong> \u2013 napajati vanjsko optere\u0107enje<br \/>\n<strong>visoki sink\/source pin<\/strong> \u2013 pin s pove\u0107anom \u201etolerancijom\u201d na optere\u0107enje<\/p>\n<p><\/p>\n<p><em>IO<\/em><br \/>\n<strong>H, Visoko<\/strong> \u2013 na pinu Vcc<br \/>\n<strong>L, Nisko<\/strong> \u2013 na pinu Vss<br \/>\n<strong>Visoka impedancija<\/strong>, <strong>Hi-Z<\/strong>, <strong>floating<\/strong> \u2013 na pinu nema ni\u0161ta, \u201evisoka impedancija\u201d, zapravo je nevidljiv vanjskom svijetu.<br \/>\n<strong>slaba povratna<\/strong>, <strong>slaba povratna<\/strong> \u2013 ugra\u0111eni povla\u010de\u0107i\/potiskuju\u0107i otpornik, pribli\u017eno ekvivalent 50 k\u03a9 (vidi tehni\u010dki opis). Koristi se, na primjer, da ulazni pin ne visi u zraku, uzrokuju\u0107i la\u017ene okidanje. <em>Slaba<\/em> \u2013 jer je lako \u201enadja\u010dati\u201d.<br \/>\n<strong>push pull<\/strong> \u2013 izlazni na\u010din rada pina, u kojem se prebacuje izme\u0111u <em>Visoko<\/em> i <em>Nisko<\/em> \u2013 obi\u010dni OUTPUT s Arduinom.<br \/>\n<strong>open drain<\/strong> \u2013 oznaka izlaznog na\u010dina rada, u kojem pin mo\u017ee biti ili <em>Nisko<\/em>, ili <em>Visoka impedancija \/ Floating<\/em>. U ve\u0107ini slu\u010dajeva to nije \u201epravi\u201c otvoreni odvod, postoje za\u0161titne diodne, otpornici i sve ostalo. To je samo oznaka na\u010dina rada zemlja\/nothing.<br \/>\n<strong>pravi otvoreni odvod<\/strong> \u2013 a ovo je pravi otvoreni odvod: pin se direktno povezuje na zemlju kada je otvoren, ili ostaje u suspendovanom stanju kada je zatvoren. To zna\u010di da se kroz njega mo\u017ee propu\u0161tati naponski nivo ve\u0107i od Vcc, ali maksimum je i dalje naveden u specifikaciji u odeljku <em>Apsolutna maksimalna naponska ograni\u010denja<\/em>. <\/p>\n<p><\/p>\n<p><em>Su\u010delja<\/em><br \/>\n<strong>u seriji<\/strong> \u2013 povezani u seriji<br \/>\n<strong>u lanac<\/strong> \u2013 povezati \u010dipove u lanac serijskim povezivanjem, pove\u0107avaju\u0107i broj izlaza.<br \/>\n<strong>pomak<\/strong> \u2013 pomeranje, obi\u010dno ozna\u010dava pomeranje bitova. Shodno tome, <strong>za pomeranje unutra<\/strong> i <strong>za pomeranje napolje<\/strong> \u2013 prihvatiti i prenositi podatke po bitovima.<br \/>\n<strong>zavjesa<\/strong> \u2013 klapna, koja pokriva bafer dok se bitovi pomeraju kroz njega. Kada je prenos zavr\u0161en, klapna se otvara, bitovi po\u010dinju sa radom.<br \/>\n<strong>za klokan u<\/strong> \u2013 izvr\u0161iti prenos po bitovima, pomeriti sve bitove na potrebna mesta.<br \/>\n<strong>dupli bafer<\/strong>, <strong>senka registrova<\/strong>, <strong>prelazni registar<\/strong> \u2013 oznake istorije, kada registar treba da mo\u017ee primati nove podatke, ali ih zadr\u017eava do nekog trenutka. Na primer, za pravilno funkcionisanje PWM-a njegove karakteristike (du\u017eina, frekvencija) ne bi trebale da se menjaju dok se ne zavr\u0161i trenutni ciklus, ali novi parametri mogu ve\u0107 biti preneseni. Tako da se trenutni dr\u017ee u <em>senka registrova<\/em>, a novi idu u <em>prelazni registar<\/em>, budu\u0107i da su zapisani u odgovaraju\u0107i registar \u010dipa.<\/p>\n<p><\/p>\n<p><em>Razno<\/em><br \/>\n<strong>preddelitelj frekvencije<\/strong> \u2013 postaviti bit<br \/>\n<strong>\u2013 postaviti bit na 1<\/strong> za \u010di\u0161\u0107enje\/resetovanje bita<br \/>\n<strong>\u2013 resetovati bit na 0 (<\/strong> resetovati<em>\u2013 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03c4\u03bf\u03c5 STM datasheets)<\/em> Uop\u0161te, planirana je prakti\u010dna sesija s demonstracijom tri projekta na STM32 i STM8, ura\u0111ena posebno za ovaj \u010dlanak uz pomo\u0107 specifikacija, sa lampama, SPI, tajmerima, PWM-om i prekidima:<\/p>\n<p><\/p>\n<h3 id=\"chto-dalshe\">\u0160to dalje<\/h3>\n<p><\/p>\n<p>Ali tekst je postao predug, tako da projekti idu u drugi deo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kako i za\u0161to \u010ditati datasheet-ove ako su mikrocontroleri va\u0161 hobi\" src=\"\/wp-content\/uploads\/2019\/04\/8929bad65dad7473a81a221281c43557.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ve\u0161tina \u010ditanja specifikacija pomo\u0107i \u0107e vam u va\u0161em hobiju, ali malo verovatno da \u0107e zameniti li\u010dnu komunikaciju sa kolegama sa sli\u010dnim interesovanjima na forumima i u \u010datovima. Zbog toga je prvo potrebno unaprediti engleski jezik. Stoga, onima koji su do\u0161li do kraja \u2013 posebno nagradno: dva besplatna \u010dasa u Skyeng-u uz prvu uplatu uz kod<\/p>\n<p><\/p>\n<p>HABR2 <code>Mikroelektronika.<\/code>.<\/p>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/449624\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430 \u2013 \u043c\u043e\u0434\u043d\u043e\u0435 \u0443\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043b\u0435\u0442 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u043c\u0443 Arduino. \u041d\u043e \u0432\u043e\u0442 \u0431\u0435\u0434\u0430: \u043f\u0440\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0442\u0438 DigitalWrite() \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e, \u0430 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u2013 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u044f\u0441\u043d\u043e. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Arduino \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u0435\u043c\u0430\u043b\u043e \u0443\u0441\u0438\u043b\u0438\u0439 \u0434\u043b\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0433\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u044e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043d\u043e \u0437\u0430 \u0435\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u043b\u044b\u0448\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u043d\u044b\u0439 \u043b\u0435\u0441 \u0441\u0443\u0440\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0438, \u043c\u0430\u043b\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u044b. \u0412\u0440\u043e\u0434\u0435 \u0431\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-32463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u044b, \u0435\u0441\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u2013 \u0432\u0430\u0448\u0435 \u0445\u043e\u0431\u0431\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:47:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kako i za\u0161to \u010ditati datasheetove, ako su mikrokontroleri va\u0161e hobi | ProHoster","description":"\ud83e\udd47 Kako i za\u0161to \u010ditati specifikacije ako su mikrokontroleri va\u0161e zanimanje | ProHoster","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u044b, \u0435\u0441\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u2013 \u0432\u0430\u0448\u0435 \u0445\u043e\u0431\u0431\u0438 | ProHoster","og:description":"\u041c\u0438\u043a\u0440\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430.","og:url":"https:\/\/prohoster.info\/hr\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:47:12+00:00","article:modified_time":"2019-10-31T18:47:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32463","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 11:00:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:58:24","updated":"2026-01-21 11:00:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/32463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=32463"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/32463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/24267"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=32463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=32463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=32463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}