• Zařízení a programování mikrokontrolérů AVR. Mikrokontrolér a jak ho porazit. Co je to paměťový čip a jak čipy programovat

    Jsem kategoricky proti tomuto přístupu. Většinou to všechno končí – buď ničím, nebo ucpanými fóry s prosbami o pomoc. I když se někomu pomůže, tak v 90% už na stránkách elektroniky nevyskočí. Ve zbylých 10% dál plní fóra prosbami, nejdřív ho nakopnou, pak na něj nasypou bláto. Z těchto 10 % je vyřazeno dalších 9 %. Pak jsou dvě možnosti: buď přijde na hloupou hlavu a stále jde na začátek, nebo ve zvláště opomíjených verzích je jeho údělem kopírovat cizí návrhy, bez jediné myšlenky na to, jak to funguje. Z těch druhých se často rodí arduino.

    Cesta od nuly je podle mého názoru studovat periferie a funkce, pokud se jedná o mikrokontrolér. Je správnější se nejprve zabývat tím, jak trhat nohama, pak časovači a poté rozhraními. A teprve potom se snažte zvýšit TUK. Ano, není to rychlé, ano, bude to vyžadovat čas a úsilí, ale praxe ukazuje, že bez ohledu na to, jak se pokusíte tuto cestu zkrátit, stále se objeví problémy, které bude třeba vyřešit, a bez této základny strávíte mnohem více času.

    Jen nezaměňujte teplé a měkké. Jednak jsou výjimky ze všech pravidel, osobně jsem viděl lidi, kteří předtím mikrokontroléry v ruce nedrželi, ale v extrémně krátké době dokázali předběhnout zkušené zkušené radioamatéry, nebereme je v úvahu. Za druhé jsem narazil na jedince, kteří začali kopírováním schémat a hned na to přišli, ale spíše je to také výjimka z pravidla. Za třetí, mezi arduiny jsou zkušení programátoři, je to prostě platforma, ale to je spíše výjimka.

    Pokud mluvíme o obecné mase, pak se věci mají přesně tak, jak jsem popsal na začátku: neochota zabývat se základy v lepším případě oddaluje okamžik, kdy se musíte k těmto otázkám vrátit. V horším případě rychle narazíte na strop svých znalostí a celou dobu budete ze svých problémů obviňovat někoho jiného.

    2. Než problém vyřešíte, rozdrťte jej do absurdity až po „připájení rezistoru“, pomáhá to, je to prověřeno. Malé úkoly se řeší mnohem snadněji. Když je velký úkol rozdělen do hromady malých akcí, pak už zbývá jen je dokončit. Mohu dát ještě jednu dobrou radu, i když se vám to může zdát šílené – pořiďte si sešit a zapište si do něj vše, co budete dělat. Myslíš, že si to budu pamatovat, ale ne. Řekněme, že dnes mám dobrou náladu a přemýšlím, jak poplatek vybrat. Napište si akční plán: jděte koupit rezistor, připravte vodiče, namontujte displej. Pak na všechno zapomenete, otevřete sešit a koukáte - jo, dneska je nálada stříhat a stříhat, udělám paspartu. Nebo si sesbíráte desku a už zbývá připájet poslední součástku, ale nebylo tam, kde došly odpory, takže bych si to před pájením zapsal, pak jsem si vzpomněl.

    3. Nepoužívejte generátory kódu, nestandardní funkce a další zjednodušující prostředky, alespoň v prvních fázích. Mohu uvést svůj osobní příklad. Když jsem aktivně používal AVR, použil jsem kodogen CAVR. Naprosto mi vyhovoval, i když všichni říkali, že je kaká. Neustále zvonily, byly problémy s knihovnami, se syntaxí, s portováním, ale bylo těžké to odmítnout. Nechápal jsem, jak to funguje, jen jsem věděl, kde a jak zaškrtnout políčka.

    Do rakve mi byl zaražen kůl s příchodem STM32, bylo nutné se na ně doplazit a pak se objevily problémy. Problémy, mírně řečeno, ve skutečnosti jsem musel zvládnout mikrokontroléry a jazyk C od nuly. Už jsem neopakoval minulé chyby. Musím říct, že se mi to nejednou hodilo. Od té doby jsem měl možnost pracovat s jinými platformami a neměl jsem žádné potíže, ospravedlňuje se tento přístup.

    Ohledně všech zlepšováků a zjednodušovačů bylo jedno velmi dobré přirovnání, že jsou jako invalidní vozíky, které jezdí po kolejích, můžete jet a užívat si, ale nemůžete vstát, kam vás vezou - tam přijedete.

    4. Naučte se jazyk C. Ach, jak často slyším začínající radioamatéry chlubit se, že dobře znají sišku. Pro mě se to stalo jídlem, vždy se rád poradím s takovými partnery. Většinou se hned ukáže, že jazyk vůbec neznají. Mohu říci, že přes zdánlivou jednoduchost jsem nepotkal tolik lidí, kteří by ho opravdu dobře znali. V podstatě ho každý zná tolik, kolik je potřeba k řešení problémů.

    Problém je však podle mě v tom, že bez znalosti možností se silně omezujete. Na jedné straně ne optimální řešení vyžadující výkonnější hardware, na straně druhé nečitelný kód, který je náročný na údržbu. Čitelnost a udržovatelnost kódu je podle mého názoru jedno z nejdůležitějších míst a je pro mě těžké si představit, jak toho lze dosáhnout bez využití všech funkcí jazyka C.

    Spousta začátečníků učením jazyka pohrdá, takže pokud nejste jako všichni ostatní, okamžitě se dostanete o dva stupně výš než ostatní začátečníci. Nezáleží také na tom, kde se jazyk naučit. Mikrokontrolér se k tomu dle mého názoru moc nehodí. Je mnohem jednodušší dát nějaké Visual studio nebo Qt Creator a řešit problémy na příkazovém řádku.

    Dobrou pomůckou bude i nastudování případných jazykových testů, které se při pohovorech zadávají. Pokud budete kopat, můžete se naučit spoustu nových věcí.

    5. Učíte se assembler? Není nutné se ho bát, stejně jako zbožňovat. Není třeba si myslet, že tím, že umíte napsat program v assembleru, se z vás okamžitě stane guru mikrokontrolérů, z nějakého důvodu je to běžná mylná představa. V první řadě je to nástroj. I když jej neplánujete používat, přesto bych důrazně doporučil napsat alespoň pár programů. To značně zjednoduší pochopení činnosti mikrokontroléru a vnitřní struktury programů.

    6. Přečtěte si datový list. Mnoho vývojářů to zanedbává. Prostudováním datasheetu budete o dva kroky výše než tyto vývojáře. Je velmi užitečné to udělat, za prvé, toto je zdroj, bez ohledu na to, jaké stránky čtete, ve většině případů opakují informace z datasheetu, často s chybami a podhodnoceními. Kromě toho se mohou objevit informace, o kterých nyní nepřemýšlíte, ale které se mohou hodit v budoucnu. Může se stát, že se objeví nějaká chybička a vy si vzpomenete, že ano, bylo řečeno v datasheetu. Pokud je vaším cílem stát se dobrým vývojářem, pak se této fázi nelze vyhnout, budete muset číst datasheety, čím dříve s tím začnete, tím rychleji půjde růst.

    7. Lidé často žádají o zaslání datového listu v ruštině. Datashit - to je to, co by mělo být vnímáno jako pravda, nejsprávnější informace. Ani tam nejsou vyloučeny chyby. Když se k tomu přidají chyby překladatele, je to také člověk, možná ani ne naschvál, jen aby byl zpečetěn. Buď má svou vizi, může mu něco uniknout, podle jeho názoru ne důležité, ale pro vás možná nesmírně důležité. Situace se stává obzvláště vtipnou, když potřebujete najít dokumentaci pro nepříliš oblíbené komponenty.

    Podle mého názoru je mnohem snazší odstranit celou vrstvu těchto problémů předem, než je podchytit později. Proto jsem kategoricky proti překladům, jediná správná rada je studovat angličtinu, abyste mohli číst datasheety a manuály v originále. S pomocí překladatelských programů pochopíte význam fráze, i když je vaše jazyková úroveň zcela nulová.

    Provedl jsem experiment: k dispozici byl student, datasheet a Google překladač. Pokus č. 1: student dostal datasheet a dostal za úkol samostatně najít potřebné hodnoty, výsledek je „ano, jak mohu“, „ano, neumím anglicky“, „nenašel jsem cokoliv / jsem nerozuměl“ typické fráze, které říkají, že se o to ani nepokusil. Pokus č. 2: stejný žák dostal stejný datasheet a stejný úkol s tím rozdílem, že jsem seděl vedle něj. Výsledek - po 5 minutách sám našel všechny potřebné hodnoty, absolutně bez mé účasti, bez znalosti angličtiny.

    8. Znovu vynalezte kolo. Například studujete nějakou novinku, řekněme tranzistor, strýc Horowitz ze stránek své knihy autoritativně uvádí, že tranzistor zesiluje, vždy říkejte - NEVĚŘTE. Vezmeme do rukou tranzistor, zapneme ho v obvodu a přesvědčíme se, že tomu tak skutečně je. Existuje celá vrstva problémů a jemností, které nejsou popsány v knihách. Ucítíte je, jen když je vezmete do rukou a pokusíte se je posbírat. Zároveň získáváme spoustu předávaných znalostí, učíme se jemnosti. Navíc jakákoliv teorie bez praxe bude mnohem rychleji zapomenuta.

    V počáteční fázi mi hodně pomohla jedna metoda - nejprve sestavíte obvod a uvidíte, jak to funguje, a pak se snažíte najít zdůvodnění v knize. To samé je se softwarovou částí, když existuje hotový program, je snazší mu porozumět a korelovat kousky kódu, kdo za co zodpovídá.

    Je také důležité jít nad rámec toho, co je povoleno, použít více / méně napětí, vytvořit více / méně odporů a sledovat změny v obvodu. To vše zůstává v mozku a bude se to hodit v budoucnu. Ano, je to zatíženo spotřebou komponent, ale považuji to za nevyhnutelné. Zpočátku jsem seděl a střílel ze všeho, ale teď, než jsem dal tu či onu nominální hodnotu, si vždycky vzpomenu na ty zábavné časy a důsledky vložení špatné nominální hodnoty.

    9. A jak bych to udělal já, kdybych byl na místě vývojářů? Mohu to udělat lépe? Pokaždé si položte tyto otázky, hodně to pomáhá posunout se v učení kupředu. Prostudujte si například rozhraní 1wire, i2c, spi, uart a pak přemýšlejte o tom, jak se liší, zda to nešlo udělat lépe, to vám pomůže pochopit, proč je vše tak, jak je a ne jinak. Budete také vědět, kdy a který z nich je lepší použít.

    10. Jděte za hranice technologie. Je důležité, aby tato rada měla velmi jemnou linii. V životě byla etapa, kdy bylo ze všech dveří slyšet „by bylo nutné znát FPGA“, „ale na FPGA to jde“. Formálně jsem neměl žádné cíle studovat FPGA, ale nedalo se to obejít. Tato problematika dostala trochu času na seznámení. Čas neutíkal nadarmo, měl jsem řadu dotazů ohledně vnitřní struktury mikrokontrolérů, až po rozhovoru se záhyby jsem na ně dostal odpovědi. Podobných příkladů je mnoho, všechny znalosti, které jsem v té či oné podobě získal, se mi dříve či později hodily. Nemám jediný zbytečný příklad.

    Ale jak bylo řečeno, otázka technologie má jemnou linii. Nemusíte na sebe brát všechno. V elektronice existuje mnoho směrů. Možná máte rádi analogové, možná digitální, možná jste specialista na napájení. Pokud to není jasné, zkuste se všude, ale praxe ukazuje, že zpočátku je lepší se soustředit na něco konkrétního. I když potřebujete stisknout v několika směrech, je lepší to udělat po krocích, nejprve protlačte jednu věc.

    11. Pokud se zeptáte začínajícího radioamatéra, co ho baví víc programování nebo obvody, tak s pravděpodobností 99% bude odpovědí programování. Zároveň tito programátoři tráví většinu času výrobou desek s LUT / fotorezistem. Důvody jsou obecně pochopitelné, ale dost často to přechází v jakési šílenství, které spočívá ve výrobě desek pro výrobu desek.

    Na internetu je téměř jedinou cestou k programování stát se výrobcem PCB Jedi. I já jsem si touto cestou prošel, ale pokaždé si položím otázku proč? Od té doby, co jsem si koupil pár prken pro všechny příležitosti, pokaždé přemýšlím o tom, jak bych mohl celou tu dobu žít bez domácích prken. Moje rada, pokud existuje byť jen kapka pochybností, pak je lepší se neobtěžovat a vzít si hotovou debugovací desku a bylo by lepší utrácet čas a peníze na programování.

    12. Další rada, obzvlášť bolestivá, opravdu nechci rozebírat, ale musím.Často mi píšou, že xxx rub za yy je drahý, kde bys ho sehnal levněji. Zdá se, že je to častá otázka, ale většinou jsem z ní okamžitě napjatá, protože často přechází v nekonečné nářky na nedostatek peněz. Vždycky mám otázku: proč neutrhnout pátý bod a nepustit se do práce? Minimálně ve stejném McDucku, alespoň na stavbu, vydržet měsíc, ale pak se dá koupit pár prkýnek, které vystačí na další rok. Ano, vím, že v malých městech a na vesnicích je těžké najít práci, přestěhovat se do velkého města. Práce na dálku, obecně, musíte točit. Jen nemá smysl si stěžovat, ze situace existuje východisko, kdo hledá, najde.

    13. Ve stejném prasátku přidám velmi bolestivou otázku nástroje. Nástroj by vám měl umožnit co nejrychlejší vývoj zařízení. Z nějakého důvodu si mnoho vývojářů neváží svého času. Typickým příkladem je levné krimpování koncovek, na kterém mnozí zaměstnavatelé rádi šetří. Problém je v tom, že se to ani správně nezalisuje, kvůli tomu dráty vypadávají. Musíte udělat spoustu dalších manipulací, abyste ztráceli čas. Ale jak víte, blázen platí třikrát, takže nízká cena krimpovačky se mnohonásobně zvýší, kvůli strávenému času a špatné kvalitě krimpu.

    Neříkám, že levné = špatné, ne - vše záleží na situaci. Vrátím se k příkladu krimpovačky, byla doba, kdy jsem to krimpoval čímkoli, takže často nastávaly problémy. Zvláště nepříjemné je, když desku spustíte a nefunguje, po dlouhém hledání chyby si uvědomíte, že je to škoda kvůli špatně namačkanému drátu. Od doby, kdy se objevilo normální krimpování, tyto problémy nebyly. Ano, vnitřní ropucha kvákala a dusila se svou cenou, ale nikdy tohoto rozhodnutí nelitoval. Chci jen říct, že po práci s normálním nástrojem se absolutně nechci vracet ke špatnému, nechci o tom ani diskutovat. Jak ukazuje praxe, je lepší nešetřit na nástrojích, pokud máte pochybnosti - vezměte někoho na testování, přečtěte si recenze, recenze.

    14. Založte si webovou stránku, můžete na ni psát cokoliv, stejně jako poznámky. Praxe ukazuje, že to zaměstnavatelé stále nečtou, ale samotná skutečnost má velký vliv.

    15. Jemná otázka: specializované vysokoškolské vzdělání, je nutné? Znám víc než pár případů, kdy lidé pracovali absolutně bez vzdělání a na základě svých zkušeností a znalostí mohli dát světlo každému absolventovi. Ve skutečnosti nemám specializované vzdělání, cítím z toho nepohodlí? Do jisté míry ano.

    Na úplných začátcích, kdy pro mě byly mikrokontroléry koníčkem, jsem hodně pomáhal se semestrálními prácemi a diplomy z různých univerzit, jen abych zhodnotil svou úroveň. Mohu s jistotou říci, že úroveň je obecně nízká, bez ohledu na název univerzity. K napsání takového diplomu není nutné studovat několik let. Můžete toho dosáhnout sami ve velmi krátké době. A přesto byly často momenty, kdy studenti znali nějaký předmět, který probírali ve 2. nebo 3. ročníku, ale já jsem nevěděl toto. Všechny tyto znalosti byly sice kompenzovány sebevzděláváním, přesto by bylo lepší s tím neztrácet čas.

    Univerzita kvůli papíru. Mohu říci, že byly i situace, kdy nabízeli práci, která vyžadovala povinnou školní docházku a byla škoda, že zrovna v tu chvíli nebylo papírování. Obecně ale historie ukazuje, že většina zaměstnavatelů se o váš papír nestará.

    Další bod se dost často nebere v úvahu, tím je prostředí. Nezapomeňte, že lidé, se kterými studujete, jsou vaše generace, je možné, že s nimi budete spolupracovat. Počet firem působících v jednom odvětví je velmi omezený. Praxe ukazuje, že i ve velkých městech o sobě všichni vědí až do intimních detailů.

    Dalším bodem jsou možnosti. Vysoké školy mají často své vlastní možnosti - vybavení, možná nějaké sekce, možná nějaké programy práce v zahraničí, toho by se mělo využít, pokud je tu sebemenší příležitost. Pokud na univerzitě nevidíte žádné vyhlídky, jděte na jinou, u jedné svět nekončí.

    Abych to shrnula, rada zní takto: pokud je i sebemenší příležitost, je třeba jít studovat, určitě sleduj profil, pokud je alespoň nějaká šance, tak lez všude a neseď kalhoty na záda psacího stolu. Navazujte známosti, zároveň cvičte doma, rozvíjejte se.

    16. Je příliš pozdě začít s programováním ve 20, 30, 40, 50 letech? Praxe ostatních lidí ukazuje, že věk není vůbec překážkou. Mnozí z nějakého důvodu neberou v úvahu fakt, že existuje celá vrstva práce, kterou mladí lidé kvůli svým ambicím dělat nechtějí. Zaměstnavatelé proto raději berou ty, kteří to budou tahat. Toto je vaše šance se chytit a pak už vše závisí na vás.

    A poslední rada. Mnoho radioamatérů je nespolečenských, naštvaných a podrážděných – to považujte za specifika této práce. Vyzařujte laskavost a pozitivitu, buďte dobrým člověkem.

    9


    Moderní amatérské rádio si nelze představit bez mikrokontrolérů, a to je zřejmé. V posledních desetiletích se v různých oblastech lidské činnosti rozšířily mikrokontroléry různých výrobců. Často je lze nalézt v nejneočekávanějších zařízeních a designech. Jsme svědky elektronizace a automatizace procesů kolem nás. Pravdou je, že bez znalosti základů programování je téměř nemožné vytvořit moderní konkurenční zařízení ...

    Pokud čtete tento článek, pravděpodobně máte touhu porozumět tomu, jak mikrokontroléry fungují, a pravděpodobně máte otázky:

    4. Jakou literaturu studovat?

    Pokusme se na tyto otázky odpovědět.

    1. Jaký mikrokontrolér zvolit pro práci?

    8bitové mikrokontroléry jsou mezi radioamatéry velmi oblíbené. PIC Technologie mikročipů a AVR Atmel, 16bit MSP430 TI firmy, stejně jako 32bitové mikrokontroléry, architektury PAŽE.

    V průmyslu, trochu jiným způsobem, je na prvním místě s velkým náskokem Renesas Electronics na druhém Freescale, na třetí Samsung, potom jdi Mikročip A TI, pak všechny ostatní.
    Oblíbenost je dána cenou a dostupností, významnou roli hraje dostupnost technických informací a cena softwarové podpory.

    Budeme studovat 8bitové mikrokontroléry AVR, rodiny ATMEGA řady 8 a 16. Volba byla opět určena dostupností, přítomností mnoha amatérských vývojů a obrovským množstvím vzdělávacího materiálu. Přítomnost různých vestavěných komponent a funkčnost této rodiny.

    2. Jaké vývojové prostředí mám použít k programování vybraného mikrokontroléru?

    Pro AVR byla vytvořena různá integrovaná vývojová prostředí (IDE, Integrated development environment).
    IDE je systém softwarových nástrojů používaných programátory k vývoji softwaru (SW), který zahrnuje:
    textový editor,
    kompilátor a/nebo interpret,
    vytvářet automatizační nástroje
    debugger.

    Ty nejčastější AVRStudio, ATmelStudio, WINAVR, CodeVision, IAR Embedded Workbench.
    Abychom mohli psát programy, použijeme zdarma ATmelStudio IDE verze 6 a vyšší.
    Atmel Studio si můžete stáhnout z oficiálních stránek po registraci (registrace je zcela zdarma a k ničemu vás nezavazuje!)

    ATmelStudio umožňuje vytvářet projekty a psát programy jak v assembleru, tak v C.

    Zpočátku vždy vyvstává otázka: jaký programovací jazyk zvolit, abyste mohli psát efektivní programy?

    Odpovím jednoduše: musíte umět napsat alespoň dva jazyky assembleru a C. Assembler je prostě nezbytný, když potřebujete psát rychlé a kompaktní podprogramy a makra, různé ovladače zařízení. Ale když potřebujete vytvořit velký projekt postavený na složitých algoritmech, bez znalosti SI, můžete strávit spoustu času, zejména při ladění, a pokud chcete přejít na jinou platformu, jako je PIC18 nebo STM, může stát se neřešitelným problémem.
    Navíc nyní existují hardwarové výpočetní platformy Arduino, práce s níž vyžaduje znalost jazyka C++.
    Proto budeme psát programy jak v assembleru, tak v C.

    Chcete-li vizuálně vidět výsledek své práce, bez použití páječky nebo prkénka, stačí nainstalovat program Proteus.

    3. Jak ovladač flashnout a jaká další zařízení a příslušenství jsou potřeba pro pohodlnou práci s nimi?

    Používáme datagorian. Kromě toho budete muset zakoupit prkénka na krájení, napájecí zdroj s výstupním napětím 5 voltů. Můžete jej použít jako PSU s nízkým zvlněním pomocí 5V zenerovy diody.
    Možná časem s Igorem nabídneme projekt na sestavení ladicí desky.

    4. Jakou literaturu studovat?

    A například zde:
    Praktické programování AVR v assembleru. Revich, 2011
    1000 a jeden obvod mikrokontroléru sv. 1-2. Ryumik, 2010-2011
    10 praktických zařízení na MK AVR Book 1-2. Kravčenko, 2008-2009
    Vlastní návod pro vývojáře zařízení na MK AVR. Belov, 2008
    MK AVR rodiny Tiny a Atmega. Efstifeev, 2008
    CodeVisionAVR. Průvodce pro začátečníky. Lebeděv, 2008
    Mikroprocesorové řízení zařízení, tyristory, relé. Belov, 2008
    Analogová rozhraní MK. Steward, Ball, 2007
    Vytváříme zařízení na MK AVR. Belov, 2007
    MK AVR v radioamatérské praxi. Úplná analýza ATTINY2313. Belov, 2007
    Síťová a mezisíťová výměna dat s MK. Jdi, 2007
    MK AVR. cvičení pro začátečníky. Hartov, 2007
    Aplikace AVR schémat, algoritmů, programů. Baranov, 2006
    Mikrokontroléry AVR. Úvodní kurz. Morton, 2006
    Měření, řízení a regulace s AVR. Trumpert, 2006
    Programování v C pro AVR a PIC MK. Shpak, 2006
    Navrhování zařízení na MK. Belov, 2005
    MK - je to jednoduché, objemy 1-3. Frunze, 2002-2003
    Programovací jazyk C, 2. vydání. Kernigan, Ritchie, 2009
    Programování mikrokontrolérů ATMEL v jazyce S. Prokopenka, 2012

    5. Kde mohu klást otázky online a získat konkrétní odpovědi?

    Můžete klást otázky na našem nebo jiném fóru, kde se nějakým způsobem dotýkají témata týkající se mikrokontrolérů. Hlavní věcí na fórech je správně formulovat otázky, abyste získali jasné odpovědi. Abstraktní otázky nejsou vítány a s největší pravděpodobností místo odpovědi dostanete tvrdou kritiku nebo vaše otázka zůstane bez pozornosti!

    Nyní se podíváme blíže na náš oblíbený mikrokontrolér ATMEGA 8.

    8bitový vysoce výkonný mikrokontrolér AVR s nízkou spotřebou
    Progresivní RISC architektura
    130 vysoce výkonných instrukcí, většina instrukcí prováděných v jednom hodinovém cyklu
    32 8bitových univerzálních pracovních registrů
    Plně statický provoz
    Blíží se výkon 16 MIPS (při 16 MHz).
    Vestavěný 2-cyklový multiplikátor

    Energeticky nezávislá programová a datová paměť
    8 KB samoprogramovatelný flash v systému
    Poskytuje 1000 cyklů vymazání/zápisu
    Další sektor spouštěcích kódů s nezávislými zámkovými bity
    K dispozici je režim současného čtení/zápisu (Čtení-během-zápisu).
    512 bajtů EEPROM
    Poskytuje 100 000 cyklů vymazání/zápisu
    1 KB na desce SRAM
    Programovatelný zámek pro ochranu uživatelského softwaru

    Vestavěná periferní zařízení
    Dva 8bitové časovače/čítače se samostatným předděličem, jeden s režimem porovnání
    Jeden 16bitový časovač/počítač se samostatným předděličem a režimy snímání a porovnávání
    Počítadlo reálného času se samostatným generátorem
    Tři PWM kanály
    8kanálový analogově-digitální převodník (v balíčcích TQFP a MLF)
    6 kanálů s 10bitovou přesností
    6kanálový analogově-digitální převodník (v balení PDIP)
    4 kanály s 10bitovou přesností
    2 kanály s 8bitovou přesností
    Dvoudrátové sériové rozhraní orientované na byte
    Programovatelný sériový USART
    Sériové rozhraní SPI (master/slave)
    Programovatelný hlídací časovač se samostatným vestavěným oscilátorem
    Vestavěný analogový komparátor

    Speciální funkce mikrokontroléru
    Reset při zapnutí a programovatelný detektor napětí při vypnutí
    Vestavěný kalibrovaný RC oscilátor
    Vnitřní a vnější zdroje přerušení
    Pět režimů nízké spotřeby: Idle, Power-Save, Power-down, Standby a redukce šumu ADC

    I/O piny a balíčky
    23 programovatelných I/O linek
    28svodový balíček PDIP, 32svodový balíček TQFP a 32svodový balíček MLF

    Provozní napětí
    2,7–5,5 V (ATmega8L)
    4,5–5,5 V (ATmega8)

    Provozní frekvence
    0–8 MHz (ATmega8L)
    0–16 MHz (ATmega8)

    rozdíly mezi ATMEGA16 a 8
    16 KB samoprogramovatelný flash v systému

    Rozhraní JTAG (vyhovující IEEE 1149.1)
    Schopnost periferního skenování v souladu se standardem JTAG
    Vylepšená podpora inline ladění
    Programování přes rozhraní JTAG: Flash, paměť EEPROM, propojky a zámkové bity

    Čtyři kanály PWM / PWM

    8kanálový 10bitový A/D převodník
    8 nevyvážených kanálů
    7 diferenciálních kanálů (pouze balíček TQFP)
    2 diferenciální kanály s 1x, 10x nebo 200x programovatelným ziskem (pouze balíček TQFP)

    Šest režimů vypnutí: Idle, Power-save, Power-down, Standby, Extended Standby a redukce šumu ADC

    32 programovatelných I/O linek

    40svodový balíček PDIP a balíček 44svodový TQFP

    AtmelStudio

    Pokud právě začínáte, musíte si stáhnout a nainstalovat program AtmelStudio z oficiální stránky atmel.com
    Po instalaci programu AtmelStudio můžete začít vytvářet projekt.
    Projekt- toto je váš program, který budete zapisovat, ladit a flashovat po kompilaci do paměti mikrokontroléru.

    Chcete-li vytvořit projekt, musíte otevřít program, zobrazí se úvodní obrazovka,

    a otevře se stránka vytváření projektu

    Chcete-li vytvořit nový projekt, klikněte na Nový projekt...
    V tomto případě se otevře nové okno, kde si můžete vybrat programovací jazyk, název projektu, jeho umístění, název balíčku se soubory projektu a možnost vytvoření adresáře pro další použití v dalších cross-projektech . Pro vytvoření projektu, kde budeme programovat v assembleru, je potřeba vybrat - assembler, poté změňte název projektu, jeho umístění a vyberte OK.

    Zobrazí se následující okno

    Vybrat megaAVR, 8-bit a najít mikrokontrolér, který potřebujeme, jsme si vybrali ATmega8. Na pravé straně úvodní obrazovky se objeví seznam zařízení pracujících s tímto mikrokontrolérem, z nichž jedno můžeme připojit. Vybrat OK.

    Zobrazí se stránka textového editoru, která vám umožní upravovat a ladit program. Když je stránka čistá, je uveden čas a datum vytvoření a název souboru projektu, uživatelské jméno. K dispozici je další okno vstupně-výstupního zařízení, okno se zprávou o kompilaci programu. teď my


    Můžeme programovat v assembleru.
    Podobně je vytvořen projekt pro programování v jazyce C.

    Programování mikrokontroléru

    Úvod

    Část 2. Programovací prostředí. Schémata zapojení mikrokontroléru

    Sekce 3. Praktická implementace programu na mikrokontroléru

    Seznam použitých zdrojů

    Úvod

    Relevance tématu. Mikrokontroléry se používají ve všech sférách lidského života, zařízení, která jej obklopují. Snadné připojení a skvělá funkčnost. Pomocí programování mikrokontrolérů lze vyřešit mnoho praktických problémů hardwarové technologie.

    Cíl práce. Na praktickém příkladu ukázat výhodné vlastnosti použití mikrokontrolérů, nutnost jejich implementace do různých zařízení.

    Můžeme předpokládat, že mikrokontrolér (MC) je počítač umístěný v jediném mikroobvodu. Odtud jeho hlavní atraktivní vlastnosti: malé rozměry; vysoký výkon, spolehlivost a schopnost přizpůsobení k provádění široké škály úkolů.

    Mikrokontrolér kromě centrální procesorové jednotky (CPU) obsahuje paměť a četná vstupní/výstupní zařízení: analogově-digitální převodníky, sériové a paralelní kanály pro přenos informací, časovače v reálném čase, modulátory šířky pulzu (PWM), programovatelné pulzní generátory atd. Jeho hlavním účelem je použití v automatických řídicích systémech zabudovaných do široké škály zařízení: kreditní karty, fotoaparáty, mobilní telefony, stereo, televizory, videorekordéry a videokamery, pračky, mikrovlnné trouby, zabezpečovací systémy proti vloupání, zapalovací systémy benzínových motorů, elektrické pohony lokomotiv, jaderné reaktory a mnohem, mnohem více. Vestavěné řídicí systémy se staly tak masovým fenoménem, ​​že se vlastně vytvořilo nové odvětví ekonomiky, nazvané EmbeddedSystems (vestavěné systémy).

    Poměrně rozšířené jsou ATMEL MC, které mají skvělou funkčnost.

    Použití MC lze rozdělit do dvou etap: první je programování, kdy uživatel vyvine program a flashne jej přímo do čipu, a druhou je koordinace navržených aktorů s programovatelným MC. Výrazně usnadňuje ladění programu na prvním stupni - simulátoru, který vizuálně simuluje činnost mikroprocesoru. Ve druhé fázi se k ladění používá in-circuit emulátor, což je složité a drahé zařízení, které je pro běžného uživatele často nedostupné.

    Zároveň je v literatuře věnována malá pozornost otázkám výuky programování některých levných mikrokontrolérů, v kombinaci s reálnými akčními členy.

    Vývoj layoutu programátoru, který se vyznačuje jednoduchostí, přehledností a nízkou cenou, se stává nezbytným jak pro samotné programování krystalů, tak pro vizuální školení širokého spektra uživatelů v základech programování MC.

    Sekce 1. Účel a rozsah, jejich architektura

    Mikrokontrolér je počítač na jednom čipu. Navrženo pro ovládání různých elektronických zařízení a interakci mezi nimi v souladu s programem zabudovaným v mikrokontroléru. Na rozdíl od mikroprocesorů používaných v osobních počítačích obsahují mikrokontroléry vestavěná přídavná zařízení. Tato zařízení plní své úkoly pod kontrolou mikroprocesorového jádra mikrokontroléru.

    Mezi nejběžnější vestavěná zařízení patří paměťová zařízení a vstupní/výstupní (I/O) porty, komunikační rozhraní, časovače, systémové hodiny. Mezi paměťová zařízení patří paměť s náhodným přístupem (RAM), paměť pouze pro čtení (ROM), přeprogramovatelná ROM (EPROM), elektricky přeprogramovatelná ROM (EEPROM). Časovače zahrnují jak hodiny reálného času, tak časovače přerušení. Mezi I/O zařízení patří sériové komunikační porty, paralelní porty (I/O linky), analogově-digitální převodníky (A/D), digitálně-analogové převodníky (D/A), ovladače Liquid Crystal Display (LCD), nebo ovladače vakuového fluorescenčního displeje (VFD). Vestavěná zařízení jsou spolehlivější, protože nevyžadují žádné externí elektrické obvody.

    Na rozdíl od mikrokontroléru se řadič obvykle nazývá deska postavená na mikrokontroléru, ale poměrně často se při použití termínu "mikrokontrolér" používá zkrácený název tohoto zařízení, přičemž předponu "mikro" pro jednoduchost zavrhujeme. Také při odkazu na mikrokontroléry se můžete setkat se slovy „chip“ nebo „microchip“, „crystal“ (většina mikrokontrolérů je vyrobena na jediném křemíkovém krystalu), zkratky MK nebo z anglického microcontroller – MC.

    mikrořadič program microcircuit electronic

    Mikrokontroléry lze nalézt v obrovském množství moderních průmyslových a domácích spotřebičů: obráběcích strojích, autech, telefonech, televizorech, ledničkách, pračkách. a dokonce i kávovary. Mezi výrobce mikrokontrolérů patří Intel, Motorola, Hitachi, Microchip, Atmel, Philips, Texas Instruments, Infineon Technologies (bývalý Siemens Semiconductor Group) a mnoho dalších. Pro výrobu moderních mikroobvodů jsou zapotřebí ultračisté prostory.

    Hlavním klasifikačním znakem mikrokontrolérů je bitová hloubka dat zpracovávaných aritmetickou logickou jednotkou (ALU). Na tomto základě se dělí na 4-, 8-, 16-, 32- a 64bitové. Dnes největší podíl na světovém trhu mikrokontrolérů patří osmibitovým zařízením (asi 50 % hodnoty). Následují 16bitové a DSP mikrokontroléry (DSP - Digital Signal Processor - digitální signálový procesor), zaměřené na použití v systémech zpracování signálů (každá ze skupin zaujímá cca 20 % trhu). V rámci každé skupiny jsou mikrokontroléry rozděleny na zařízení CISC a RISC. Nejpočetnější skupinou jsou mikrokontroléry CISC, ale v posledních letech je patrný trend ke zvýšení podílu architektury RISC mezi novými čipy.

    Hodinová frekvence, přesněji řečeno rychlost sběrnice, určuje, kolik výpočtů lze provést za jednotku času. Obecně platí, že výkon mikrokontroléru a jeho spotřeba roste s rostoucí taktovací frekvencí. Výkon mikrokontroléru se měří v MIPS (Million Instructions per Second – milion instrukcí za sekundu).

    Termín controller vznikl z anglického slova to control – řídit. Tato zařízení mohou být založena na různých principech činnosti od mechanických nebo optických zařízení až po elektronická analogová nebo digitální zařízení. Mechanická řídicí zařízení mají ve srovnání s elektronickými řídicími jednotkami nízkou spolehlivost a vysoké náklady, takže o takových zařízeních v budoucnu nebudeme uvažovat. Elektronická analogová zařízení vyžadují během provozu neustálé seřizování, což zvyšuje náklady na jejich provoz. Proto se taková zařízení dodnes téměř nepoužívají. Nejběžnějšími řídicími obvody jsou dnes obvody postavené na bázi digitálních mikroobvodů.

    V závislosti na ceně a rozměrech zařízení, které je potřeba ovládat, se také určují požadavky na ovladač. Pokud řídicí objekt zabírá desítky metrů v oblasti, jako jsou automatické telefonní ústředny, základnové stanice celulárních komunikačních systémů nebo radioreléové komunikační linky, pak lze jako řídicí jednotky použít univerzální počítače. V tomto případě lze ovládání provádět prostřednictvím vestavěných portů počítače (LPT, COM, USB nebo Ethernet). V takových počítačích se po zapnutí napájení zadá řídicí program, který z univerzálního počítače udělá ovladač.

    Použití univerzálního počítače jako regulátoru umožňuje rychle vyvíjet nové komunikační systémy, snadno je upgradovat (pouhou změnou programu) a také používat hotové hromadné (a tedy levné) jednotky.

    Pokud má regulátor speciální požadavky, jako je provoz v otřesech, rozšířený teplotní rozsah, vystavení agresivnímu prostředí, pak musí být použity průmyslové verze univerzálních počítačů. Tyto počítače jsou přirozeně mnohem dražší než běžné univerzální počítače, ale přesto vám umožňují ušetřit čas na vývoj systému, protože nemusíte vyvíjet hardware řadiče.

    Tento článek (nebo spíše sérii článků ...) jsem se rozhodl věnovat mikrokontrolérům Atmel. Samozřejmě, toto téma je otřepané ... ALE! Z vlastní zkušenosti vím, že je velmi, velmi těžké poznat pravdu mezi tímhle, sorry, BADDACK! Proto jsem se rozhodl, že se pokusím vnést alespoň trochu jasno do hlav těch, kteří touží poznat tuto strašlivou bestii, zvanou „Mikrokontrolér“.

    Účelem tohoto článku je tedy popsat a pokud možno ukázat celý proces tvorby zařízení založeného na mikrokontroléru od začátku. Tedy z nápadu (například jsme se rozhodli sestavit novoroční blikačku, podobnou té, kterou popisuje respektovaná alx32 v článku ...) před inkarnací v žláze. Samozřejmě obejít všechny mezistupně: zadání problému, výběr MC, výběr svazku, formulování algoritmu, napsání programu, ladění, vytvoření desky a nejdlouho očekávanější spuštění !!!

    Aktualizace: Soubory přidány. Tak, úkol: potřebujeme vytvořit zařízení, které může svítit v určitém pořadí (ať je to střídavě), N-tý počet LED (ať je to 8 kusů).
    (to je pro začátek......)


    Nyní můžete začít programovat. Můžete psát čímkoli, ale začátečníkům radím, abyste dali přednost jazyku C, protože programování je jednodušší a přehlednější. Osobně používám kompilátor Code Vision AVR(je v archivu souborů), další výpisy programů budou uvedeny speciálně pro tento překladač.

    Rozhodněte se o algoritmu. Po určité době potřebujeme zapnout jeden z výstupů MK.

    Můžete jej zapnout/vypnout různými způsoby:
    - přiřadit hodnoty každému výstupu zvlášť;
    - zaznamenejte hodnoty všech výstupů najednou.

    Hodnoty (sekvence) lze získat:
    - ručním zadáním všech příkazů;
    - z pole;
    - matematická metoda.

    Časový interval lze nastavit:
    - funkce zpoždění (zpoždění);
    - prostřednictvím časovače.

    Pojďme experimentovat se všemi těmito metodami. Nejprve je ale potřeba připravit...

    K vytvoření programového polotovaru používáme zabudovaný generátor kódu CVAVR. Chcete-li to provést, spusťte program, stiskněte Soubor -> Nový, v okně, které se otevře, vyberte "projekt" a klikněte OK. Otázka "Použít generátor kódu?" odpovídáme „Ano“.
    Zobrazí se okno generátoru kódu. V něm vyberte typ MK a jeho hodinovou frekvenci, zbytek nechte tak, jak je:


    Dále přejděte na kartu Porty a tam uvnitř "PortB" a vložte následující:


    Takže jsme definovali všechny piny portu B jako výstupy a nuly znamenají, že po zapnutí napájení budou nastaveny na logický " 0 ".
    Zbytek funkcí nepotřebujeme.

    Klikněte "Soubor -> Generovat, uložit a ukončit", vyberte, kam chcete uložit soubory projektu, a uvidíte okno s kódem vytvořeným generátorem.

    Nyní zadáme náš kód do programu.
    Nejjednodušší implementací (i když ne nejkrásnější z programovacího hlediska) je zapsat hodnoty každého výstupu a provést zpoždění pomocí funkce zpoždění.

    delay_ms( X); - zpoždění pro X milisekundy

    delay_us( X); - zpoždění pro X mikrosekundách

    PORTB- port, se kterým pracujeme.

    PORTB. X - odvolání k závěru X přístav B

    Na konci textu najděte následující řádky


    Toto je nekonečná smyčka (tj. běží po celou dobu, když je napájení zapnuto) našeho programu. Vše před ním jsou příkazy přednastavení mikrokontroléru. Řádky začínající na “//” - komentáře, také se občas hodí k přečtení.

    Vyloučený fragment. Náš časopis existuje z darů čtenářů. K dispozici je pouze plná verze tohoto článku


    Klepněte na tlačítko Vytvořte projekt

    (na panelu nástrojů).

    Proklínání?
    A správně! Kompilátor nezná funkci delay_ms(), takže je třeba zadat soubor, ve kterém je tato funkce popsána.
    Chcete-li to provést, na úplný začátek textu programu musíte vložit řádek #include (tady středník Nepotřebuji!)
    Přibližně takto:

    Znovu stiskněte magické tlačítko.
    Projekt vytvořen.
    Nyní se ve složce, kam jsme uložili samotný projekt, objevil soubor Název projektu.hex- toto je firmware mikrokontroléru!

    Ale počkejte, nespěchejte s páječkou... Učíme se programovat, ne pájet!

    Proto navrhuji otestovat náš program ve virtuálním režimu, konkrétně v tak nádherném a milovaném produktu Labcenter Electronics - Proteus VSM Tam můžete simulovat naprosto libovolné obvody (existují dokonce i Laplaceova primitiva!). Můžete si ho vzít v přiloženém archivu spolu se soubory projektu. Pravda, verze není úplně nakřivo, takže uložení nefunguje. Co s tím dělat, řeknu v samostatném článku.

    Takže začneme ISIS(prostředí pro vývoj schémat zapojení). V tomto okně stiskněte tlačítko „P“.

    V souladu "Klíčová slova" vstoupit "attiny2313" a vpravo dostaneme:


    Není moc z čeho vybírat, tak dvakrát klikneme na tento osamělý řádek a vlevo v hlavním okně vidíme:


    To znamená, že prvek byl přidán.

    Nyní zadejte do pole "Klíčová slova" slova LED-ČERVENÁ A "RES". Přidejte do projektu rezistor a LED a zavřete volič prvku.

    Pokus o sestavení schématu(závěr RESETOVAT nezapomeňte připojit na + 5V, jinak to nebude fungovat! A to je v životě také žádoucí!)

    Zde je malá nápověda:

    A chcete-li upravit vlastnosti prvků, stačí na ně dvakrát kliknout.

    Shromážděno? Doufám, že nezranili sebe, své blízké a okolní předměty.

    Omlouvám se za výsměch, ale pokud na to přijdete sami, nezapomenete na to, takže, pochopte, program je velmi výkonný a stojí za to si jej osvojit!

    Když je obvod sestaven, můžete flashnout náš virtuální MK. Chcete-li to provést, dvakrát na něj klikněte a zobrazte okno.

    Ahoj všichni. Jak jsme slíbili, ode dneška začínáme studovat programování mikrokontrolérů AVR (na příkladu Atmega8). Pro stejné čtenáře, kteří se zajímají o programování desky Arduino, se nebojte, články z této oblasti budou pokračovat 🙂 .

    Můžete si položit logickou otázku, proč z řady dalších mikrokontrolérů (dále jen MK) to bylo právě ono MK AVR. Důvodů je několik:

    • MK AVR univerzálně dostupné;
    • Mají poměrně nízkou cenu;
    • Na internetu lze najít mnoho bezplatných programů, které pomohou při práci s daty MK.
    • Kromě toho existuje velké množství psaných článků a fór, kde můžete klást otázky týkající se dat. MK AVR.

    Jak jsem řekl dříve, použijeme MK jako testovací subjekt Atmega8. Proč on?

    Tento mikrokontrolér se může pochlubit 3 I/O porty. Kromě toho je to docela levné.

    Porty rozumí datové sběrnice, které mohou pracovat ve dvou opačných směrech (tedy pro výstup a vstup).

    Na Atmega8 3 porty. Port B se skládá z 8 pinů (číslovaných 0,1,2,3,4,5,6,7). Port C se skládá ze 7 pinů (číslovaných 0,1,2,3,4,5,6). Port D se skládá z 8 pinů (číslovaných 0,1,2,3,4,5,6,7).

    Mikrokontrolér lze napájet z 3,3 a 5 V. Při napájecím napětí 5 V je maximální taktovací frekvence 16 MHz a při napájecím napětí 3,3 V je maximální hodinová frekvence 8 MHz. Prozatím se nezabývejme taktovacími frekvencemi.

    Napájení je přivedeno na kolík 7 a zem je připojena na kolík 8.

    Stáhnout zdarma. Staženo, nainstalováno, spuštěno 🙂

    První věcí, kterou je třeba s Atmel Studiem začít, je vytvořit projekt.

    Vyberte Soubor -> nový -> projekt .

    Otevře se okno pro výběr. Vyberte složku "Procházet", do které budeme ukládat napsané projekty. Předem vytvořená složka pro projekty.

    Projektu přiřadíme název, v mém případě lekci_avr_1

    Věnujte pozornost zaškrtávacímu poli "vytvořit adresář pro řešení". Pokud je zaškrtávací políčko zaškrtnuté, pak se ve složce, kterou jsme zvolili pro ukládání projektů, vytvoří samostatná složka pro aktuální projekt.

    To je vše - projekt je vytvořen.

    Pojďme nastavit projekt, který jsme vytvořili. Stiskněte Projest -> vlastnosti lekci_avr_1 nebo (alt+F7)

    Přejděte na kartu Nástroj. Vyberte si simulátor. Akce, které jsme provedli, umožní ladění napsaného kódu. Změny uložíme. Změny můžete uložit do jednoho (aktuálního) souboru nebo do všech souborů projektu najednou. Zavřete nastavení.