Si dhe pse të lexoni datasheet-et, nëse mikrocontrolerët janë hobiu juaj

Si dhe pse të lexoni datasheet-et, nëse mikrocontrolerët janë hobiu juaj

Mikroelektronika Ă«shtĂ« njĂ« pasion i njohur nĂ« vitet e fundit falĂ« magjisĂ« sĂ« Arduino. Por ja, ndodhia: me njĂ« interes tĂ« duhur, DigitalWrite() mund tĂ« kalojĂ« shpejt, por çfarĂ« tĂ« bĂ«sh mĂ« pas – nuk Ă«shtĂ« aq e qartĂ«. Zhvilluesit e Arduino kanĂ« bĂ«rĂ« disa pĂ«rpjekje pĂ«r tĂ« ulur kufirin e hyrjes nĂ« ekosistemin e saj, por jashtĂ« saj ende pĂ«rshkruhet njĂ« pyll i errĂ«t i rrugĂ«s sĂ« vĂ«shtirĂ« tĂ« elektronikes, i pakapshĂ«m pĂ«r entuziastĂ«t.

Për shembull, datasheet-et. Duket sikur aty ka gjithçka, merr dhe përdor. Por autorët e tyre duket se nuk e kanë qëllim popullarizimin e mikroprocesorëve; ndonjëherë duket, se ata abuzojnë qëllimisht me terma dhe akronime të paqarta gjatë përshkrimit të gjërave të thjeshta, për të ngatërruar maksimalisht të paqartët. Por nuk është gjithçka aq keq, me dëshirë kutia hapet.

NĂ« kĂ«tĂ« artikull, do tĂ« ndaj pĂ«rvojĂ«n time tĂ« njĂ« ĐłŃƒĐŒĐ°ĐœĐžŃ‚Đ°Ń€ija me datasheet-et pĂ«r qĂ«llime hobistike. Teksti Ă«shtĂ« i destinuar pĂ«r entuziastĂ«t qĂ« janĂ« rritur nga pantallonat e vogla tĂ« Arduino, dhe supozon njohuri tĂ« caktuara mbi parimet e funksionimit tĂ« mikroprocesorĂ«ve.

Të fillojmë me të zakonshmen

Tërheqim dritën LED në Arduino

Dhe menjëherë kodi:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

«ÇfarĂ« Ă«shtĂ« kjo? – Do tĂ« pyesĂ« lexuesi me pĂ«rvojĂ«. – Pse po shkruan diçka nĂ« regjistrin e hyrjes PINB? Ai Ă«shtĂ« vetĂ«m pĂ«r tĂ« lexuar!» Realisht, dokumenti i Arduino, si shumica e artikujve mĂ«simorĂ« nĂ« internet, thotĂ« se ky regjistĂ«r Ă«shtĂ« read-only. Edhe unĂ« mendova kĂ«shtu, derisa e rilexova fletĂ« tĂ« dhĂ«nash pĂ«r Atmega328p, duke pĂ«rgatitur kĂ«tĂ« artikull. Dhe atje:

Si dhe pse të lexoni datasheet-et, nëse mikrocontrolerët janë hobiu juaj

Kjo është një funksionalitet relativisht i ri, nuk ka qenë në Atmega8, për të cilin nuk e dinë të gjithë apo nuk e përmendin për arsye të kompatibilitetit të kundërt. Por është mjaft i mirë për të demonstruar idenë se është e rëndësishme të lexosh datasheet-et për të shfrytëzuar të gjitha mundësitë e çipit, duke përfshirë ato të panjohura. Dhe kjo nuk është arsyeja e vetme.

Pse duhet të lexosh datasheet-et

Zakonisht, entuziastĂ«t e Arduino, pasi kanĂ« luajtur me LED-at dhe AnalogWrite, fillojnĂ« tĂ« lidhen me bordin disa module dhe çipa, pĂ«r tĂ« cilat tashmĂ« ka biblioteka tĂ« shkruara. NjĂ«herĂ« ose njĂ« tjetĂ«r, shfaqet njĂ« bibliotekĂ« qĂ« nuk punon ashtu siç duhet. AtĂ«herĂ« entuziasti fillon ta rregullojĂ«, dhe aty


