Programování AVR. Programování mikrokontrolérů AVR pro začátečníky

Mikrokontroléry jsou malé, ale zároveň velmi komfortní zařízení pro ty, kteří chtějí vytvořit v domácnosti různé úžasné robotizované nebo automatizované věci. V rámci tohoto článku bude zváženo programování AVR pro začátečníky, různé aspekty a nuance tohoto procesu.

Obecné informace

Mikrokontroléry lze nalézt všude. Jsou v lednicích, pračkách, zařízeních, obráběcích strojích ve výrobě, v chytrých domácnostech a dokonce i v mnoha různých technických zařízeních. Jejich rozšířené využití je způsobeno možností nahradit složitější a rozsáhlejší analogové obvody. Programování MC AVR umožňuje autonomní řízení elektronických zařízení. Tyto mikrokontroléry mohou být zastoupeny jako nejjednodušší počítač, který může komunikovat s externím hardwarem. Ano, jsou schopni otevřít /zavřít tranzistory, přijímat data ze snímačů a zobrazit je na obrazovkách. Mikroprocesory mohou také provádět různé zpracování vstupních informací podobně jako osobní počítač. Pokud zvládnete programování AVR od začátku a dosáhnete úrovně profesionála, budou existovat prakticky neomezené možnosti pro správu různých zařízení prostřednictvím I /O portů, stejně jako změna jejich kódu.


Trochu o AVR

