Ahoj všichni. V tomto článku jsem chtěl mluvit o tom, jak jsem se naučil pracovat s mikrokontroléry
(dále jen MK) a s jakými nástrahami jsem se setkal. Okamžitě řeknu, že článek si nenárokuje exkluzivitu, protože každý, kdo pracuje s MK, prošel tím, čím jsem prošel já. Nesuďte prosím přísně, ale čtěte to jako příběh.

Místo připojení

Poprvé jsem se začal zajímat o MK, když jsem byl v 10. třídě. V té době se psal rok 2009. Uměl jsem trochu programovat na PC v QBasic a Visual Basic – školní program, ale život se stal tak, že jsem programování nijak zvlášť nerozuměl a nedostatek znalých lidí v oblasti elektroniky a mikrokontrolérů v okolí udělal své – pro mě to byla nová nika. I když jsem se od dětství pohrával s deskami a mikroobvody nalezenými v hromadách odpadků, pořádně jsem nechápal, jak to funguje – nikdo to nedokázal pořádně vysvětlit. Jak tranzistor normálně funguje, jsem se naučil jen pár let po popsaných událostech. Když jsem si vybíral první MK, podíval jsem se na charakteristiku na webu CHIP-DIP. Abych byl upřímný, pro mě to bylo jako hieroglyfy. Tak se toho neboj. A ano, o Arduinu tehdy nikdo neměl ani tušení.

Jak to vše začalo

Začal jsem šťourat v Yandexu a Google. Pochopil jsem, že samotný ovladač je polovina úspěchu, je také potřeba program. A jak bylo řečeno v úvodu, nebyl jsem příliš dobrý v programování. Nakonec jsem skončil na nějakém webu. Jak se později ukázalo, s touto stránkou jsem se opravdu „vymazal“. Tvůrce stránek také napsal učebnici programování, rád jsem si učebnici stáhl a první, co jsem tam viděl, bylo „použil jsem PIC16F84A jako ukázku pro práci“. Takto jsem si vlastně vybrala svůj první MK. Teď je otázka, proč jsem se „dostal“. A dostal jsem se tam, protože tvůrce této učebnice a webu nabídl naprogramování MK v ASSEMBLY. Ne všichni cvičící progéři to vědí, ale já jsem tu nováček. Ovladač jsem si už objednal a teprve potom jsem začal bohužel číst učebnici.

Jak jsem se ze situace dostal

Poté, co jsem si uvědomil, že ničemu nerozumím, jsem MK na pár let opustil, ale zároveň jsem se stále prohrabával na fórech jako Schem.net a dalších a postupně mi docházelo k pochopení problematiky. Mimochodem, rozhodl jsem se studovat na modelu PIC16F877A.

ČTĚTE VÍCE
Jak poznáte, že kreveta má kaviár?

Co tedy začátečník potřebuje vědět:

Mikrokontrolér je malý počítač, má aritmetickou logickou jednotku – v podstatě procesor, a RAM a nějaký druh pevného disku – programovou a datovou paměť, ale to vše se děje v jednom čipu. V závislosti na modelu a výrobci má tedy následující vlastnosti (přibližně):

  • Provozní frekvence se pohybují od několika do ~100 MHz, já osobně ve svých zařízeních používám zpravidla frekvence 20 MHz, a to MEGAhertz, nikoliv GIGAhertz. Frekvence se nastavuje externím zdrojem hodin – křemenným nebo keramickým rezonátorem.
  • Objem RAM – jednotky a desítky kilobajtů
  • Velikost paměti pro data a programy je až několik desítek kilobajtů. Na přání můžete datovou paměť rozšířit pomocí paměťových čipů. Aby bylo možné tyto mikroobvody použít k rozšíření paměti pro program, začátečník by měl zapomenout, ne každý profesionál to dokáže správně a ne každý mikrokontrolér vám umožňuje během provozu měnit jeho firmware.
  • Provozní napětí je od 1 do 5 voltů v závislosti na modelu a výrobci.

Mikrokontrolér je navržen tak, aby fungoval na desce, řekněme v konkrétním hardwaru, na desce, v zařízení. Takže si nemyslete, že na něm můžete hrát CS 🙂

Programovací jazyky

