{"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\/cs\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","title":{"rendered":"Jak a pro\u010d \u010d\u00edst datasheety, pokud jsou mikro\u0159adi\u010de va\u0161\u00edm kon\u00ed\u010dkem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jak a pro\u010d \u010d\u00edst datasheety, pokud jsou mikro\u0159adi\u010de va\u0161\u00edm kon\u00ed\u010dkem\" src=\"\/wp-content\/uploads\/2019\/04\/ae2537b0263d692c4f79e7b5f7bc0797.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mikroelektronika se stala m\u00f3dn\u00edm kon\u00ed\u010dkem posledn\u00edch let d\u00edky kouzeln\u00e9mu Arduinu. Ale ouha: p\u0159i dostate\u010dn\u00e9m z\u00e1jmu se DigitalWrite() rychle p\u0159ekon\u00e1 a co d\u00e1l \u2013 to u\u017e nen\u00ed \u00fapln\u011b jasn\u00e9. V\u00fdvoj\u00e1\u0159i Arduina vynalo\u017eili zna\u010dn\u00e9 \u00fasil\u00ed na sn\u00ed\u017een\u00ed prahu vstupu do sv\u00e9ho ekosyst\u00e9mu, ale za jeho hranicemi se st\u00e1le rozkl\u00e1d\u00e1 temn\u00fd les drsn\u00e9 elektroniky, kter\u00fd je pro nad\u0161ence t\u011b\u017eko p\u0159\u00edstupn\u00fd.<\/p>\n<p><\/p>\n<p>Nap\u0159\u00edklad datasheety. P\u0159ipad\u00e1 to, \u017ee v nich je v\u0161echno, co pot\u0159ebujete \u2013 sta\u010d\u00ed vz\u00edt a pou\u017e\u00edvat. Ale jejich auto\u0159i se nezdaj\u00ed, \u017ee by si kladli za c\u00edl popularizovat mikro\u0159adi\u010de; n\u011bkdy <em>to vypad\u00e1<\/em>, \u017ee \u00famysln\u011b zneu\u017e\u00edvaj\u00ed nejasn\u00e9 term\u00edny a zkratky p\u0159i popisu jednoduch\u00fdch v\u011bc\u00ed, aby maxim\u00e1ln\u011b zm\u00e1tli nev\u011bdom\u00e9ho. Ale nen\u00ed to tak zl\u00e9, s trochou snahy se lar\u010d\u00edk otev\u0159e.<\/p>\n<p><\/p>\n<p>V tomto \u010dl\u00e1nku se pod\u011bl\u00edm o zku\u0161enosti \u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u044f s datasheety pro hobby \u00fa\u010dely. Text je ur\u010den pro ty, kte\u0159\u00ed vyrostli z leg\u00edn Arduina, a p\u0159edpokl\u00e1d\u00e1 ur\u010dit\u00e9 znalosti o principu fungov\u00e1n\u00ed mikro\u0159adi\u010d\u016f.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Za\u010dnu s tradi\u010dn\u00edm<\/p>\n<p><\/p>\n<h3 id=\"migaem-svetodiodom-na-arduino\">Blik\u00e1n\u00ed LED diodou na Arduinu<\/h3>\n<p><\/p>\n<p>A hned k\u00f3d:<\/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>\u201eCo to je? \u2013 zept\u00e1 se zku\u0161en\u00fd \u010dten\u00e1\u0159. \u2013 Pro\u010d n\u011bco p\u00ed\u0161e\u0161 do vstupn\u00edho registru PINB? V\u017edy\u0165 je to jen pro \u010dten\u00ed!\u201c Opr\u00e1vn\u011bn\u011b, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arduino.cc\/en\/Reference\/PortManipulation\">dokumentace Arduina<\/a><\/noindex>, jako v\u011bt\u0161ina vzd\u011bl\u00e1vac\u00edch \u010dl\u00e1nk\u016f na internetu, tvrd\u00ed, \u017ee tento registr je pouze pro \u010dten\u00ed. I j\u00e1 jsem si to myslel, dokud jsem znovu nep\u0159e\u010detl <noindex><a rel=\"nofollow\" href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf\">datov\u00fd list<\/a><\/noindex> datasheet k Atmega328p, abych p\u0159ipravil tento \u010dl\u00e1nek. A tam:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Jak a pro\u010d \u010d\u00edst datasheety, pokud jsou mikro\u0159adi\u010de va\u0161\u00edm kon\u00ed\u010dkem\" src=\"\/wp-content\/uploads\/2019\/04\/4c754bda59d9f18a38209cc32f0fb3a3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To je relativn\u011b nov\u00e1 funkce, na Atmega8 nebyla a ne v\u0161ichni o n\u00ed v\u00ed nebo ji nezmi\u0148uj\u00ed z hlediska zp\u011btn\u00e9 kompatibility. Ale je to docela dobr\u00e9 pro p\u0159edveden\u00ed my\u0161lenky, \u017ee datasheety je t\u0159eba \u010d\u00edst, abyste vyu\u017eili v\u0161echny mo\u017enosti \u010dipu, v\u010detn\u011b m\u00e9n\u011b zn\u00e1m\u00fdch. A to nen\u00ed jedin\u00fd d\u016fvod.<\/p>\n<p><\/p>\n<h2 id=\"zachem-esche-chitat-datashity\">Pro\u010d je\u0161t\u011b \u010d\u00edst datasheety<\/h2>\n<p><\/p>\n<p>Obvykle se nad\u0161enci do Arduina, pot\u00e9 co si dostate\u010dn\u011b vyhraj\u00ed se sv\u011btly a funkcemi AnalogWrite, za\u010dnou p\u0159ipojovat k desce nejr\u016fzn\u011bj\u0161\u00ed moduly a \u010dipy, pro kter\u00e9 u\u017e existuj\u00ed napsan\u00e9 knihovny. D\u0159\u00edve nebo pozd\u011bji v\u0161ak naraz\u00ed na knihovnu, kter\u00e1 nefunguje tak, jak by m\u011bla. Tehdy se nad\u0161enec pust\u00ed do jej\u00edho vylep\u0161ov\u00e1n\u00ed a tam...<\/p>\n<p><\/p>\n<p>Tam se d\u011bje n\u011bco naprosto nepochopiteln\u00e9ho, a proto mus\u00edm vyrazit na Google, \u010d\u00edst nespo\u010det tutori\u00e1l\u016f, stahovat kousky n\u011b\u010d\u00edho u\u017eite\u010dn\u00e9ho k\u00f3du a nakonec si vybojovat sv\u00e9. To d\u00e1v\u00e1 siln\u00fd pocit \u00fasp\u011bchu, ale ve skute\u010dnosti proces p\u0159ipom\u00edn\u00e1 vynal\u00e9z\u00e1n\u00ed kola pomoc\u00ed reverzn\u00edho in\u017een\u00fdrstv\u00ed motocyklu. A pochopen\u00ed, jak toto kolo funguje, se nijak nezlep\u0161uje. V\u00edm to, proto\u017ee jsem se t\u00edm zab\u00fdval docela dlouho.<\/p>\n<p><\/p>\n<p>Kdybych m\u00edsto tohoto vzru\u0161uj\u00edc\u00edho kon\u00ed\u010dka str\u00e1vil p\u00e1r dn\u00ed studiem dokumentace k Atmega328, u\u0161et\u0159il bych obrovsk\u00e9 mno\u017estv\u00ed \u010dasu. Nakonec je to docela jednoduch\u00fd mikro\u0159adi\u010d.<\/p>\n<p><\/p>\n<p>T\u00edm p\u00e1dem je nutn\u00e9 \u010d\u00edst datasheety alespo\u0148 proto, abychom m\u011bli p\u0159edstavu o tom, jak mikro\u0159adi\u010d vlastn\u011b funguje a co v\u0161echno um\u00ed. A je\u0161t\u011b:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>abychom mohli kontrolovat a optimalizovat ciz\u00ed knihovny. \u010casto je p\u00ed\u0161\u00ed stejn\u00ed nad\u0161enci, kte\u0159\u00ed vynal\u00e9zaj\u00ed kolo; nebo naopak, auto\u0159i z\u00e1m\u011brn\u011b d\u011blaj\u00ed slo\u017eitou ochranu proti hloup\u00fdm chyb\u00e1m. A\u0165 u\u017e je to t\u0159ikr\u00e1t v\u011bt\u0161\u00ed a pomalej\u0161\u00ed, hlavn\u011b, \u017ee to ur\u010dit\u011b funguje;<\/p>\n<p>\n<\/li>\n<li>\n<p>abychom mohli pou\u017e\u00edt v projektu \u010dipy, pro kter\u00e9 nikdo nenapsal knihovnu;<\/p>\n<p>\n<\/li>\n<li>\n<p>abychom si usnadnili \u00fakol p\u0159echodu z jedn\u00e9 \u0159ady mikro\u0159adi\u010d\u016f na jinou;<\/p>\n<p>\n<\/li>\n<li>\n<p>abychom nakonec optimalizovali sv\u016fj star\u00fd k\u00f3d, kter\u00fd se nikam do Arduina neve\u0161el;<\/p>\n<p>\n<\/li>\n<li>\n<p>abychom se nau\u010dili \u0159\u00eddit jak\u00fdkoli \u010dip p\u0159\u00edmo pomoc\u00ed jeho registr\u016f, ani\u017e bychom museli studovat strukturu jeho knihoven, pokud v\u016fbec n\u011bjak\u00e9 jsou.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"zachem-pisat-v-registry-napryamuyu-kogda-est-hal-i-ll\">Pro\u010d ps\u00e1t do registr\u016f p\u0159\u00edmo, kdy\u017e existuje HAL a LL?<\/h2>\n<p><\/p>\n<p><em>Slovn\u00ed\u010dek<\/em><br \/>\n<em><strong>HAL, High Abstraction Layer<\/strong> \u2013 knihovna pro \u0159\u00edzen\u00ed mikro\u0159adi\u010de s vysokou \u00farovn\u00ed abstrahce. Pokud je pot\u0159eba pou\u017e\u00edt rozhran\u00ed SPI1, sta\u010d\u00ed nastavit a zapnout SPI1, ani\u017e bychom se zam\u00fd\u0161leli, kter\u00e9 registry za co odpov\u00eddaj\u00ed.<br \/>\n<strong>LL, Low Level API<\/strong> \u2013 knihovna, kter\u00e1 obsahuje makra nebo struktury s adresami registr\u016f, umo\u017e\u0148uj\u00edc\u00ed p\u0159\u00edstup k nim podle n\u00e1zvu. DDRx, PORTx, PINx na Atmeze \u2013 to je LL.<\/em><\/p>\n<p><\/p>\n<p>Diskuse na t\u00e9ma \u201eHAL, LL nebo registry\u201c se pravideln\u011b objevuj\u00ed v koment\u00e1\u0159\u00edch na Habru. Nechci si n\u00e1rokovat p\u0159\u00edstup k astr\u00e1ln\u00edmu v\u011bd\u011bn\u00ed, jen se pod\u011bl\u00edm o sv\u00e9 amat\u00e9rsk\u00e9 zku\u0161enosti a \u00favahy.<\/p>\n<p><\/p>\n<p>Pot\u00e9, co jsem se v\u00edce-m\u00e9n\u011b sezn\u00e1mil s Atmegou a p\u0159e\u010detl si \u010dl\u00e1nky o v\u00fdhod\u00e1ch STM32, jsem si koupil p\u016fl tuctu r\u016fzn\u00fdch desek \u2013 jak Discovery, tak \"Modr\u00e9 tabletky\", a dokonce i jednodu\u0161e \u010dipy pro sv\u00e9 vlastn\u00ed projekty. V\u0161echny tyto desky se dva roky pr\u00e1\u0161ily v krabici. N\u011bkdy jsem si \u0159\u00edkal: \u201eTak a te\u010f za\u010dnu s STM,\u201c spustil jsem CubeMX, generoval nastaven\u00ed pro SPI, pod\u00edval se na tu hromadu textu, bohat\u011b oko\u0159en\u011bnou copyrighty STM, a usoudil, \u017ee to je n\u011bjak p\u0159\u00edli\u0161.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Jak a pro\u010d \u010d\u00edst datasheety, pokud jsou mikro\u0159adi\u010de va\u0161\u00edm kon\u00ed\u010dkem\" src=\"\/wp-content\/uploads\/2019\/04\/d83be97ba2767121f4be20d524000afe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Rozum\u011bt tomu, co CubeMX napsal, je sice mo\u017en\u00e9. Ale z\u00e1rove\u0148 je jasn\u00e9, \u017ee zapamatovat si v\u0161echny formulace, abych je pak mohl ps\u00e1t rukama, je nerealistick\u00e9. A debuggovat to, pokud omylem zapomenu v Cube n\u011bco za\u0161krtnout, je \u00fapln\u011b jin\u00e1 poh\u00e1dka.<\/p>\n<p><\/p>\n<p>Uplynuly dva roky a j\u00e1 se st\u00e1le d\u00edv\u00e1m na <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=fr.appsolute.st&amp;hl=ru\">ST MCU Finder<\/a><\/noindex> na r\u016fzn\u00e9 l\u00e1kav\u00e9, ale pro m\u011b nedostupn\u00e9 \u010dipy a n\u00e1hodn\u011b jsem narazil na <noindex><a rel=\"nofollow\" href=\"https:\/\/lujji.github.io\/blog\/bare-metal-programming-stm8\/\">skv\u011bl\u00fd \u010dl\u00e1nek<\/a><\/noindex>, i kdy\u017e o STM8. A <em>n\u00e1hle<\/em> pochopil jsem, \u017ee celou dobu jsem klepal na otev\u0159en\u00e9 dve\u0159e: registry u STM jsou uspo\u0159\u00e1d\u00e1ny stejn\u011b jako u jak\u00e9hokoli jin\u00e9ho MCU, a pro pr\u00e1ci s nimi nen\u00ed Cube nezbytn\u00fd. <em>Co\u017ee, to \u0161lo? ..<\/em><\/p>\n<p><\/p>\n<p>HAL a konkr\u00e9tn\u011b STM32CubeMX jsou n\u00e1stroj pro profesion\u00e1ln\u00ed in\u017een\u00fdry, kte\u0159\u00ed \u00fazce spolupracuj\u00ed s \u010dipy STM32. Hlavn\u00ed v\u00fdhodou je vysok\u00e1 \u00farove\u0148 abstrakce, mo\u017enost rychl\u00e9 migrace z jednoho MCU na jin\u00fd a dokonce i mezi r\u016fzn\u00fdmi j\u00e1dry, z\u016fst\u00e1vaj\u00edc v r\u00e1mci \u0159ady STM32. Hobbist\u00e9 se s takov\u00fdmi \u00fakoly setk\u00e1vaj\u00ed z\u0159\u00eddka \u2013 n\u00e1\u0161 v\u00fdb\u011br MCU je obvykle omezen sortimentem z AliExpress, a \u010dast\u011bji migrujeme mezi radik\u00e1ln\u011b odli\u0161n\u00fdmi \u010dipy \u2013 p\u0159ech\u00e1z\u00edme z Atmegy na STM, ze STM na ESP, nebo co n\u00e1m nov\u00e9ho naserv\u00edruj\u00ed na\u0161i \u010d\u00edn\u0161t\u00ed p\u0159\u00e1tel\u00e9. HAL zde nepom\u016f\u017ee, a \u010das na jeho studium zabere hodn\u011b.<\/p>\n<p><\/p>\n<p>Z\u016fst\u00e1v\u00e1 LL \u2013 ale od n\u011bj k registr\u016fm je to kousek. Osobn\u011b mi p\u0159\u00edprava vlastn\u00edch maker s adresami registr\u016f p\u0159ipad\u00e1 u\u017eite\u010dn\u00e1: pozorn\u011bji studuji datasheet, p\u0159em\u00fd\u0161l\u00edm, co budu pot\u0159ebovat v budoucnu, a co ur\u010dit\u011b ne, l\u00e9pe strukturuji sv\u00e9 programy, no a p\u0159ekon\u00e1v\u00e1n\u00ed p\u0159ek\u00e1\u017eek p\u0159isp\u00edv\u00e1 k zapamatov\u00e1n\u00ed.<\/p>\n<p><\/p>\n<p>Krom\u011b toho existuje nuance s popul\u00e1rn\u00edm STM32F103 \u2013 pro n\u011bj existuj\u00ed dv\u011b nekompatibiln\u00ed verze LL, jedna ofici\u00e1ln\u00ed od STM, druh\u00e1 \u2013 od Leaf Labs, kter\u00e1 se pou\u017e\u00edv\u00e1 v projektu STM32duino. Pokud p\u00ed\u0161u open-source knihovnu (a p\u0159esn\u011b takov\u00fd byl <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Ontaelio\/DMdriverSTM32F1\">\u00fakol<\/a><\/noindex>), je t\u0159eba bu\u010f vytvo\u0159it dv\u011b verze, nebo se obr\u00e1tit p\u0159\u00edmo na registry.<\/p>\n<p><\/p>\n<p>Nakonec, podle m\u00e9ho n\u00e1zoru, zru\u0161en\u00ed LL usnad\u0148uje migraci, zejm\u00e9na pokud na ni p\u0159istoup\u00edte hned od za\u010d\u00e1tku pr\u00e1ce na projektu. Extr\u00e9mn\u00ed p\u0159\u00edklad: nap\u00ed\u0161eme Arduino blink v Atmel Studiu 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>Aby tento k\u00f3d rozblik\u00e1val LED na \u010d\u00ednsk\u00e9 desce s STM8 (ze ST Visual Desktop), sta\u010d\u00ed zm\u011bnit dv\u011b adresy:<\/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>Ano, pou\u017e\u00edv\u00e1m specifickou funkci p\u0159ipojen\u00ed LED na konkr\u00e9tn\u00ed desce, bude blikat velmi pomalu, ale bude to!<\/p>\n<p><\/p>\n<h2 id=\"kakie-byvayut-datashity\">Jak\u00e9 jsou datov\u00e9 listy<\/h2>\n<p><\/p>\n<p>V \u010dl\u00e1nc\u00edch a na f\u00f3rech, jak rusky, tak anglicky, se pod \"datov\u00fdmi listy\" rozum\u00ed jak\u00e1koli technick\u00e1 dokumentace k \u010dip\u016fm, a j\u00e1 to takto ch\u00e1pu i v tomto textu. Form\u00e1ln\u011b jsou to pouze jeden typ takov\u00e9 dokumentace:<\/p>\n<p><\/p>\n<p><strong>Datasheet<\/strong> \u2013 TTD, takticko-technick\u00e9 \u00fadaje. Mus\u00ed b\u00fdt k dispozici pro jakoukoli elektronickou sou\u010d\u00e1stku. Referen\u010dn\u00ed informace, je u\u017eite\u010dn\u00e9 m\u00edt je po ruce, ale p\u0159\u00edli\u0161 se nad nimi zam\u00fd\u0161let nen\u00ed t\u0159eba. Nicm\u00e9n\u011b, jednodu\u0161\u0161\u00ed \u010dipy \u010dasto z\u016fst\u00e1vaj\u00ed pouze u datov\u00e9ho listu, aby se nevytv\u00e1\u0159ely zbyte\u010dn\u00e9 dokumenty; v tomto p\u0159\u00edpad\u011b <em>Reference Manual<\/em> se zapo\u010d\u00edt\u00e1v\u00e1 sem.<\/p>\n<p><\/p>\n<p><strong>Reference Manual<\/strong> \u2013 samotn\u00fd n\u00e1vod, rozs\u00e1hl\u00e1 kniha o v\u00edce ne\u017e 1000 str\u00e1nk\u00e1ch. Podrobn\u011b popisuje fungov\u00e1n\u00ed v\u0161eho, co je v \u010dipu. Hlavn\u00ed dokument pro osvojen\u00ed mikrokontrol\u00e9ru. Na rozd\u00edl od <em>datasheet<\/em>, instrukce jsou ps\u00e1ny pro \u0161irokou \u0159adu M\u010c, obsahuj\u00ed mnoho informac\u00ed o periferii, kter\u00e1 m\u016f\u017ee chyb\u011bt ve va\u0161\u00ed konkr\u00e9tn\u00ed verzi.<\/p>\n<p><\/p>\n<p><strong>Programming Manual<\/strong> nebo <strong>Instruction Set Manual<\/strong> \u2013 p\u0159\u00edru\u010dka k unik\u00e1tn\u00edm p\u0159\u00edkaz\u016fm mikrokontrol\u00e9ru. Ur\u010deno pro ty, kte\u0159\u00ed programuj\u00ed v assembleru. Auto\u0159i kompil\u00e1tor\u016f ji aktivn\u011b pou\u017e\u00edvaj\u00ed k optimalizaci k\u00f3du, tak\u017ee obvykle ji nebudeme pot\u0159ebovat. Nicm\u00e9n\u011b, je u\u017eite\u010dn\u00e9 nahl\u00e9dnout sem pro obecn\u00e9 porozum\u011bn\u00ed, zejm\u00e9na pro n\u011bkter\u00e9 specifick\u00e9 p\u0159\u00edkazy, jako je v\u00fdstup z p\u0159eru\u0161en\u00ed, a tak\u00e9 p\u0159i aktivn\u00edm pou\u017eit\u00ed debugggera.<\/p>\n<p><\/p>\n<p><strong>Application Note<\/strong> \u2013 u\u017eite\u010dn\u00e9 tipy na \u0159e\u0161en\u00ed konkr\u00e9tn\u00edch \u00faloh, \u010dasto s p\u0159\u00edklady k\u00f3du.<\/p>\n<p><\/p>\n<p><strong>Errata Sheet<\/strong> \u2013 popis p\u0159\u00edpad\u016f nestandardn\u00edho chov\u00e1n\u00ed \u010dipu s mo\u017enostmi obch\u00e1zen\u00ed, pokud existuj\u00ed.<\/p>\n<p><\/p>\n<h2 id=\"chto-est-v-datashitah\">Co se nach\u00e1z\u00ed v datov\u00fdch listech<\/h2>\n<p><\/p>\n<p>P\u0159\u00edmo v <em>Datasheet<\/em> budeme pot\u0159ebovat takov\u00e9 sekce:<\/p>\n<p><\/p>\n<p><strong>Device Summary<\/strong> \u2013 prvn\u00ed str\u00e1nka datov\u00e9ho listu stru\u010dn\u011b informuje o za\u0159\u00edzen\u00ed. Velmi u\u017eite\u010dn\u00e9 v situac\u00edch, kdy jste n\u011bkde na\u0161li \u010dip (vid\u011bli v obchod\u011b, odstranili sou\u010d\u00e1stku, narazili na zm\u00ednku) a chcete pochopit, co to je.<\/p>\n<p><\/p>\n<p><strong>General Description<\/strong> \u2013 podrobn\u011bj\u0161\u00ed popis funkc\u00ed \u010dip\u016f z \u0159ady.<\/p>\n<p><\/p>\n<p><strong>Pinouts<\/strong> \u2013 sch\u00e9mata pinout pro v\u0161echny mo\u017en\u00e9 pouzdra \u010dipu (kter\u00fd pin je na kter\u00e9 noze).<\/p>\n<p><\/p>\n<p><strong>Popis pin\u016f<\/strong> \u2013 popis \u00fa\u010delu a funkc\u00ed ka\u017ed\u00e9ho pinu.<\/p>\n<p><\/p>\n<p><strong>Pam\u011b\u0165ov\u00e1 mapa<\/strong> \u2013 mapa adres v pam\u011bti pravd\u011bpodobn\u011b nebude pot\u0159eba, ale n\u011bkdy obsahuje tak\u00e9 tabulku adres blok\u016f registr\u016f.<\/p>\n<p><\/p>\n<p><strong>Mapa registr\u016f<\/strong> \u2013 tabulka adres blok\u016f registr\u016f se obvykle nach\u00e1z\u00ed pr\u00e1v\u011b v datov\u00e9m listu, a v <em>Ref Manual<\/em> \u2013 pouze posuny (<em>adresov\u00e9 offsety<\/em>).<\/p>\n<p><\/p>\n<p><strong>Elektrick\u00e9 vlastnosti<\/strong> \u2013 v t\u00e9to sekci n\u00e1s p\u0159edev\u0161\u00edm zaj\u00edmaj\u00ed <strong>absolutn\u00ed maxim\u00e1ln\u00ed zat\u00ed\u017een\u00ed<\/strong>, vyjmenov\u00e1vaj\u00edc\u00ed maxim\u00e1ln\u00ed zat\u00ed\u017een\u00ed \u010dipu. Na rozd\u00edl od nezni\u010diteln\u00e9 Atmega328p v\u011bt\u0161ina mikro\u0159adi\u010d\u016f nedovoluje p\u0159ipojovat k pin\u016fm v\u00e1\u017en\u00e1 zat\u00ed\u017een\u00ed, co\u017e se st\u00e1v\u00e1 nep\u0159\u00edjemn\u00fdm p\u0159ekvapen\u00edm pro arduino nad\u0161ence.<\/p>\n<p><\/p>\n<p><strong>Informace o balen\u00ed<\/strong> \u2013 n\u00e1kresy dostupn\u00fdch pouzder, u\u017eite\u010dn\u00e9 p\u0159i navrhov\u00e1n\u00ed vlastn\u00edch desek.<\/p>\n<p><\/p>\n<p><em>Reference Manual<\/em> struktura se skl\u00e1d\u00e1 z odd\u00edl\u016f, v\u011bnovan\u00fdch konkr\u00e9tn\u00ed periferii uveden\u00e9 v jejich nadpisech. Ka\u017edou kapitolu lze podm\u00edn\u011bn\u011b rozd\u011blit na t\u0159i \u010d\u00e1sti:<\/p>\n<p><\/p>\n<p><strong>P\u0159ehled<\/strong>, <strong>\u00davod<\/strong>, <strong>Vlastnosti<\/strong> \u2013 p\u0159ehled vlastnost\u00ed periferie;<\/p>\n<p><\/p>\n<p><strong>Funk\u010dn\u00ed popis<\/strong>, <strong>N\u00e1vod k pou\u017eit\u00ed<\/strong> nebo jednodu\u0161e hlavn\u00ed blok sekce \u2013 podrobn\u00fd textov\u00fd popis fungov\u00e1n\u00ed periferie a zp\u016fsob\u016f jej\u00edho pou\u017eit\u00ed;<\/p>\n<p><\/p>\n<p><strong>Registry<\/strong> \u2013 popis ovl\u00e1dac\u00edch registr\u016f. V jednoduch\u00fdch p\u0159\u00edpadech, jako jsou GPIO nebo SPI, to m\u016f\u017ee b\u00fdt zcela dostate\u010dn\u00e9 pro za\u010d\u00e1tek pou\u017e\u00edv\u00e1n\u00ed periferie, ale \u010dasto je t\u0159eba \u010d\u00edst i p\u0159edchoz\u00ed \u010d\u00e1sti.<\/p>\n<p><\/p>\n<h2 id=\"kak-chitat-datashity\">Jak \u010d\u00edst datov\u00e9 listy<\/h2>\n<p><\/p>\n<p>Datov\u00e9 listy mohou zprvu odradit sv\u00fdm objemem a mno\u017estv\u00edm nejasn\u00fdch slov. Ve skute\u010dnosti to nen\u00ed tak hrozn\u00e9, pokud zn\u00e1te p\u00e1r trik\u016f.<\/p>\n<p><\/p>\n<p>Nainstalujte <strong>dobr\u00fd PDF \u010dte\u010dka<\/strong>. Datov\u00e9 listy se p\u00ed\u0161\u00ed v kr\u00e1sn\u00fdch tradic\u00edch pap\u00edrov\u00fdch instrukc\u00ed, je skv\u011bl\u00e9 je vytisknout, vlo\u017eit do plastov\u00fdch z\u00e1lo\u017eek a se\u0161\u00edt. Hypertext v nich prakticky nenajdete. Na\u0161t\u011bst\u00ed alespo\u0148 struktura dokumentu je provedena pomoc\u00ed z\u00e1lo\u017eek, tak\u017ee dobr\u00e1 \u010dte\u010dka s pohodlnou navigac\u00ed je velmi u\u017eite\u010dn\u00e1.<\/p>\n<p><\/p>\n<p>Datov\u00fd list nen\u00ed u\u010debnice Stroustrupa, v n\u011bm <strong>nen\u00ed t\u0159eba \u010d\u00edst v\u0161echno<\/strong>. Pokud jste vyu\u017eili p\u0159edchoz\u00ed radu \u2013 jednodu\u0161e najd\u011bte v panelu z\u00e1lo\u017eek po\u017eadovanou sekci.<\/p>\n<p><\/p>\n<p>Datov\u00e9 listy, zejm\u00e9na <em>Reference Manuals<\/em>, mohou popisovat mo\u017enosti nejen konkr\u00e9tn\u00edho \u010dipu, ale <strong>cel\u00e9 \u0159ady<\/strong>To znamen\u00e1, \u017ee polovina, ne-li dv\u011b t\u0159etiny informac\u00ed, nemaj\u00ed \u017e\u00e1dn\u00fd vztah k va\u0161emu \u010dipu. P\u0159edt\u00edm, ne\u017e za\u010dnete zkoumat registry TIM7, zkontrolujte, <em>General Description<\/em>zda ho m\u00e1te.<\/p>\n<p><\/p>\n<p>Znalost <strong>angli\u010dtiny<\/strong> je dostate\u010dn\u00e1 na <strong>z\u00e1kladn\u00ed \u00farovni.<\/strong>Datasheety se skl\u00e1daj\u00ed z poloviny z term\u00edn\u016f, kter\u00e9 pr\u016fm\u011brn\u00e9mu mluv\u010d\u00edmu nejsou zn\u00e1m\u00e9, a z poloviny z jednoduch\u00fdch propojuj\u00edc\u00edch konstrukc\u00ed. Existuj\u00ed tak\u00e9 skv\u011bl\u00e9 \u010d\u00ednsk\u00e9 datasheety v angli\u010dtin\u011b zvan\u00e9 '\u010d\u00ednsk\u00e1 angli\u010dtina', kde polovina tvo\u0159\u00ed term\u00edny a druh\u00e1 polovina je n\u00e1hodn\u00e1 sada slov.<\/p>\n<p><\/p>\n<p>Pokud naraz\u00edte na <strong>nezn\u00e1m\u00e9 slovo,<\/strong>nesna\u017ete se ho p\u0159elo\u017eit pomoc\u00ed anglicko-rusk\u00e9ho slovn\u00edku. Pokud v\u00e1m slovo <em>hysteresis<\/em>nepom\u016f\u017ee, p\u0159ekladem 'hysteres\u00ed' se v\u00e1m tepleji ur\u010dit\u011b nestane. Pou\u017e\u00edvejte Google, Stack Overflow, Wikipedii, f\u00f3ra, kde se po\u017eadovan\u00fd pojem bude <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/5357918\/what-does-hysteresis-mean-and-how-does-it-apply-to-computer-science-or-programmi\">vysv\u011btlen jednoduch\u00fdmi slovy s p\u0159\u00edklady.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Nejlep\u0161\u00ed zp\u016fsob, jak porozum\u011bt tomu, co jste p\u0159e\u010detli, je <strong>p\u0159ezkoumat v praxi. Proto m\u011bjte po ruce debuggovac\u00ed desku, se kterou se seznamujete, a rad\u011bji dv\u011b \u2013 pro p\u0159\u00edpad, \u017ee byste n\u011bco \u0161patn\u011b pochopili a vid\u011bli kou\u0159.<\/strong>U\u017eite\u010dn\u00e9 je m\u00edt po ruce datasheet, kdy\u017e \u010dtete n\u011b\u010d\u00ed tutori\u00e1l<\/p>\n<p><\/p>\n<p>nebo zkoum\u00e1te ciz\u00ed knihovnu. Je mo\u017en\u00e9, \u017ee v n\u011bm najdete optim\u00e1ln\u011bj\u0161\u00ed \u0159e\u0161en\u00ed sv\u00e9ho \u00fakolu. A naopak \u2013 pokud z datasheetu v\u016fbec nepochop\u00edte, jak funguje registr, zkuste ho vyhledat: pravd\u011bpodobn\u011b u\u017e to n\u011bkdo popsal jednoduch\u00fdmi slovy nebo zanechal srozumiteln\u00fd k\u00f3d na GitHubu. <strong>N\u011bkolik u\u017eite\u010dn\u00fdch slov a ozna\u010den\u00ed, kter\u00e9 pomohou rychleji se zorientovat v datasheetech. To, co m\u011b napadlo za posledn\u00ed dva dny, dopln\u011bn\u00ed a opravy jsou v\u00edt\u00e1ny.<\/strong> Elektrick\u00fd<\/p>\n<p><\/p>\n<h2 id=\"slovarik\">Slovn\u00ed\u010dek<\/h2>\n<p><\/p>\n<p>Vcc<\/p>\n<p><\/p>\n<p><em>Vdd<\/em><br \/>\n<strong>\u2013 'plus', nap\u00e1jen\u00ed<\/strong>, <strong>Vss<\/strong> Vee<br \/>\n<strong>\u2013 'minus', zem<\/strong>, <strong>current<\/strong> \u2013 proud<br \/>\n<strong>voltage<\/strong> \u2013 nap\u011bt\u00ed<br \/>\n<strong>to sink current<\/strong> \u2013 pracovat jako 'zem' pro extern\u00ed z\u00e1t\u011b\u017e<br \/>\n<strong>to source current<\/strong> \u2013 nap\u00e1jet extern\u00ed z\u00e1t\u011b\u017e<br \/>\n<strong>high sink\/source pin<\/strong> \u2013 pin s vy\u0161\u0161\u00ed 'toleranc\u00ed' k z\u00e1t\u011b\u017ei<br \/>\n<strong>H, High<\/strong> \u2013 na pinu Vcc<\/p>\n<p><\/p>\n<p><em>IO<\/em><br \/>\n<strong>L, Low<\/strong> \u2013 na pinu Vss<br \/>\n<strong>High Impedance<\/strong> Hi-Z<br \/>\n<strong>floating<\/strong>, <strong>\u2013 na pinu nen\u00ed nic, 'vysok\u00fd odpor', ve skute\u010dnosti je pro vn\u011bj\u0161\u00ed sv\u011bt neviditeln\u00fd.<\/strong>, <strong>weak pull up<\/strong> weak pull down<br \/>\n<strong>\u2013 vestav\u011bn\u00fd pull-up\/pull-down odpor, p\u0159ibli\u017en\u00fd ekvivalent 50 k\u03a9 (viz datasheet). Pou\u017e\u00edv\u00e1 se nap\u0159\u00edklad, aby vstupn\u00ed pin nebyl 've vzduchu', co\u017e m\u016f\u017ee zp\u016fsobit fale\u0161n\u00e9 aktivace.<\/strong>, <strong>Weak<\/strong> \u2013 proto\u017ee ho lze snadno 'p\u0159ekonat'. <em>push pull<\/em> \u2013 re\u017eim v\u00fdstupu pinu, v n\u011bm\u017e se p\u0159ep\u00edn\u00e1 mezi<br \/>\n<strong>push pull<\/strong> \u2013 stav pinu, ve kter\u00e9m p\u0159ep\u00edn\u00e1 mezi <em>High<\/em> a <em>Low<\/em> \u2013 b\u011b\u017en\u00fd OUTPUT s Arduinem.<br \/>\n<strong>open drain<\/strong> \u2013 ozna\u010den\u00ed v\u00fdstupn\u00edho re\u017eimu, ve kter\u00e9m m\u016f\u017ee b\u00fdt pin bu\u010f <em>Low<\/em>, nebo <em>High Impedance \/ Floating<\/em>. V tomto re\u017eimu to v\u011bt\u0161inou nen\u00ed \u201eopravdov\u00fd\u201c otev\u0159en\u00fd dren, existuj\u00ed ochrann\u00e9 diody, rezistory a dal\u0161\u00ed. Je to jen ozna\u010den\u00ed stavu zem\u011b \/ nic.<br \/>\n<strong>true open drain<\/strong> \u2013 a tohle u\u017e je opravdov\u00fd otev\u0159en\u00fd dren: pin je p\u0159\u00edmo p\u0159ipojen k zemi, pokud je otev\u0159en\u00fd, nebo se nach\u00e1z\u00ed v plovouc\u00edm stavu, pokud je zav\u0159en\u00fd. To znamen\u00e1, \u017ee skrze n\u011bj lze pot\u0159ebovat pos\u00edlat nap\u011bt\u00ed vy\u0161\u0161\u00ed ne\u017e Vcc, ale maxim\u00e1ln\u00ed hodnota je stejn\u011b uvedena v datov\u00e9m listu v sekci <em>Absolute Maximum Ratings \/ Voltage<\/em>. <\/p>\n<p><\/p>\n<p><em>Rozhran\u00ed<\/em><br \/>\n<strong>in series<\/strong> \u2013 p\u0159ipojen\u00e9 s\u00e9riov\u011b<br \/>\n<strong>to chain<\/strong> \u2013 sestavit \u010dipy do \u0159et\u011bzce s\u00e9riov\u00fdm p\u0159ipojen\u00edm, \u010d\u00edm\u017e se zvy\u0161uje po\u010det v\u00fdstup\u016f.<br \/>\n<strong>shift<\/strong> \u2013 posun, obvykle ozna\u010duje posun bit\u016f. Odpov\u00eddaj\u00edc\u00edm zp\u016fsobem, <strong>to shift in<\/strong> a <strong>to shift out<\/strong> \u2013 p\u0159ij\u00edmat a p\u0159ed\u00e1vat data po bitech.<br \/>\n<strong>latch<\/strong> \u2013 z\u00e1klopka, kryj\u00edc\u00ed vyrovn\u00e1vac\u00ed pam\u011b\u0165, dokud se p\u0159es ni posunuj\u00ed bity. Kdy\u017e je p\u0159enos dokon\u010den, z\u00e1klopka se otev\u00edr\u00e1 a bity za\u010dnou pracovat.<br \/>\n<strong>to clock in<\/strong> \u2013 prov\u00e9st bitov\u00fd p\u0159enos, posunout v\u0161echny bity na po\u017eadovan\u00e9 pozice.<br \/>\n<strong>double buffer<\/strong>, <strong>shadow register<\/strong>, <strong>preload register<\/strong> \u2013 ozna\u010den\u00ed historie, kdy\u017e mus\u00ed registr um\u011bt p\u0159ij\u00edmat nov\u00e1 data, ale dr\u017eet je do ur\u010dit\u00e9ho okam\u017eiku. Nap\u0159\u00edklad pro spr\u00e1vnou funk\u010dnost PWM nesm\u00ed jeho parametry (duty cycle, frekvence) m\u011bnit, dokud neskon\u010d\u00ed aktu\u00e1ln\u00ed cyklus, ale nov\u00e9 parametry u\u017e mohou b\u00fdt p\u0159ed\u00e1ny. Aktu\u00e1ln\u00ed jsou tedy uchov\u00e1v\u00e1ny v <em>shadow register<\/em>, a nov\u00e9 p\u0159ich\u00e1zej\u00ed do <em>preload register<\/em>, zapisov\u00e1ny do odpov\u00eddaj\u00edc\u00edho registru \u010dipu.<\/p>\n<p><\/p>\n<p><em>V\u0161echny<\/em><br \/>\n<strong>prescaler<\/strong> \u2013 d\u011bli\u010d frekvence<br \/>\n<strong>to set a bit<\/strong> \u2013 nastavit bit na 1<br \/>\n<strong>to clear\/reset a bit<\/strong> \u2013 resetovat bit na 0 (<em>reset<\/em> \u2013 funkce datov\u00fdch list\u016f STM)<\/p>\n<p><\/p>\n<h3 id=\"chto-dalshe\">Co d\u00e1l<\/h3>\n<p><\/p>\n<p>Celkov\u011b byl pl\u00e1novan\u00fd praktick\u00fd blok se t\u0159emi projekty na STM32 a STM8, proveden\u00fdmi speci\u00e1ln\u011b pro tento \u010dl\u00e1nek pomoc\u00ed datov\u00fdch list\u016f, s lampi\u010dkami, SPI, \u010dasova\u010di, PWM a p\u0159eru\u0161en\u00edmi:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Jak a pro\u010d \u010d\u00edst datasheety, pokud jsou mikro\u0159adi\u010de va\u0161\u00edm kon\u00ed\u010dkem\" src=\"\/wp-content\/uploads\/2019\/04\/8929bad65dad7473a81a221281c43557.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ale textu je zat\u00edm p\u0159\u00edli\u0161, proto projekty p\u0159ech\u00e1z\u00ed do druh\u00e9 \u010d\u00e1sti.<\/p>\n<p><\/p>\n<p>Dovednost \u010dten\u00ed datov\u00fdch list\u016f v\u00e1m pom\u016f\u017ee s va\u0161\u00edm kon\u00ed\u010dkem, ale sotva nahrad\u00ed \u017eivou interakci s kolegy na f\u00f3rech a chatech. Je nutn\u00e9 se p\u0159edn\u011b zam\u011b\u0159it na zlep\u0161en\u00ed anglick\u00e9ho jazyka. Proto pro ty, kte\u0159\u00ed do\u010detli \u2013 speci\u00e1ln\u00ed odm\u011bna: dv\u011b bezplatn\u00e9 hodiny v Skyeng p\u0159i prvn\u00edm placen\u00ed s k\u00f3dem <code>HABR2<\/code>.<\/p>\n<p>Zdroj: <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.3 - 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\/cs\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Jak a pro\u010d \u010d\u00edst datasheety, pokud jsou mikro\u0159adi\u010de va\u0161\u00edm kon\u00ed\u010dkem | ProHoster","description":"Mikroelektronika.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/32463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=32463"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/32463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/24267"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=32463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=32463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=32463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}