Atje ndodhin gjëra që janë kategorikisht të paqartë, prandaj duhet të shkojë në Google, të lexoj tjerë numra të tutorialeve, të merrem me pjesë të kodit të dikujt tjetër të përshtatshëm dhe përfundimisht të arrij suksesin. Kjo jep një ndjenjë të fuqishme realizimi, por në të vërtetë procesi ngjan me shpikjen e biçikletës përmes inxhinierisë së rikthyer të një motoçiklete. Ndërkohë, njohja e mënyrës se si funksionon kjo biçikletë nuk rritet. E di, sepse vetë kam bërë këtë për një kohë të gjatë.

Nëse do të kisha kaluar një çift ditësh për të studiuar dokumentacionin për Atmega328, do të kisha kursyer një sasi të madhe kohë. Pas të gjithave, është një mikroçip mjaft i thjeshtë.

Prandaj, duhet të lexoni datasheet-et të paktën për të pasur një ide se si funksionon mikroçipi dhe çfarë mund të bëjë ai. Dhe gjithashtu:

  • pĂ«r tĂ« kontrolluar dhe optimizuar bibliotekat e tĂ« tjerĂ«ve. Ato shpesh shkruhen nga entuziastĂ« tĂ« ngjashĂ«m qĂ« shpiknin biçikletĂ«n; ose, pĂ«rkundrazi, autorĂ«t e bĂ«jnĂ« qĂ«llimisht mbrojtjen e tepĂ«rt nga idiotĂ«t. Le tĂ« jetĂ« tri herĂ« mĂ« shumĂ« dhe mĂ« ngadalĂ«, por sigurisht do tĂ« funksionojĂ«;

  • pĂ«r tĂ« pasur mundĂ«sinĂ« tĂ« pĂ«rdor chips nĂ« projektin tuaj pĂ«r tĂ« cilat askush nuk ka shkruar bibliotekĂ«n;

  • pĂ«r tĂ« lehtĂ«suar migrimin nga njĂ« gamĂ« MK nĂ« njĂ« tjetĂ«r;

  • pĂ«r tĂ« optimizuar kodin tim tĂ« vjetĂ«r, i cili nuk gjendej dot nĂ« Arduino;

  • pĂ«r tĂ« mĂ«suar tĂ« kontrolloj çdo chip direkt pĂ«rmes regjistrave tĂ« tij, pa u shqetĂ«suar pĂ«r tĂ« studiuar strukturĂ«n e bibliotekave tĂ« tij, nĂ«se ato ekzistojnĂ«.

Pse të shkruaj në regjistra drejtpërdrejt, kur ka HAL dhe LL?

Fjalori
HAL, High Abstraction Layer – njĂ« bibliotekĂ« pĂ«r menaxhimin e mikroçipit me njĂ« nivel tĂ« lartĂ« abstarcioni. NĂ«se duhet tĂ« pĂ«rdorim ndĂ«rfaqen SPI1, thjesht e konfigurojmĂ« dhe aktivizojmĂ« SPI1, pa menduar se cilĂ«t regjistra janĂ« pĂ«r çfarĂ«.
LL, Low Level API – njĂ« bibliotekĂ« qĂ« pĂ«rmban makro ose struktura me adresat e regjistrave, e cila lejon qasjen tek ata me emĂ«r. DDRx, PORTx, PINx nĂ« Atmega – kĂ«to janĂ« LL.

Diskutimet mbi "HAL, LL ose regjistra" ndodhin rregullisht në komentet në Habra. Pa pretenduar për qasje në njohuri astrale, thjesht do të ndaja përvojën dhe mendimet e mia si entuziast.