Začal jsem si vybírat programovací jazyk a prostředí, ve kterém budu programovat. Jelikož jsem Basic alespoň nějak znal, řekl jsem si, že by bylo dobré si na něm zahrát. Ano, není to moc dokonalé a stále je tam spousta nedostatků, ale pro začátek to bylo tak akorát. Měl jsem štěstí, ukázalo se, že existuje jazyk PIC-Basic. Je na něm učebnice, autor Chuck Helibike a manuál přeložený do ruštiny, vlastně všechno jsem se naučil dál z učebnice a manuálu. Prostředí běží pod DOSem, ale můžete nainstalovat CodeStudio a vše bude fungovat pod Windows.

Programátor

Další problém, který mi stál v cestě, bylo, jak zapsat program do čipu. Je jasné, že potřebuji programátora, rozhodl jsem se ušetřit a zkusil jsem sestavit několik obvodů z vašeho internetu. Jeden obvod nestačí, potřebujete také program, který pomocí programátoru (samotného hardwaru) zadá kód do paměti. Všechny mé experimenty skončily neúspěchem kvůli mému nedostatku zkušeností. Rozhodl jsem se, že se už nebudu dívat na kouř vycházející z čipů a objednal jsem PICKit3, poté jsem bez problémů, hrál si s ním pár dní a vše fungovalo.

ČTĚTE VÍCE
Jak dlouho žijí papoušci?

  • V současné době existují upravené programovací jazyky pro MK, jako jsou BASIC, SI a další.
  • Po napsání programu je zkompilován do strojového kódu – souboru s příponou HEX, který je nutné flashnout do paměti MK.
  • Abyste mohli „flashovat MK“ – napište do něj spustitelný kód – potřebujete dvě věci:

Pár slov o periferii

Pro komunikaci s okolním světem a snadnou obsluhu a vývoj jsou v MK zabudovány různé periferní obvody, například ADC – analogově-digitální převodník, takže můžete měřit napětí přiváděné na výstup MK bez zbytečných vedení, ale nemělo by být vyšší než napájecí napětí, jinak se čip spálí. Pomocí děliče napětí můžete vyrobit například voltmetr. Na modelu závisí i periferie, počet vestavěných funkcí a jejich vlastnosti, zpravidla platí, že čím dražší model, tím bohatší výbava. Měli byste také pamatovat na to, že ovladač má omezený počet nohou, ke kterým se můžete připojit.

Například PIC16F877A jich má 40 a 7 z nich vyletí najednou, protože. slouží k napájení, připojení rezonátoru a ovládání nouzového resetu. Také je třeba pečlivě nahlédnout do dokumentace k čipu. Například stejný ADC – v PIC16F877A umí měřit napětí pouze na 8 konkrétních nohách čipu, na ostatních to neumí. To znamená, že pro každou vestavěnou funkci jsou přiděleny specifické piny a nelze je změnit.

Podstatou této bajky je toto

Je možné zvládnout MK i sami a od nuly, ale jsou místa, kde to není příliš jasné. Pokud jste se s programováním nikdy nesetkali, tak se nejprve naučte alespoň základy programování a napište si na počítači „Hello World“. Po tomto to bude jednodušší. Pokud se nechcete příliš obtěžovat, Arduino je pro vás vším. MK jsou určeny pro použití v hardwaru – řídící jednotky, desky, ovladače atd. atd., nejedná se o plnohodnotný počítač, ale o ovladač. A podle toho byste od něj měli očekávat. Naštěstí je teď YouTube plný příkladů a já doufám, že moje zkušenost se začátkem od nuly nebude tak hořká a můj článek někomu pomůže.

  • mikrokontroléry
  • začátečníci
  • začátečník
  • pracovní zkušenosti
  • pic
  • pic16
  • pic16f877a
  • mikrokontrolér
  • mikrokontroléry pro začátečníky
  • Programování mikrokontroléru
  • Obvody
  • Elektronika pro začátečníky
ČTĚTE VÍCE
Jak můžete zjistit, zda jsou vši nebo ne?

В Контакте Ютуб Почта

Než budeme studovat strukturu skutečných mikrokontrolérů, podívejme se na strukturu abstraktního mikrokontroléru, abychom pochopili, co je uvnitř mikrokontroléru. Struktura mikrokontroléru je zjednodušeně znázorněna na obrázku (pro zvětšení klikněte na obrázek).

Что внутри микроконтроллера