V rámci článku bude uvažována rodina mikrokontrolérů vyráběných firmou Atmel. Mají poměrně dobrý výkon, což jim umožňuje používat mnohoamatérské přístroje. Široce používaný v průmyslu. Můžete se setkat v následujících technikách:
  • Domácí. Pračky, ledničky, mikrovlnné trouby a další.
  • Mobilní. Práce, komunikační zařízení a tak dále.
  • Výpočetní. Systémy pro správu periferních zařízení, základní desky.
  • Zábavné. Ozdoby a dětské hračky.
  • Doprava. Bezpečnostní systémy a řízení motoru vozidla.
  • Průmyslová zařízení. Řídicí systémy obráběcích strojů.
  • To samozřejmě není všechno. Používají se tam, kde je výhodné nepoužívat sadu řídících čipů, ale jeden mikrokontrolér. To je možné z důvodu nízké spotřeby energie a zjednodušené výroby. Pro psaní programů se používají jazyky C a Assembler, poněkud upravené pro rodinu mikrokontrolérů. Takové změny jsou nezbytné kvůli slabým výpočetním schopnostem, které se obvykle počítají v desítkách kilobajtů. Programování AVR bez učení těchto jazyků není možné.


    Jak získat svůj první mikrokontrolér?

    Programování AVR vyžaduje:
  • Dostupnost požadovaného vývojového prostředí.
  • Vlastně mikrokontroléry samotné.
  • Druhý bod je podrobněji diskutován. Existují tři možnosti pro získání potřebného zařízení:
  • Koupit přímo mikrokontrolér sám.
  • Získejte zařízení v návrháři (například - Arduino).
  • Mikrokontrolér sbírejte sami.
  • V prvním odstavci není nic komplikovaného, ​​takže okamžitě jděte na druhý a třetí.

    Získatzařízení v návrháři

    Jako příklad bude vybrán renomovaný Arduino. Tento elektronický návrhář, částečný komfortní platformu pro rychle a efektivně rozvíjet různé elektronické přístroje. Deska Arduino obsahuje určitou sadu komponent pro práci (existují různé konfigurace). Musí mít ovladač AVR. Tento přístup vám umožní rychle začít s vývojem zařízení nevyžaduje speciální dovednosti a schopnosti, má značné možnosti, pokud jde o připojení dalších karet, stejně jako na internetu lze najít mnoho informací se jedná. Ale nebylo to bez nevýhod. Kupovat Arduino, Man zbavit se této příležitosti se do toho ponořit hlouběji AVR-programování, dozvědět se více o mikrořadičů specifika jeho práci. Také dodává negativní a relativně úzkou škálu modelů, ze kterých často muset koupit desky pro specifické úkoly. Dalším rysem je, že programování "SI" zde se výrazně liší od standardního formuláře. Navzdory všem svým nevýhodám je Arduino vhodný pro začátečníky. Ale neměli byste zneužívat.

    vlastní montáž

    Je třeba poznamenat, že AVR mikroprocesory jsou dostatečně odlišné dobré vůle začátečníkům. Můžete je shromažďovat nezávisle na dostupných, jednoduchých a levných součástech. Když už mluvíme o výhodách, jako je přístup umožňuje lépe seznámit s tímto zařízením zvolit potřebné komponenty, řízení pod konečný výsledek vyžadovat použití standardních programovacích jazyků a láce. Z mínusů si můžete všimnoutpouze složitost nezávislé sbírky, když se poprvé provádí, a neexistují potřebné znalosti a dovednosti.

    Jak pracovat?

    Předpokládejme tedy, že se záležitost s mikrokontrolérem rozhodla. Předpokládá se, že byl zakoupen nebo koupen samostatně. Co jiného potřebujete pro zvládnutí programování AVR? K tomuto účelu potřebujete vývojové prostředí (jako základ a obvyklý notebook je vhodný, ale doporučuji přebývat na Poznámkovém bloku ++). I když existují další programovací aplikace AVR, tato jistota bude schopna splnit všechny požadavky. Potřebujete také programátora. Může být zakoupen v nejbližším obchodě, objednaný online nebo sami. Neporušuje desku plošných spojů. Není to nutné, ale jeho použití vám umožňuje zachránit nervy a čas. Také jste si zakoupili /vytvořili sami. A poslední je zdroj energie. Pro AVR je nutné zajistit přítok 5V.

    Kde a jak studovat?

    Vytvoření díla od začátku nevycházejí. Vyžaduje znalosti, zkušenosti a praxi. Ale kde je dostat? Existuje několik způsobů. Nejdříve můžete nezávisle hledat informace, které potřebujete na webu. Můžete psát na kurzy programování (vzdálenost nebo oko) získat základní dovednosti. Každý přístup má své vlastní výhody. Ano, kurzy dálkového programování budou levnější a možná zdarma. Pokud však něco nevyjde, pak v lekci v lekci zkušený vývojář bude schopen rychle najít příčinu problému. Také není zbytečné seznámit se s literaturou, která je ve svoboděpřístup Samozřejmě, že jedna kniha neopustí, ale lze získat základní znalosti o zařízení, programování "SI", "Assembler" a další pracovní momenty.

    Vstupní /výstupní porty

    Toto je mimořádně důležité téma. Bez pochopení toho, jak fungují I /O porty, není programování AVR obecně možné. Koneckonců, interakce mikrokontroléru s externími zařízeními se provádí přesně jejich zprostředkováním. Na první pohled se nováčik může zdát, že port je poměrně komplikovaný mechanismus. Abychom se vyhnuli takovýmto dojmům, nebudeme podrobně zkoumat schéma jeho práce, ale pouze získat obecnou představu o tom. Zvažte realizaci programu. Jako příklad zařízení bylo vybráno mikrokontrolér AtMega8, jeden z nejoblíbenějších z celé rodiny AVR. Port I /O představuje tři registry, které jsou odpovědné za jeho provoz. Na fyzické úrovni jsou prováděny jako nohy. Každý z nich odpovídá určitému řídicímu registru. Každá noha může pracovat jak pro zadávání informací, tak pro výstup. Může například zavěsit funkci zapálení světelné diody nebo zpracování dotykového tlačítka. Mimochodem, tři zmíněné registry jsou PORTx, PINx a DDRx. Každý z nich je osmbitový (nezapomeňte, že zvažujeme AtMega8). Jeden bit se zabývá určitou nohou.

    Registrační práce

    Správce DDRx je z hlediska cílení nejdůležitější. Je také osmbitový. Hodnoty pro to mohou být zapsány 0 nebo 1. Jak se práce s regulátorem mění při použitínuly a jednotky? Pokud nastavíte hodnotu 0 na určitý bit, odpovídající pozice bude přepnuta do režimu přihlášení. A z něj bude možné číst data pocházející z externích zařízení. Pokud nastavíte 1, pak mikrokontrolér bude moci něco řídit (například dát příkazy tranzistoru k přeskakování napětí a rozsvícení LED). Druhým nejdůležitějším je PORTx. On je zodpovědný za stav nohy. Podívejme se na příklad. Předpokládejme, že máme výstupní port. Nastavíme-li logickou jednotku na PORTx, pak se pošle signál z řídícího řídicího mikrokontroléru, aby se mohl začít. Například rozsvítí LED. Když jsou nuly nastaveny, zhasne. To znamená, že není nutné pracovat s správcem registrů DDRx po celou dobu. A nakonec promluvme o PINxu. Tento registr je zodpovědný za zobrazování stavu nohy řadiče, když je konfigurován na vstupní stav. Je třeba poznamenat, že PINx funguje pouze v režimu pouze pro čtení. Nahrávání nebude fungovat. Ale z přečtení aktuálního stavu nohou - to není žádný problém.

    Práce s analogy

    AVR není jediným mikrokontrolérem. Tento trh je rozdělen mezi několik velkých výrobců, stejně jako četné čínské imitace zařízení a řemeslné zpracování. V mnoha ohledech jsou podobné. Například programování PIC /AVR se nijak neliší. A pokud je něco něčeho pochopitelné, pak vše ostatní bude snadné pochopit. Nicméně stále doporučujeme začít s AVR díky své kompetentní struktuře, dobré vůli developerovi a dostupnosti velkého množství pomocných materiálů, díky čemuž může být vývojový proces výrazně zrychlen.

    Bezpečnostní technika

    Při programování mikrokontrolérů AVR na "SI" nebo "Assembler" je nutné pracovat velmi pečlivě. Faktem je, že tím, že vytvoříte určitou kombinaci registrů a měníte vnitřní nastavení, můžete bezpečně uzamknout mikrokontrolér. To platí zejména pro fjuzy. Pokud si nejste jisti správností svých akcí, je lepší odmítnout jejich použití. Totéž platí pro programátory. Pokud si koupíte tovární zařízení, pak bez problémů upevní mikroprocesory. Při sestavování vlastních rukou může být smutná situace, kdy programátor zablokuje zařízení. K tomu může dojít z důvodu chyb v programovém kódu a kvůli problémům v něm samotném. Mimochodem, o jiném (tentokrát pozitivním) okamžiku, který byl dříve zmíněn krátce, ale nebyl plně popsán. Nyní prakticky všechny moderní mikrokontroléry mají funkci programování uvnitř obvodu. Co to znamená? Předpokládejme, že zařízení bylo na desce utěsněno. A změnit svůj firmware, nyní ji nepotřebujete pít, protože takový zásah může poškodit mikrokontrolér sám. Stačí, abyste se připojili k příslušným závěrům a přeprogramovali je pomocí jejich zprostředkování.

    Jaký model si vybrat?

    V rámci článku byl zvažován AtMega8. Jedná se o poměrně mírný mikrokontrolér, který však stačí pro většinu produktů. Pokud existuje touha vytvořit něco velkého, můžete už mít nějaký druh příšer, jako je Atmega128. Ale jsou určeny pro zkušenévývojářům. Pokud tedy není dostatek zkušeností, je lepší začít s malými a jednoduchými zařízeními. Kromě toho jsou mnohem levnější. Souhlasíte, jedna věc je neúmyslně zablokovat mikrořadič na sto rublů a zcela jiný - na půl tisíce. Je lepší zaplnit ruku a porozumět různým aspektům fungování, aby v budoucnu neztrácely značné částky. Nejprve můžete začít s aplikací AtMega8 a pak navigovat podle svých potřeb.

    Závěr

    Takže téma AVR programování bylo zvažováno v nejobecnějším pojetí. Samozřejmě, je ještě spousta, o čem mluvit. Takže například nebylo uvažováno o označování mikrokontrolérů. A může to mít co říct. Ano, v podstatě mikrokontroléry fungují při napětí 5V. Zatímco přítomnost například písmena L může říci, že pro toto zařízení stačí pouze článek 27. Jak můžete vidět, někdy mohou znalosti označování hrát velmi důležitou roli z hlediska správného a trvanlivého provozu zařízení. Doba provozu mikrokontrolérů je také zajímavým tématem. Každé zařízení je určeno pro určitou dobu. Ano, někteří mohou pracovat po tisíc hodin. Ostatní mají záruku 10 000!

    Související publikace