Pasi mĂ« shumĂ«-mĂ« pak duke u njohur me Atmegun dhe duke lexuar artikuj pĂ«r bukuritĂ« e STM32, kam blerĂ« gjashtĂ«lloj plaka – dhe Discovery, dhe "Tabletat Blu", dhe madje thjesht çipa pĂ«r projektet e mia. TĂ« gjitha ato kanĂ« qĂ«ndruar pĂ«r dy vjet nĂ« njĂ« kuti. NdonjĂ«herĂ« i thosha vetes: "po, nga kĂ«to fundjava do tĂ« filloj me STM", hapja CubeMX, gjeneroja konfigurimin pĂ«r SPI, shikoja tekstin e marrĂ«, tĂ« formuluar abundueshĂ«m me kopira tĂ« STM, dhe vendosja se ishte disi shumĂ«.

Si dhe pse të lexoni datasheet-et, nëse mikrocontrolerët janë hobiu juaj

Të kuptosh se çfarë ka shkruar CubeMX, natyrisht, është e mundur. Por njëherësh, është e qartë se të mbash mend të gjitha formulimet për t'i shkruar ato me dorë më pas, është e pamundur. Dhe debugging këtë, nëse ndonjëherë harroj të vendos ndonjë kutizë në Cube, është krejt një përshëndetje tjetër.

Ka kaluar dy vjet, unë ende po shihja në ST MCU Finder për çipa të ndryshëm që duken të shijshëm, por të paarritshëm për miratimin tim, dhe rastësisht u ndesha me një artikull të mrekullueshëm, ndonëse për STM8. Dhe papritur kuptova se gjithë këtë kohë isha duke trokitur në një derë të hapur: regjistrat te STM janë të organizuar si te çdo mikrokontroller tjetër, dhe për të punuar me ta, Cube nuk është i detyrueshëm. Eh, kaq mund të bëhej?..

HAL dhe specifikisht STM32CubeMX Ă«shtĂ« njĂ« instrument pĂ«r inxhinierĂ« profesionistĂ« qĂ« punojnĂ« ngushtĂ« me çipat STM32. Tipari kryesor Ă«shtĂ« niveli i lartĂ« i abstraksionit, mundĂ«sia pĂ«r tĂ« migruar shpejt nga njĂ« mikrokontroller nĂ« tjetĂ«r dhe madje nga njĂ« bĂ«rthamĂ« nĂ« tjetĂ«r, duke qĂ«ndruar brenda linjĂ«s STM32. Adhuruesit hasin shumĂ« rrallĂ« nĂ« kĂ«to detyra – zgjedhja jonĂ« e mikrokontrollerit Ă«shtĂ« zakonisht e kufizuar nĂ« ofertĂ«n e AliExpress, dhe shpesh ne migrojmĂ« mes çipave radikalisht tĂ« ndryshĂ«m – kalojmĂ« nga Atmega nĂ« STM, nga STM nĂ« ESP, mirĂ«po apo tĂ« tjera qĂ« na sjellin miqtĂ« tanĂ« kinezĂ«. HAL kĂ«tu s’na ndihmon, dhe studimi i tij do tĂ« marrĂ« shumĂ« kohĂ«.

Na mbetet LL – por nga ai deri te regjistrat Ă«shtĂ« vetĂ«m njĂ« hap. Personalish, e gjej tĂ« dobishme tĂ« shkruaj makrotĂ« e mia me adresat e regjistrave: studioj mĂ« me kujdes fletĂ«n e tĂ« dhĂ«nave, mendoj se çfarĂ« do tĂ« mĂ« duhet nĂ« tĂ« ardhmen, dhe çfarĂ« s’ka pikĂ«, e strukturoj mĂ« mirĂ« programet e mia, dhe nĂ« pĂ«rgjithĂ«si, pĂ«rballimi ndihmon nĂ« memorizim.