Myslím, že vnitřní struktura mikrokontroléru je z nákresu přibližně jasná. Ale pro začátečníky vám řeknu trochu více o každém prvku tohoto schématu.

procesor (centrální procesorová jednotka) se doslova překládá jako „centrální procesorová jednotka“. Ale v moderním jazyce se to obvykle nazývá „centrální procesorová jednotka“ (CPU) nebo jednoduše „centrální procesorová jednotka“.

Tento modul přijímá kódy příkazů z paměti programu, dekóduje je (dešifruje) a provádí tyto příkazy.

CPU se skládá z registrů, aritmetické logické jednotky (ALU) a řídicích obvodů.

V mikroprocesorových systémech byl CPU obvykle implementován ve formě samostatného mikroobvodu, ke kterému byly připojeny další prvky, také vyrobené ve formě samostatných mikroobvodů. V mikrokontroléru jsou téměř všechny periferie umístěny v jednom krytu.

Paměť programu – Toto je paměť, kde jsou uloženy příkazové kódy. Posloupnost právě těchto příkazů je program mikrokontroléru, který do mikrokontroléru „zašijete“ pomocí programátoru.

RAM – paměťové zařízení s náhodným přístupem. Jedná se o RAM, která obsahuje data nezbytná pro práci. Zde jsou uloženy proměnné programu. Mnoho mikrokontrolérů má také zásobník umístěný zde.

Generátor hodin určuje provozní rychlost mikrokontroléru. Generuje impulsy o určité frekvenci. Na základě této frekvence vykonává centrální procesor příkazy na dané frekvenci. Přečtěte si více zde.

Resetujte obvod nutné pro správné spuštění mikrokontroléru. Při resetování se všechny prvky nastaví do nějakého počátečního stavu, od kterého mikrokontrolér začne pracovat.

Sériový port umožňuje výměnu dat s externími zařízeními. Ne všechny mikrokontroléry to mají.

Digitální I/O linky (porty) jsou určeny pro čtení (vstup) diskrétních signálů z externích zařízení, jako jsou ovládací tlačítka. A také pro výstup diskrétních signálů, což umožňuje ovládat některá zařízení, jako jsou například LED.

Diskrétní signál má pouze dva pevné stavy: 0 a 1. Obvykle 0 odpovídá nepřítomnosti napětí na výstupu a 1 přítomnosti napětí. I když to může být naopak.

Analogové I/O linky (porty) určený pro čtení (vstup) analogových signálů z externích zařízení, jako jsou senzory s analogovým výstupem (teplota, vlhkost atd.). A také pro výstup analogových signálů, což umožňuje ovládat zařízení, která vyžadují plynulé nastavení, jako jsou například topná tělesa. Nebo pro výstup frekvenčních signálů, například pro přehrávání zvuku.

ČTĚTE VÍCE
Kdy byste neměli pít červené víno?

Jak již bylo řečeno, diskrétní (přerušovaný) signál má obvykle pouze dva stavy (i když možnosti jsou možné – ale o tom jindy).

Analogový signál je spojitý.

Například, pokud mluvíme o napětí v rozsahu od 0 do 5 V, pak bude mít diskrétní signál pouze dvě hodnoty: 0 a 5 V.

Analogový signál bude mít mnoho hodnot v celém rozsahu od 0 do 5 V. Například 1 V, 3 V, 3,75 V atd.

Časový spínač slouží k počítání časových intervalů.

Časovač hlídacího psa je speciální časovač navržený tak, aby zabránil pádu programu. Princip činnosti tohoto časovače je následující: po spuštění začne odpočítávat zadaný časový interval. Program musí restartovat hlídacího psa před uplynutím této doby. Pokud to neudělala, pak s vysokou mírou pravděpodobnosti můžeme předpokládat, že program „visel“ (došlo k poruše). V tomto případě hlídací časovač restartuje mikrokontrolér.

Časovač v reálném čase. Zhruba řečeno, jde o hodiny, které nepočítají nějaké abstraktní časové úseky, ale spíše skutečný (aktuální) čas. Některá zařízení používají aktuální čas. Například časové relé nebo stejné elektronické hodiny.

Doufám, že si nyní dokážete představit, jak vypadá mikrokontrolér zevnitř. Některé z těchto prvků budou podrobněji popsány v následujících článcích.