{"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\/ro\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","title":{"rendered":"Cum \u0219i de ce s\u0103 cite\u0219ti fi\u0219ele tehnice, dac\u0103 microcontrolerele sunt hobby-ul t\u0103u","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cum \u0219i de ce s\u0103 cite\u0219ti fi\u0219ele tehnice, dac\u0103 microcontrolerele sunt hobby-ul t\u0103u\" src=\"\/wp-content\/uploads\/2019\/04\/ae2537b0263d692c4f79e7b5f7bc0797.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Microelectronica este o pasiune modern\u0103 a ultimilor ani, datorit\u0103 magiei Arduino. Dar, din p\u0103cate, \u00een cazul unui interes suficient, se dep\u0103\u0219e\u0219te rapid DigitalWrite(), iar ce trebuie f\u0103cut mai departe nu este foarte clar. Dezvoltatorii Arduino au depus mult efort pentru a reduce bariera de intrare \u00een ecosistemul lor, dar dincolo de acesta se afl\u0103 \u00eenc\u0103 o p\u0103dure \u00eentunecat\u0103 a circuitelor riguroase, inaccesibil\u0103 amatorului.<\/p>\n<p><\/p>\n<p>De exemplu, fi\u0219ele tehnice. Pare c\u0103 acestea con\u021bin tot ce ai nevoie, doar s\u0103 le folose\u0219ti. Dar autorii lor nu au deloc ca scop popularizarea microcontrolerelor; uneori <em>se pare<\/em>, c\u0103 abuzeaz\u0103 inten\u021bionat de termeni neclari \u0219i acronime \u00een descrierea lucrurilor simple, pentru a confuza la maximum neini\u021bia\u021bii. Dar nu este totul at\u00e2t de r\u0103u, cu pu\u021bin\u0103 voin\u021b\u0103, lucrurile devin clare.<\/p>\n<p><\/p>\n<p>\u00cen acest articol, voi \u00eemp\u0103rt\u0103\u0219i experien\u021ba mea de interac\u021biune a unui umanitar cu fi\u0219ele tehnice \u00een scopuri hobby. Textul este destinat iubitorilor care au crescut din etapele de baz\u0103 ale Arduino, presupun\u00e2nd o oarecare familiaritate cu principiile de func\u021bionare ale microcontrolerelor.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Voi \u00eencepe cu tradi\u021bionalul<\/p>\n<p><\/p>\n<h3 id=\"migaem-svetodiodom-na-arduino\">Clipi\u021bi un LED pe Arduino<\/h3>\n<p><\/p>\n<p>\u0218i imediat codul:<\/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>\u201eCe este asta? \u2013 va \u00eentreba cititorul experimentat. \u2013 De ce scrii ceva \u00een registrul de intrare PINB? Acesta este destinat doar citirii!\u201d Adev\u0103rat, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arduino.cc\/en\/Reference\/PortManipulation\">documenta\u021bia Arduino<\/a><\/noindex>, la fel ca majoritatea articolelor didactice de pe internet, sus\u021bine c\u0103 acest registru este read-only. \u0218i eu am crezut asta, p\u00e2n\u0103 nu am recitit <noindex><a rel=\"nofollow\" href=\"http:\/\/ww1.microchip.com\/downloads\/en\/DeviceDoc\/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf\">fi\u0219a tehnic\u0103<\/a><\/noindex> despre Atmega328p, preg\u0103tind acest articol. \u0218i acolo:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cum \u0219i de ce s\u0103 cite\u0219ti fi\u0219ele tehnice, dac\u0103 microcontrolerele sunt hobby-ul t\u0103u\" src=\"\/wp-content\/uploads\/2019\/04\/4c754bda59d9f18a38209cc32f0fb3a3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Este o func\u021bionalitate relativ nou\u0103, nu a existat pe Atmega8, nu toat\u0103 lumea o cunoa\u0219te sau nu o men\u021bioneaz\u0103 din motive de compatibilitate retroactiv\u0103. Dar este destul de util\u0103 pentru a demonstra ideea c\u0103 fi\u0219ele tehnice ar trebui citite, pentru a folosi toate capabilit\u0103\u021bile cipului, inclusiv cele mai pu\u021bin cunoscute. \u0218i aceasta nu este singura ra\u021biune.<\/p>\n<p><\/p>\n<h2 id=\"zachem-esche-chitat-datashity\">De ce mai trebuie s\u0103 citim fi\u0219ele tehnice<\/h2>\n<p><\/p>\n<p>De obicei, pasiona\u021bii de Arduino, dup\u0103 ce s-au jucat cu leduri \u0219i AnalogWrite, \u00eencep s\u0103 conecteze diferite module \u0219i cipuri la plac\u0103, pentru care exist\u0103 deja biblioteci scrise. Mai devreme sau mai t\u00e2rziu, apare o bibliotec\u0103 care nu func\u021bioneaz\u0103 a\u0219a cum ar trebui. Atunci, entuziastul \u00eencepe s\u0103 o cioc\u0103neasc\u0103 pentru a o repara, iar acolo...<\/p>\n<p><\/p>\n<p>Acolo se \u00eent\u00e2mpl\u0103 ceva categoric nedeterminat, a\u0219a c\u0103 trebuie s\u0103 m\u0103 duc pe Google, s\u0103 citesc numeroase tutoriale, s\u0103 iau pe buc\u0103\u021bi coduri potrivite de la al\u021bii \u0219i, \u00een cele din urm\u0103, s\u0103 ob\u021bin rezultatul dorit. Acest lucru ofer\u0103 o puternic\u0103 senza\u021bie de realizare, dar, de fapt, procesul aminte\u0219te de inven\u021bia bicicletei prin reverse engineering-ul unei motociclete. \u0218i \u00een plus, nu \u00eemi cre\u0219te \u00een\u021belegerea despre cum func\u021bioneaz\u0103 aceast\u0103 biciclet\u0103. \u0218tiu, deoarece am f\u0103cut asta timp de destul de mult.<\/p>\n<p><\/p>\n<p>Dac\u0103 \u00een locul acestei activit\u0103\u021bi incitante a\u0219 fi petrecut c\u00e2teva zile studiind documenta\u021bia pentru Atmega328, a\u0219 fi economisit o cantitate uimitoare de timp. P\u00e2n\u0103 la urm\u0103, este un microcontroler destul de simplu.<\/p>\n<p><\/p>\n<p>Astfel, este necesar s\u0103 citim fi\u0219ele tehnice m\u0103car pentru a avea o idee despre cum este construit microcontrolerul \u0219i ce poate face. \u0218i \u00eenc\u0103:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>pentru a verifica \u0219i a optimiza bibliotecile altora. Acestea sunt adesea scrise de al\u021bi pasiona\u021bi care inventeaz\u0103 bicicleta; sau, dimpotriv\u0103, autorii fac inten\u021bionat o protec\u021bie excesiv\u0103 \u00eempotriva gre\u0219elilor. S\u0103 fie de trei ori mai mult \u0219i mai lent, dar sigur va func\u021biona;<\/p>\n<p>\n<\/li>\n<li>\n<p>pentru a avea posibilitatea de a utiliza cipuri \u00een proiect care nu au biblioteci scrise de nimeni;<\/p>\n<p>\n<\/li>\n<li>\n<p>pentru a-mi u\u0219ura sarcina de migrare de la o gam\u0103 de microcontrolere la alta;<\/p>\n<p>\n<\/li>\n<li>\n<p>pentru a optimiza \u00een sf\u00e2r\u0219it codul meu vechi, care nu se \u00eencadra deloc \u00een Arduino;<\/p>\n<p>\n<\/li>\n<li>\n<p>pentru a \u00eenv\u0103\u021ba s\u0103 controlez orice cip direct prin registrele sale, f\u0103r\u0103 a m\u0103 preocupa s\u0103 studiez cum func\u021bioneaz\u0103 bibliotecile lui, dac\u0103 acestea exist\u0103 de fapt.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"zachem-pisat-v-registry-napryamuyu-kogda-est-hal-i-ll\">De ce s\u0103 scrii direct \u00een registre c\u00e2nd exist\u0103 HAL \u0219i LL?<\/h2>\n<p><\/p>\n<p><em>Dic\u021bionar<\/em><br \/>\n<em><strong>HAL, High Abstraction Layer<\/strong> \u2013 o bibliotec\u0103 pentru controlul microcontrolerului cu un nivel \u00eenalt de abstrac\u021bie. Dac\u0103 trebuie s\u0103 folosim interfa\u021ba SPI1, pur \u0219i simplu o configur\u0103m \u0219i o activ\u0103m, f\u0103r\u0103 a ne g\u00e2ndi la ce registre r\u0103spund la ce.<br \/>\n<strong>LL, Low Level API<\/strong> \u2013 o bibliotec\u0103 care con\u021bine macrocomenzi sau structuri cu adresele registrelor, permit\u00e2nd accesul la acestea prin nume. DDRx, PORTx, PINx pe Atmega \u2013 acestea sunt LL.<\/em><\/p>\n<p><\/p>\n<p>Discu\u021biile despre \u201eHAL, LL sau registre\u201d apar regulat \u00een comentarii pe Habr. F\u0103r\u0103 a pretinde acces la cuno\u0219tin\u021be astrale, vreau doar s\u0103 \u00eemp\u0103rt\u0103\u0219esc experien\u021ba \u0219i g\u00e2ndurile mele de amator.<\/p>\n<p><\/p>\n<p>Dup\u0103 ce m-am familiarizat mai bine cu Atmega \u0219i am citit articole despre minunile STM32, am cump\u0103rat o duzin\u0103 de pl\u0103ci diferite \u2013 \u0219i Discovery, \u0219i \u201eTabletele Albastre\u201d, \u0219i chiar cipuri simple pentru proiectele mele personale. Toate acestea au stat timp de doi ani \u00een cutie. La un moment dat, \u00eemi spuneam: \u201egata, \u00eencep s\u0103 \u00eenv\u0103\u021b STM de acest weekend\u201d, deschideam CubeMX, generam setarea pentru SPI, observam pere\u021bii de text ce erau \u00eembog\u0103\u021bi\u021bi de copyright-urile STM \u0219i decideam c\u0103 e chiar prea mult.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cum \u0219i de ce s\u0103 cite\u0219ti fi\u0219ele tehnice, dac\u0103 microcontrolerele sunt hobby-ul t\u0103u\" src=\"\/wp-content\/uploads\/2019\/04\/d83be97ba2767121f4be20d524000afe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Desigur, este posibil s\u0103 \u00een\u021belegi ce a scris CubeMX. Dar este clar c\u0103 s\u0103 re\u021bii toate formul\u0103rile pentru a le scrie manual ulterior este nerealist. Iar dac\u0103 trebuie s\u0103 depanez, \u0219i uit s\u0103 bifez vreo op\u021biune \u00een Cube, - e chiar o mare problem\u0103.<\/p>\n<p><\/p>\n<p>Au trecut doi ani, \u0219i eu \u00een continuare m\u0103 minunez de <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=fr.appsolute.st&amp;hl=ru\">ST MCU Finder<\/a><\/noindex> chipuri tot felul de gustose, dar inaccesibile \u00een\u021belegerei mele, \u0219i din \u00eent\u00e2mplare am dat peste <noindex><a rel=\"nofollow\" href=\"https:\/\/lujji.github.io\/blog\/bare-metal-programming-stm8\/\">un articol minunat<\/a><\/noindex>, chiar dac\u0103 este despre STM8. \u0218i <em>brusc<\/em> am realizat c\u0103 toat\u0103 aceast\u0103 vreme am b\u0103tut la o u\u0219\u0103 deschis\u0103: registrele la STM sunt organizate la fel ca la orice alt microcontroler, iar Cube nu este obligatoriu pentru a lucra cu ele. <em>Serios, a\u0219a se putea?..<\/em><\/p>\n<p><\/p>\n<p>HAL \u0219i, \u00een special, STM32CubeMX sunt instrumente pentru inginerii profesioni\u0219ti care lucreaz\u0103 intens cu cipurile STM32. Principalul avantaj este un nivel \u00eenalt de abstractizare, posibilitatea de a migra rapid de la un microcontroler la altul \u0219i chiar de la un nucleu la altul, r\u0103m\u00e2n\u00e2nd \u00een cadrul liniei STM32. Amatorii se confrunt\u0103 rar cu astfel de sarcini \u2013 alegerea noastr\u0103 de microcontrolere este, de obicei, limitat\u0103 de oferta de pe AliExpress, \u0219i migram mai des \u00eentre cipuri complet diferite \u2013 trecem de la Atmega la STM, de la STM la ESP, sau la ceea ce noii prieteni chinezi ne ofer\u0103. HAL nu ajut\u0103 aici, iar timpul petrecut pentru a-l studia este considerabil.<\/p>\n<p><\/p>\n<p>R\u0103m\u00e2ne LL \u2013 dar de la aceasta la registre este un singur pas. Personal, g\u0103sesc util s\u0103 \u00eemi scriu propriile macrocomenzi cu adresele registrelor: studieze mai atent fi\u0219a tehnic\u0103, m\u0103 g\u00e2ndesc la ce \u00eemi va fi necesar \u00een viitor \u0219i ce pot omite, \u00eemi structurez mai bine programele, \u0219i, \u00een general, dep\u0103\u0219irea acestora ajut\u0103 la memorare.<\/p>\n<p><\/p>\n<p>\u00cen plus, exist\u0103 o nuan\u021b\u0103 cu popularul STM32F103 \u2013 pentru acesta exist\u0103 dou\u0103 versiuni LL incompatibile, una oficial\u0103 de la STM, iar cealalt\u0103 de la Leaf Labs, folosit\u0103 \u00een proiectul STM32duino. Dac\u0103 scrii o bibliotec\u0103 open-source (iar eu am avut exact <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Ontaelio\/DMdriverSTM32F1\">aceast\u0103 sarcin\u0103<\/a><\/noindex>), trebuie fie s\u0103 faci dou\u0103 versiuni, fie s\u0103 te adresezi direct registrelor.<\/p>\n<p><\/p>\n<p>\u00cen final, renun\u021barea la LL, din punctul meu de vedere, simplific\u0103 migrarea, mai ales dac\u0103 se planific\u0103 \u00eenc\u0103 de la \u00eenceputul proiectului. Un exemplu exagerat: s\u0103 scriem un blink Arduino \u00een Atmel Studio f\u0103r\u0103 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>Pentru ca acest cod s\u0103 fac\u0103 LED-ul s\u0103 clipeasc\u0103 pe o plac\u0103 chinez\u0103 cu STM8 (din ST Visual Desktop), este suficient s\u0103 schimb\u0103m dou\u0103 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, eu folosesc o caracteristic\u0103 de conectare a LED-ului pe placa specific\u0103, va clipi foarte lent, dar tot va clipi!<\/p>\n<p><\/p>\n<h2 id=\"kakie-byvayut-datashity\">Ce tipuri de fi\u0219e de date exist\u0103<\/h2>\n<p><\/p>\n<p>\u00cen articole \u0219i pe forumuri, at\u00e2t \u00een limba rus\u0103, c\u00e2t \u0219i \u00een limba englez\u0103, sub \u00abfi\u0219ierele de date\u00bb se \u00een\u021belege orice documenta\u021bie tehnic\u0103 pentru cipuri, a\u0219a procedez \u0219i eu \u00een acest text. Formal, ele sunt doar un tip de documenta\u021bie de acest fel:<\/p>\n<p><\/p>\n<p><strong>Fi\u0219\u0103 de date<\/strong> \u2013 TTH, caracteristici tactico-tehnice. Acestea sunt obligatorii pentru orice component\u0103 electronic\u0103. Informa\u021bie de referin\u021b\u0103, util de avut la \u00eendem\u00e2n\u0103, dar nu este necesar s\u0103 o citim cu aten\u021bie. Totu\u0219i, cipurile mai simple sunt adesea limitate la fi\u0219a de date, pentru a nu crea documente suplimentare; \u00een acest caz <em>Manual de Referin\u021b\u0103<\/em> se include aici.<\/p>\n<p><\/p>\n<p><strong>Manual de Referin\u021b\u0103<\/strong> \u2013 instruc\u021biunea propriu-zis\u0103, o carte mare de peste 1000 de pagini. Detaliaz\u0103 func\u021bionarea tuturor componentelor din cip. Documentul principal pentru \u00eenv\u0103\u021barea microcontrolerului. Spre deosebire de <em>fi\u0219a de date<\/em>, instruc\u021biunile sunt scrise pentru o gam\u0103 larg\u0103 de MC-uri, con\u021bin\u00e2nd multe informa\u021bii despre perifericele care lipsesc din modelul dvs. specific.<\/p>\n<p><\/p>\n<p><strong>Manualul de programare<\/strong> sau <strong>Manualul setului de instruc\u021biuni<\/strong> \u2013 instruc\u021biunea pentru comenzile unice ale microcontrolerului. Este destinat\u0103 celor care programeaz\u0103 \u00een Assembler. Autorii compilatoarelor o folosesc activ pentru optimizarea codului, a\u0219a c\u0103, \u00een general, nu ne va fi necesar\u0103. Dar este util s\u0103 ne uit\u0103m aici pentru o \u00een\u021belegere general\u0103, la unele comenzi specifice de tip ie\u0219ire din \u00eentreruperi, precum \u0219i atunci c\u00e2nd utiliz\u0103m intens debugger-ul.<\/p>\n<p><\/p>\n<p><strong>Not\u0103 de aplica\u021bie<\/strong> \u2013 sfaturi utile pentru rezolvarea unor sarcini specifice, adesea cu exemple de cod.<\/p>\n<p><\/p>\n<p><strong>Fi\u0219\u0103 de erate<\/strong> \u2013 descrierea cazurilor de comportament neobi\u0219nuit al cipului cu variante de ocolire, dac\u0103 exist\u0103.<\/p>\n<p><\/p>\n<h2 id=\"chto-est-v-datashitah\">Ce se g\u0103se\u0219te \u00een fi\u0219ele de date<\/h2>\n<p><\/p>\n<p>Direct \u00een <em>Fi\u0219\u0103 de date<\/em> ne pot fi necesare urm\u0103toarele sec\u021biuni:<\/p>\n<p><\/p>\n<p><strong>Rezumatul dispozitivului<\/strong> \u2013 prima pagin\u0103 a fi\u0219ei de date vorbe\u0219te pe scurt despre dispozitiv. Foarte util\u0103 \u00een situa\u021biile c\u00e2nd a\u021bi g\u0103sit undeva un cip (l-a\u021bi v\u0103zut \u00een magazin, l-a\u021bi scos dintr-o plac\u0103, a\u021bi \u00eent\u00e2lnit o men\u021biune) \u0219i dori\u021bi s\u0103 \u00een\u021belege\u021bi ce este.<\/p>\n<p><\/p>\n<p><strong>Descriere general\u0103<\/strong> \u2013 o descriere mai detaliat\u0103 a capabilit\u0103\u021bilor chipset-urilor din gam\u0103.<\/p>\n<p><\/p>\n<p><strong>Pinouts<\/strong> \u2013 diagrame de legare pentru toate tipurile posibile de carcase ale chipset-ului (pe ce pin se afl\u0103 fiecare picior).<\/p>\n<p><\/p>\n<p><strong>Descrierea pinilor<\/strong> \u2013 descrierea func\u021biei \u0219i capabilit\u0103\u021bilor fiec\u0103rui pin.<\/p>\n<p><\/p>\n<p><strong>Memory Map<\/strong> \u2013 harta adreselor \u00een memorie probabil c\u0103 nu ne va fi necesar\u0103, dar uneori con\u021bine \u0219i o tabel\u0103 a adreselor blocurilor de registre.<\/p>\n<p><\/p>\n<p><strong>Register Map<\/strong> \u2013 tabela adreselor blocurilor de registre se afl\u0103, de obicei, \u00een datasheet, iar \u00een <em>Ref Manual<\/em> \u2013 doar deplas\u0103rile (<em>address offsets<\/em>).<\/p>\n<p><\/p>\n<p><strong>Electrical Characteristics<\/strong> \u2013 \u00een aceast\u0103 sec\u021biune, \u00een primul r\u00e2nd ne intereseaz\u0103 <strong>specifica\u021biilor maxime absolute<\/strong>, care enumer\u0103 sarcinile maxime asupra chipset-ului. Spre deosebire de Atmega328p, care este foarte rezistent, majoritatea microcontrolerelor nu permit conectarea de sarcini mari la pini, ceea ce devine o surpriz\u0103 nepl\u0103cut\u0103 pentru utilizatorii Arduino.<\/p>\n<p><\/p>\n<p><strong>Package Information<\/strong> \u2013 desenuri ale carcaselor disponibile, utile \u00een proiectarea propriilor pl\u0103ci.<\/p>\n<p><\/p>\n<p><em>Manual de Referin\u021b\u0103<\/em> format structural este compus din sec\u021biuni dedicate perifericilor specifice, men\u021bionate \u00een titlurile lor. Fiecare capitol poate fi \u00eemp\u0103r\u021bit \u00een trei p\u0103r\u021bi:<\/p>\n<p><\/p>\n<p><strong>Prezentare general\u0103<\/strong>, <strong>Introducere<\/strong>, <strong>Features<\/strong> \u2013 o prezentare a capacit\u0103\u021bilor periferiei;<\/p>\n<p><\/p>\n<p><strong>Functional Description<\/strong>, <strong>Usage Guide<\/strong> sau, pur \u0219i simplu, partea principal\u0103 a sec\u021biunii \u2013 o descriere detaliat\u0103 a principiilor de func\u021bionare ale periferiei \u0219i a modurilor de utilizare a acesteia;<\/p>\n<p><\/p>\n<p><strong>Registers<\/strong> \u2013 descrierea registrelor de control. \u00cen cazuri simple, cum ar fi GPIO sau SPI, aceasta poate fi suficient\u0103 pentru a \u00eencepe utilizarea periferiei, dar adesea este necesar s\u0103 citim \u0219i p\u0103r\u021bile anterioare.<\/p>\n<p><\/p>\n<h2 id=\"kak-chitat-datashity\">Cum s\u0103 citim datasheet-urile<\/h2>\n<p><\/p>\n<p>Datasheet-urile pot p\u0103rea descurajante la \u00eenceput, cu volumul \u0219i multitudinea de termeni necunoscu\u021bi. De fapt, lucrurile nu sunt at\u00e2t de sinistre, dac\u0103 \u0219tii c\u00e2teva trucuri.<\/p>\n<p><\/p>\n<p>Instala\u021bi <strong>o aplica\u021bie bun\u0103 pentru PDF<\/strong>. Datasheet-urile sunt scrise \u00een tradi\u021biile glorioase ale manualelor pe h\u00e2rtie; este ideal s\u0103 le imprimi, s\u0103 le pui folii de plastic \u0219i s\u0103 le legi. Hypertextul este prezent \u00een cantit\u0103\u021bi foarte mici. Din fericire, cel pu\u021bin structura documentului este decorat\u0103 cu marcaje, astfel \u00eenc\u00e2t o aplica\u021bie solid\u0103 de citire cu navigare confortabil\u0103 este foarte necesar\u0103.<\/p>\n<p><\/p>\n<p>Datasheet-ul nu este un manual de C++ de Stroustrup, \u00een el <strong>nu trebuie s\u0103 cite\u0219ti totul<\/strong>. Dac\u0103 ai folosit sfatul anterior \u2013 g\u0103se\u0219te cl\u0103direa sec\u021biunii necesare \u00een panoul de marcaje.<\/p>\n<p><\/p>\n<p>Datasheet-urile, \u00een special <em>Reference Manuals<\/em>, pot descrie capacit\u0103\u021bile nu ale unui anumit chipset, ci <strong>\u00eentregii serii<\/strong>. Asta \u00eenseamn\u0103 c\u0103 jum\u0103tate, dac\u0103 nu dou\u0103 treimi din informa\u021bie, nu este relevant\u0103 pentru chipset-ul t\u0103u. \u00cenainte de a studia registrele TIM7, verific\u0103 \u00een <em>Descriere general\u0103<\/em>, ave\u021bi asta la voi?<\/p>\n<p><\/p>\n<p>A \u0219ti <strong>englez\u0103<\/strong> suficient la <strong>nivel de baz\u0103<\/strong>. Fisele tehnice sunt compuse pe jum\u0103tate din termeni necunoscu\u021bi pentru vorbitorul mediu \u0219i pe jum\u0103tate din structuri simple de leg\u0103tur\u0103. Exist\u0103 \u0219i fi\u0219e tehnice excelente \u00een englez\u0103 chinez\u0103, unde jum\u0103tate sunt termeni, iar cealalt\u0103 jum\u0103tate este un set aleator de cuvinte.<\/p>\n<p><\/p>\n<p>Dac\u0103 \u00eent\u00e2lni\u021bi <strong>un cuv\u00e2nt necunoscut<\/strong>, nu \u00eencerca\u021bi s\u0103-l traduce\u021bi cu un dic\u021bionar englez-rom\u00e2n. Dac\u0103 v\u0103 pune \u00een dificultate <em>hysteresis<\/em>, traducerea \u201ehisterezis\u201d nu v\u0103 va ajuta deloc. Folosi\u021bi Google, Stack Overflow, Wikipedia, forumuri, unde no\u021biunea de care ave\u021bi nevoie va fi <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/5357918\/what-does-hysteresis-mean-and-how-does-it-apply-to-computer-science-or-programmi\">explicat\u0103 \u00een termeni simpli cu exemple<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Cel mai bun mod de a \u00een\u021belege ceea ce a\u021bi citit este s\u0103 <strong>verifica\u021bi \u00een practic\u0103<\/strong>. A\u0219adar, p\u0103stra\u021bi la \u00eendem\u00e2n\u0103 placa de dezvoltare cu care v\u0103 familiariza\u021bi, sau \u0219i mai bine, dou\u0103 \u2013 \u00een caz c\u0103 nu a\u021bi \u00een\u021beles ceva \u0219i a\u021bi v\u0103zut fumul magic.<\/p>\n<p><\/p>\n<p>Este o obi\u0219nuin\u021b\u0103 util\u0103 s\u0103 ave\u021bi la \u00eendem\u00e2n\u0103 fi\u0219a tehnic\u0103 atunci c\u00e2nd <strong>citi\u021bi un tutorial al altcuiva<\/strong> sau studia\u021bi o bibliotec\u0103 existent\u0103. Este foarte probabil s\u0103 g\u0103si\u021bi \u00een ea o solu\u021bie mai optim\u0103 pentru problema dvs. \u0218i invers \u2013 dac\u0103 nu reu\u0219i\u021bi s\u0103 \u00een\u021belege\u021bi din fi\u0219a tehnic\u0103 cum func\u021bioneaz\u0103 registrul, c\u0103uta\u021bi-l: este foarte probabil ca cineva s\u0103 fi explicat deja \u00een termeni simpli sau s\u0103 fi l\u0103sat un cod clar pe GitHub.<\/p>\n<p><\/p>\n<h2 id=\"slovarik\">Dic\u021bionar<\/h2>\n<p><\/p>\n<p>C\u00e2teva cuvinte \u0219i denumiri utile, care ajut\u0103 la familiarizarea mai rapid\u0103 cu fi\u0219ele tehnice. Ceea ce mi-a venit \u00een minte \u00een ultimele zile, complet\u0103rile \u0219i corecturile sunt binevenite.<\/p>\n<p><\/p>\n<p><em>Electricitate<\/em><br \/>\n<strong>Vcc<\/strong>, <strong>Vdd<\/strong> \u2013 \u201eplus\u201d, alimentare<br \/>\n<strong>Vss<\/strong>, <strong>Vee<\/strong> \u2013 \u201eminus\u201d, p\u0103m\u00e2nt<br \/>\n<strong>current<\/strong> \u2013 curent<br \/>\n<strong>tensiune<\/strong> \u2013 voltaj<br \/>\n<strong>a scurge curent<\/strong> \u2013 a func\u021biona \u201ep\u0103m\u00e2nt\u201d pentru o sarcin\u0103 extern\u0103<br \/>\n<strong>a furniza curent<\/strong> \u2013 a alimenta o sarcin\u0103 extern\u0103<br \/>\n<strong>pin cu toleran\u021b\u0103 mare la sarcin\u0103<\/strong> \u2013 pin cu toleran\u021b\u0103 \u201eridicat\u0103\u201d la sarcin\u0103<\/p>\n<p><\/p>\n<p><em>IO<\/em><br \/>\n<strong>H, \u00cenalt<\/strong> \u2013 pe pinul Vcc<br \/>\n<strong>L, Sc\u0103zut<\/strong> \u2013 pe pinul Vss<br \/>\n<strong>Impedan\u021b\u0103 mare<\/strong>, <strong>Hi-Z<\/strong>, <strong>floating<\/strong> \u2013 pe pin nu este nimic, \u201e\u00eempedran\u021b\u0103 mare\u201d, este de fapt invizibil lumii exterioare.<br \/>\n<strong>impuls slab<\/strong>, <strong>impuls slab<\/strong> \u2013 rezistor intern de tragere sau de \u00eentoarcere, un echivalent aproximativ de 50 kOhm (vezi fi\u0219a). Folosit, de exemplu, pentru a evita ca pinul de intrare s\u0103 fluture \u00een aer, provoc\u00e2nd declan\u0219\u0103ri false. <em>Slab<\/em> \u2013 deoarece este u\u0219or \u201e\u00eenlocuibil\u201d.<br \/>\n<strong>push pull<\/strong> \u2013 modul de ie\u0219ire al pinului, \u00een care acesta comut\u0103 \u00eentre <em>Ridicat<\/em> \u0219i <em>Low<\/em> \u2013 OUTPUT obi\u0219nuit cu Arduino.<br \/>\n<strong>), dar \u00een fi\u0219ele tehnice, aceast\u0103 denumire pentru pinurile \u00een mod stoc apare adesea.<\/strong> \u2013 denumirea modului de ie\u0219ire, \u00een care pinul poate fi fie <em>Low<\/em>, sau <em>Impedan\u021b\u0103 mare \/ Floating<\/em>. De regul\u0103, aceasta nu este un \u201estoc\u201d deschis adev\u0103rat, exist\u0103 diode de protec\u021bie, rezistori \u0219i altele. Acesta este doar un mod de a desemna func\u021bia de p\u0103m\u00e2nt\/nimic.<br \/>\n<strong>adev\u0103rat deschis drain<\/strong> \u2013 iar aceasta este un adev\u0103rat stoc deschis: pinul este conectat direct la p\u0103m\u00e2nt, dac\u0103 este deschis, sau r\u0103m\u00e2ne \u00eentr-o stare suspendat\u0103, dac\u0103 este \u00eenchis. Aceasta \u00eenseamn\u0103 c\u0103 prin el, dac\u0103 este necesar, se poate aplica o tensiune mai mare dec\u00e2t Vcc, dar maximul este totu\u0219i specificat \u00een fi\u0219a tehnic\u0103 la sec\u021biunea <em>Clasific\u0103ri maxime absolute \/ Tensiune<\/em>. <\/p>\n<p><\/p>\n<p><em>Interfe\u021be<\/em><br \/>\n<strong>\u00een serie<\/strong> \u2013 conectate \u00een serie<br \/>\n<strong>c\u0103tre lan\u021b<\/strong> \u2013 a conecta cipurile \u00eentr-un lan\u021b prin conectare \u00een serie, cresc\u00e2nd num\u0103rul de ie\u0219iri.<br \/>\n<strong>shift<\/strong> \u2013 shift, de obicei denot\u0103 deplasarea bi\u021bilor. Prin urmare, <strong>pentru a introduce<\/strong> \u0219i <strong>pentru a extrage<\/strong> \u2013 a primi \u0219i transmite date bit cu bit.<br \/>\n<strong>z\u0103vor<\/strong> \u2013 u\u0219a, care acoper\u0103 bufferul, \u00een timp ce bi\u021bii sunt deplasa\u021bi prin el. C\u00e2nd transferul s-a \u00eencheiat, u\u0219a se deschide, bi\u021bii \u00eencep s\u0103 func\u021bioneze.<br \/>\n<strong>pentru a introduce ceas<\/strong> \u2013 a efectua transferul bit cu bit, a deplasa to\u021bi bi\u021bii \u00een locurile corecte.<br \/>\n<strong>buffer dublu<\/strong>, <strong>registru de umbr\u0103<\/strong>, <strong>registru de pre\u00eenc\u0103rcare<\/strong> \u2013 denota\u021bia istoriei, c\u00e2nd registrul trebuie s\u0103 fie capabil s\u0103 primeasc\u0103 date noi, dar s\u0103 le p\u0103streze p\u00e2n\u0103 \u00eentr-un anumit moment. De exemplu, pentru a func\u021biona corect, parametrii PWM (duty cycle, frecven\u021b\u0103) nu trebuie s\u0103 se schimbe p\u00e2n\u0103 c\u00e2nd ciclul curent nu s-a \u00eencheiat, dar parametrii noi pot fi deja transmi\u0219i. Prin urmare, cele curente sunt p\u0103strate \u00een <em>registru de umbr\u0103<\/em>, iar cele noi ajung \u00een <em>registru de pre\u00eenc\u0103rcare<\/em>, fiind scrise \u00een registrul corespunz\u0103tor al cipului.<\/p>\n<p><\/p>\n<p><em>Tot felul<\/em><br \/>\n<strong>prescaler<\/strong> \u2013 divizor de frecven\u021b\u0103<br \/>\n<strong>pentru a seta un bit<\/strong> \u2013 a seta bitul la 1<br \/>\n<strong>pentru a \u0219terge\/reset un bit<\/strong> \u2013 a reseta bitul la 0 (<em>reset<\/em> \u2013 caracteristic\u0103 a fi\u0219elor tehnice STM)<\/p>\n<p><\/p>\n<h3 id=\"chto-dalshe\">Ce urmeaz\u0103<\/h3>\n<p><\/p>\n<p>\u00cen general, ar fi fost planificat\u0103 o parte practic\u0103 cu demonstrarea a trei proiecte pe STM32 \u0219i STM8, realizate special pentru acest articol folosind fi\u0219ele tehnice, cu lumini, SPI, temporizatoare, PWM \u0219i \u00eentreruperi:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cum \u0219i de ce s\u0103 cite\u0219ti fi\u0219ele tehnice, dac\u0103 microcontrolerele sunt hobby-ul t\u0103u\" src=\"\/wp-content\/uploads\/2019\/04\/8929bad65dad7473a81a221281c43557.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dar textul devine destul de mult, a\u0219a c\u0103 proiectele sunt trimise \u00een partea a doua.<\/p>\n<p><\/p>\n<p>Abilitatea de a citi fi\u0219ele tehnice te va ajuta cu hobby-ul t\u0103u, dar cu greu va \u00eenlocui comunicarea real\u0103 cu colegii de pasiun\u0103 pe forumuri \u0219i \u00een chat-uri. Totu\u0219i, trebuie s\u0103 \u00eenve\u021bi \u00een primul r\u00e2nd limba englez\u0103. A\u0219adar, pentru cei care au citit p\u00e2n\u0103 la cap\u0103t \u2013 un premiu special: dou\u0103 lec\u021bii gratuite la Skyeng la prima plat\u0103 cu codul <code>HABR2<\/code>.<\/p>\n<p>Sursa: <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.2.1 - 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\/ro\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Cum \u0219i de ce s\u0103 cite\u0219ti fi\u0219ele tehnice, dac\u0103 microcontrolerele sunt hobby-ul t\u0103u | ProHoster","description":"Microelectronic\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/kak-i-zachem-chitat-datashity-esli-mikrokontrollery-vashe-hobbi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/32463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=32463"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/32463\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/24267"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=32463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=32463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=32463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}