PĂ«r mĂ« tepĂ«r, ka njĂ« nuancĂ« me populorin STM32F103 – pĂ«r tĂ« ekzistojnĂ« dy versione tĂ« LL qĂ« nuk janĂ« tĂ« kompatibilshme, njĂ« zyrtare nga STM, dhe tjetra – nga Leaf Labs, e cila pĂ«rdoret nĂ« projektin STM32duino. NĂ«se do tĂ« shkruaja njĂ« bibliotekĂ« open-source (dhe unĂ« kisha pikĂ«risht njĂ« detyrĂ« tĂ« tillĂ«), duhet ose tĂ« bĂ«ja dy versione, ose tĂ« shkoja direkt te regjistrat.

Në fund, heqja e LL, sipas mendimit tim, e thjeshton migrimin, veçanërisht nëse e planifikoni që në fillim të punës mbi projektin. Një shembull ekstrem: të shkruajmë një blink për Arduino në Atmel Studio pa LL:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

Për ta bërë këtë kod të ndizet me dritën LED në një bord kineze me STM8 (nga ST Visual Desktop), mjafton të ndryshoni dy adresat:

#define DDR_B 0x5007
#define OUT_B 0x5005

Po, unë po përdor karakteristikën e lidhjes së dritës LED në bordin konkret, do të ndizet shumë ngadalë, por do të ndizet!

ÇfarĂ« janĂ« datasheet-et

Në artikuj dhe forume, në gjuhën ruse dhe angleze, me "datasheet" kuptohet çdo dokumentacion teknik që i referohet çipave, ashtu siç po veproj edhe unë në këtë tekst. Formalisht, ato janë vetëm një lloj i tillë dokumentacioni:

Datasheet – TTX, karakteristikat taktiko-teknike. Kjo Ă«shtĂ« e pranishme te çdo komponent elektronik. Informacion referues, e dobishme ta keni pranĂ«, por nuk ka shumĂ« pĂ«r tĂ« lexuar me kujdes. MegjithatĂ«, çipat mĂ« tĂ« thjeshtĂ« shpesh kufizohen nĂ« datasheet pĂ«r tĂ« mos krijuar dokumente shtesĂ«; nĂ« kĂ«tĂ« rast Manual ReferencĂ« pĂ«rfshihet kĂ«tu.

Manual ReferencĂ« – vetĂ« manuali, njĂ« libĂ«r i shĂ«ndoshĂ« mbi 1000+ faqe. PĂ«rshtat imtĂ«sisht funksionimin e gjithçkaje qĂ« Ă«shtĂ« ngjeshur nĂ« çip. Dokumenti kryesor pĂ«r tĂ« mĂ«suar njĂ« mikrocontroller. Ndryshe nga datasheet, instrukcionet shkruhen pĂ«r njĂ« gamĂ« tĂ« gjerĂ« MCK, ato pĂ«rmbajnĂ« shumĂ« informacion nĂ« lidhje me periferitĂ« qĂ« mungojnĂ« nĂ« modelin tuaj konkret.

Manualin e Programimit ose Manuali i Setit tĂ« Instruksioneve – instrukcija pĂ«r komandat unike tĂ« mikrocontroller-it. Destinohet pĂ«r ata qĂ« programojnĂ« nĂ« Assembler. AutorĂ«t e kompilatorĂ«ve e pĂ«rdorin atĂ« pĂ«r optimizimin e kodit, prandaj nĂ« pĂ«rgjithĂ«si nuk do na nevojitet. MegjithatĂ«, Ă«shtĂ« e dobishme tĂ« hedhim njĂ« sy kĂ«tu pĂ«r tĂ« kuptuar nĂ« pĂ«rgjithĂ«si, veçanĂ«risht pĂ«r disa komanda specifike si dalja nga ndĂ«rprerja, si dhe kur pĂ«rdoret aktivisht debuggari.

ShĂ«nimi i Aplikacionit – kĂ«shilla tĂ« dobishme pĂ«r zgjidhjen e detyrave specifike, shpesh me shembuj kodi.

FletĂ« Erratash – pĂ«rshkrimi i rasteve tĂ« sjelljes jokonvencionale tĂ« çipit me mundĂ«si pĂ«r zgjidhje, nĂ«se ka.

ÇfarĂ« ka nĂ« datasheet-e

Përveç Datasheet na mund të nevojiten këto seksione:

PĂ«rmbledhja e Pajisjeve – faqe e parĂ« e datasheet-it jep njĂ« pĂ«rmbledhje tĂ« shkurtĂ«r pĂ«r pajisjen. ËshtĂ« shumĂ« e dobishme nĂ« situata kur keni gjetur ndonjĂ«herĂ« njĂ« çip (e keni parĂ« nĂ« dyqan, e keni nxjerrĂ«, e keni hasur njĂ« pĂ«rmendje) dhe doni tĂ« kuptoni çfarĂ« Ă«shtĂ«.

PĂ«rshkrimi i PĂ«rgjithshĂ«m – pĂ«rshkrim mĂ« tĂ« detajuar tĂ« mundĂ«sive tĂ« çipave nga seria.

Pinouts – skemat e pinouts pĂ«r tĂ« gjitha rastet e mundshme tĂ« çipit (nĂ« cilin pin ndodhet cila kĂ«mbĂ«).

Pin Description – pĂ«rshkrimi i qĂ«llimit dhe mundĂ«sive tĂ« çdo pini.

Memory Map – harta e adresave nĂ« memorie ndoshta nuk do na nevojitet, por ndonjĂ«herĂ« ajo pĂ«rfshin gjithashtu tabelĂ«n e adresave tĂ« bllokave tĂ« regjistrave.

Register Map – tabela e adresave tĂ« bllokave tĂ« regjistrave, zakonisht ndodhet pikĂ«risht nĂ« dokumentin e tĂ« dhĂ«nave, ndĂ«rsa nĂ« Ref Manual – vetĂ«m offsetet (address offsets).

Karakteristikat Elektrike – nĂ« kĂ«tĂ« seksion, na intereson kryesisht vlerave maksimale absolute, qĂ« pĂ«rfshijnĂ« ngarkesat maksimale mbi çip. NĂ« krahasim me Atmega328p, shumica e MK-ve nuk lejojnĂ« lidhjen e ngarkesave tĂ« mĂ«dha mbi pin, qĂ« bĂ«het njĂ« surprizĂ« e pakĂ«ndshme pĂ«r pĂ«rdoruesit e Arduino.

Informacioni i Paketimit – skicat e kapakĂ«ve tĂ« disponueshĂ«m, tĂ« dobishme pĂ«r projektimin e pllaka tuaja.

Manual ReferencĂ« strukturohet nga seksione qĂ« janĂ« tĂ« dedikuara pĂ«r periferinĂ« specifike, tĂ« cituar nĂ« titujt e tyre. Çdo kapitull mund tĂ« ndahet nĂ« mĂ«nyrĂ« tĂ« pĂ«rafĂ«rt nĂ« tri pjesĂ«:

PĂ«rmbledhje, Hyrje, VeçoritĂ« – pĂ«rmbledhja e mundĂ«sive tĂ« periferisĂ«;

PĂ«rshkrimi Funksional, UdhĂ«zuesi i PĂ«rdorimit ose thjesht blloku kryesor i seksionit – pĂ«rshkrimi i detajuar tekstual i parimeve tĂ« funksionimit tĂ« periferisĂ« dhe mĂ«nyrave tĂ« pĂ«rdorimit tĂ« saj;

Regjistrat – pĂ«rshkrimi i regjistrave menaxhues. NĂ« raste tĂ« thjeshta si GPIO ose SPI, kjo mund tĂ« jetĂ« mjaft e mjaftueshme pĂ«r tĂ« filluar pĂ«rdorimin e periferisĂ«, por shpesh Ă«shtĂ« e nevojshme tĂ« lexoni gjithashtu pjesĂ« tĂ« mĂ«parshme.

Si të lexoni dokumentet e të dhënave

Dokumentet e të dhënave shpesh i frikësojnë me volumin dhe bollëkun e fjalëve të paqarta. Në të vërtetë, gjithçka nuk është aq e frikshme, nëse dini disa këshilla.

Instaloni një lexues të mirë PDF. Dokumentet e të dhënave shkruhen në traditat e lavdishme të udhëzimeve në letër, është e shkëlqyer t'i printoni, t'i vendosni me shënime plastike dhe t'i lidhni. Hiperteksti në to vërehet në sasi të vogla. Për fat të mirë, të paktën struktura e dokumentit ka shenja, prandaj një lexues i mirë me navigacion të lehtë është shumë i nevojshëm.

Dokumenti i tĂ« dhĂ«nave nuk Ă«shtĂ« njĂ« libĂ«r i Stroustrupit, nĂ« tĂ« nuk Ă«shtĂ« e nevojshme tĂ« lexoni gjithçka rradhazi. NĂ«se e pĂ«rdorni kĂ«shillĂ«n e mĂ«parshme – thjesht gjeni seksionin e nevojshĂ«m nĂ« panelin e shenjave.

Dokumentet e të dhënave, veçanërisht Manualet e Referencës, mund të përshkruajnë mundësitë jo të një çipi të caktuar, por të gjithë serisë. Kjo do të thotë se gjysma, ndoshta edhe dy të tretat e informacionit nuk kanë lidhje me çipin tuaj. Para se të studioni regjistrat TIM7, kontrolloni në Përshkrimi i Përgjithshëm, a e keni atë.

Dijeni anglisht mjaftueshëm në nivelin bazë. Fletë informacioni përbëhet gjysmë nga terma të panjohur për një përdorues të zakonshëm dhe gjysmë nga struktura të thjeshta lidhëse. Ndodhen gjithashtu fletë informacioni të shkëlqyera në anglishten kineze, ku gjysma tjetër përmban gjithashtu terma, ndërsa gjysma e dytë është një grup fjalësh të rastësishme.

Nëse hasni një fjalë të panjohur, mos u përpiqni ta përktheni atë me një fjalor anglisht-rusisht. Nëse ju ngatërron hysteresis, atëherë përkthimi "histerez" nuk do t'ju ndihmojë shumë. Përdorni Google, Stack Overflow, Wikipedia, forume ku koncepti i nevojshëm do të shpjegohet me fjalë të thjeshta dhe shembuj.

MĂ«nyra mĂ« e mirĂ« pĂ«r tĂ« kuptuar atĂ« qĂ« lexoni Ă«shtĂ« ta provoni nĂ« praktiken. Prandaj mbani afĂ«r njĂ« kartĂ« zhvillimi me tĂ« cilĂ«n po njohni, ose mĂ« mirĂ« dy – pĂ«r rastin nĂ«se nuk keni kuptuar gjithçka dhe shihni njĂ« avull magjik.

NjĂ« zakon i dobishĂ«m Ă«shtĂ« tĂ« mbani afĂ«r njĂ« fletĂ« informacioni kur po lexoni njĂ« tutorial tĂ« dikujt ose studioi njĂ« bibliotekĂ« tjetĂ«r. Mjaft e mundshme, aty mund tĂ« gjeni njĂ« zgjidhje mĂ« optimale pĂ«r problemin tuaj. Dhe pĂ«rkundrazi – nĂ«se nuk arrini tĂ« kuptoni se si funksionon regjistri nga fleta e informacionit, kĂ«rkoni atĂ«: Ă«shtĂ« e mundshme qĂ« dikush tashmĂ« e ka pĂ«rshkruar me fjalĂ« tĂ« thjeshta ose ka lĂ«nĂ« njĂ« kod tĂ« qartĂ« nĂ« GitHub.

Fjalori

Disa fjalĂ« dhe shkurtime tĂ« dobishme qĂ« ndihmojnĂ« tĂ« bĂ«ni shpejt njohjen me fletĂ«t e informacionit. ÇfarĂ« mĂ« ka ardhur nĂ« mendje nĂ« dy ditĂ«t e fundit, shtesat dhe rregullimet janĂ« tĂ« mirĂ«pritura.

Elektriciteti
Vcc, Vdd – "plus", energji
Vss, Vee – "minus", toka
current – rrymĂ«
voltage – tension
to sink current – tĂ« punosh "nĂ« tokĂ«" pĂ«r ngarkesĂ«n e jashtme
to source current – tĂ« ushqesh ngarkesĂ«n e jashtme
high sink/source pin – pin me "tolerancĂ«" tĂ« lartĂ« pĂ«r ngarkesĂ«

IO
H, High – nĂ« pinin Vcc
L, Low – nĂ« pinin Vss
High Impedance, Hi-Z, floating – nĂ« pin nuk ka asgjĂ«, "rezistencĂ« e lartĂ«", ai faktikisht nuk Ă«shtĂ« i dukshĂ«m pĂ«r botĂ«n e jashtme.
weak pull up, weak pull down – rezistori tĂ«rheqĂ«s/nxjerrĂ«s tĂ« integruar, njĂ« ekuivalenti i pĂ«rafĂ«rt 50 kOhm (shih fletĂ«n e informacionit). PĂ«rdoret, pĂ«r shembull, qĂ« pini hyrĂ«s tĂ« mos rrinĂ« nĂ« ajĂ«r, duke shkaktuar aktive tĂ« rreme. Weak – sepse Ă«shtĂ« e lehtĂ« "ta kalosh".
push pull – moda e daljes sĂ« pinit, nĂ« tĂ« cilĂ«n ai kalon midis I LartĂ« dhe I UlĂ«t – OUTPUT normal me Arduino.
open drain – pĂ«rkufizimi i modĂ«s sĂ« daljes, nĂ« tĂ« cilin pini mund tĂ« jetĂ« ose I UlĂ«t, ose High Impedance / Floating. MegjithatĂ«, pothuajse gjithmonĂ« ky nuk Ă«shtĂ« njĂ« "stok" i vĂ«rtetĂ« i hapur, ka dioda mbrojtĂ«se, rezistenca dhe gjĂ«ra tĂ« tjera. Simple Ă«shtĂ« njĂ« shenja pĂ«r modalitetin e tokĂ«s/nuk ka asgjĂ«.
saktĂ«sisht shkarkim i hapur – dhe kjo tashmĂ« Ă«shtĂ« njĂ« stok i vĂ«rtetĂ« i hapur: pini lidhet direkt nĂ« tokĂ«, nĂ«se Ă«shtĂ« i hapur, ose qĂ«ndron nĂ« njĂ« gjendje tĂ« pezullt, nĂ«se Ă«shtĂ« i mbyllur. Kjo do tĂ« thotĂ« se pĂ«rmes tij, kur Ă«shtĂ« e nevojshme, mund tĂ« kaloni njĂ« tension mĂ« tĂ« madh se Vcc, por maksimumi Ă«shtĂ« pĂ«rsĂ«ri i pĂ«rmendur nĂ« tĂ« dhĂ«nat teknike nĂ« seksionin Vlerat Absolute Maksimale / Tensioni.

Interfacet
nĂ« seri – e lidhur nĂ« seri
pĂ«r tĂ« lidhur çipat nĂ« njĂ« zinxhir duke i lidhur nĂ« seri, duke rritur numrin e daljeve. – zhvendosje, zakonisht i referohet zhvendosjes sĂ« bitĂ«ve. KĂ«shtu,
shift pĂ«r tĂ« zhvendosur brenda pĂ«r tĂ« zhvendosur jashtĂ« dhe – marrjen dhe dĂ«rgimin e tĂ« dhĂ«nave bit pĂ«r bit. – porti, qĂ« mbulon buffer-in, derisa bitĂ«t tĂ« zhvendosen pĂ«rmes tij. Kur transferimi tĂ« pĂ«rfundojĂ«, porti hapet, bitĂ«t fillojnĂ« tĂ« funksionojnĂ«.
latch për të clock-in
– pĂ«r tĂ« realizuar transferimin bit pĂ«r bit, pĂ«r tĂ« zhvendosur tĂ« gjitha bitĂ«t nĂ« vendet e nevojshme. ndihmĂ«s i dyfishtĂ«
regjistri hije, regjistri i ngarkimit paraprak, – emĂ«rtime qĂ« tregojnĂ« historinĂ«, kur regjistri duhet tĂ« jetĂ« nĂ« gjendje tĂ« pranojĂ« tĂ« dhĂ«na tĂ« reja, por t'i mbajĂ« ato deri nĂ« njĂ« moment tĂ« caktuar. PĂ«r shembull, pĂ«r funksionimin e saktĂ« tĂ« PWM, parametrat e tij (dĂ«mi, frekuenca) nuk duhet tĂ« ndryshojnĂ« derisa cikli aktual tĂ« pĂ«rfundojĂ«, por parametrat e rinj tashmĂ« mund tĂ« dĂ«rgohen. KĂ«shtu, ato aktuale mbahen nĂ« , dhe tĂ« rejat kalohen nĂ« regjistri i ngarkimit paraprak, duke u regjistruar nĂ« regjistrin pĂ«rkatĂ«s tĂ« çipit. – emĂ«rtime qĂ« tregojnĂ« historinĂ«, kur regjistri duhet tĂ« jetĂ« nĂ« gjendje tĂ« pranojĂ« tĂ« dhĂ«na tĂ« reja, por t'i mbajĂ« ato deri nĂ« njĂ« moment tĂ« caktuar. PĂ«r shembull, pĂ«r funksionimin e saktĂ« tĂ« PWM, parametrat e tij (dĂ«mi, frekuenca) nuk duhet tĂ« ndryshojnĂ« derisa cikli aktual tĂ« pĂ«rfundojĂ«, por parametrat e rinj tashmĂ« mund tĂ« dĂ«rgohen. KĂ«shtu, ato aktuale mbahen nëÇdo gjĂ«

parapërcaktues
– ndarĂ«si i frekuencĂ«s pĂ«r tĂ« vendosur njĂ« bit
– tĂ« vendosĂ«sh bit-in nĂ« 1 pĂ«r tĂ« pastruar/resetuar njĂ« bit
– tĂ« kesh bit-in nĂ« 0 ( – karakteristika e tĂ« dhĂ«nave teknike STM)reset NĂ« tĂ« vĂ«rtetĂ«, njĂ« pjesĂ« praktike ishte planifikuar me demonstimin e tre projekteve nĂ« STM32 dhe STM8, tĂ« kryera posaçërisht pĂ«r kĂ«tĂ« artikull duke pĂ«rdorur tĂ« dhĂ«nat, me llamba, SPI, temporizatorĂ«, PWM dhe ndĂ«rprerje:

ÇfarĂ« pason

Por teksti del të jetë shumë, prandaj projektet dërgohen në pjesën e dytë.

Si dhe pse të lexoni datasheet-et, nëse mikrocontrolerët janë hobiu juaj

AftĂ«sia pĂ«r tĂ« lexuar tĂ« dhĂ«nat do t'ju ndihmojĂ« me hobin tuaj, por ndoshta nuk do tĂ« zĂ«vendĂ«sojĂ« komunikimin e drejtpĂ«rdrejtĂ« me kolegĂ«t tuaj nĂ« forume dhe chat-e. Prandaj, pĂ«r ata qĂ« e lexuan deri nĂ« fund – njĂ« shpĂ«rblim tĂ« veçantĂ«: dy mĂ«sime falas nĂ« Skyeng me pagesĂ«n e parĂ« me kodin

HABR2 Mikroelektronika..

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster