itthon / A PC elsajátítása / AVR mikrokontrollerek. A programozás alapjai. AVR. Képzés. Bevezető. Mi az Avr sorozatú mikrokontroller?

AVR mikrokontrollerek. A programozás alapjai. AVR. Képzés. Bevezető. Mi az Avr sorozatú mikrokontroller?

AVR család – 8 bites mikrokontrollereket tartalmaz a feladatok széles skálájához. A nagyszámú bemenettel/kimenettel rendelkező összetett projektekhez az AVR Mega és AVR xmega mikrokontrollerek állnak rendelkezésre, amelyek 44-100 tűs kiszerelésben kaphatók, és akár 1024 kB Flash memóriával rendelkeznek, működési sebességük pedig nagyobb. 32 millió művelet másodpercenként. Szinte minden modell képes PWM generálására, beépített ADC és DAC.

Rádióamatőrök milliói fejlesztenek érdekes projekteket az AVR-en - ez a legnépszerűbb MK-család, sok könyvet írtak róluk oroszul és a világ más nyelvein.

Érdekesség: a firmware-hez programozó kell, az egyik legelterjedtebb az AVRISP MKII, amit egyszerűen elkészíthetsz az Arduino-ból.

Az AVR család népszerűsége évek óta magas szinten maradt, az elmúlt 10 évben az irántuk való érdeklődést az Arduino projekt, a digitális elektronika világába való egyszerű belépést segítő tábla gerjesztette.

Alkalmazási területei különböző Tiny, Mega

A mikrokontroller alkalmazási körét nem lehet egyértelműen leírni, mert korlátlan, de az alábbiak szerint osztályozható:

  1. Az apró AVR technikai szempontból a legegyszerűbb. Kevés a memóriájuk és a jelek csatlakoztatására szolgáló érintkezők, az ára is megfelelő. Ez azonban ideális megoldás egyszerű projektekhez, kezdve az autó belső világításának automatikus vezérlésétől a barkácsoló elektronika javításához szükséges oszcilloszkópos szondákig. Az Arduino-kompatibilis projektben - Digisparkban is használják őket. Ez a harmadik féltől származó Arduino legkisebb verziója; USB flash meghajtó formátumban készült.
  2. A MEGA család sokáig a vezető maradt a haladó rádióamatőrök között, erősebbek, nagyobb a memóriakapacitásuk és a tűk száma, mint a Tinyben. Ez összetett projekteket tesz lehetővé, de a család túl széles ahhoz, hogy röviden leírjuk. Ezeket használták az első Arduino táblákban, a jelenlegi táblák főleg ATMEGA-val vannak felszerelve

A kiegészítő erősítők nélküli MK kimenete például LED-eket vagy LED-mátrixot használ indikátorként.

AVR xMega vagy régebbi mikrokontrollerek

Az Atmel fejlesztői az AVR xMega-t erősebb MK-ként hozták létre, miközben továbbra is az AVR családhoz tartozott. Erre azért volt szükség, hogy megkönnyítse a fejlesztő munkáját, amikor egy erősebb családhoz költözik.

Az AVR xMega-nak két iránya van:

  • Az 1,8-2,7 V tápfeszültségű MK-k 12 MHz-ig működnek, bemeneteik 3,3 V feszültségnek ellenállnak;
  • A 2,7-3,6 voltos tápfeszültségű MK-k már magasabb frekvenciákon is működhetnek - 32 MHz-ig, a bemenet pedig 5 voltnak ellenáll.

Érdemes megjegyezni: Az AVR xMega kiválóan működik önálló rendszerekben, mivel alacsony az energiafogyasztásuk. Például: amikor az időzítők és a valós idejű órák működnek, az RTC-k 2 mA áramot fogyasztanak, és készen állnak a működésre külső megszakításokkal vagy időzítő túlcsordulással, valamint idővel. Különféle 16 bites időzítőket használnak különféle funkciók végrehajtására.

USB porttal működik

Kezdjük azzal, hogy a mikrokontroller programozásához soros portot kell használni, de a modern számítógépeken gyakran hiányzik a COM port. Hogyan lehet mikrokontrollert csatlakoztatni egy ilyen számítógéphez? Ha USB-UART átalakítókat használ, ez a probléma nagyon könnyen megoldható. A legegyszerűbb átalakítót FT232 és CH340 mikroáramkörök segítségével állíthatja össze, diagramját az alábbiakban mutatjuk be.

Egy ilyen konverter Arduino UNO és Aduino Nano táblákon található.

Néhány AVR mikrokontroller rendelkezik beépített (hardveres) USB-vel:

  • ATmega8U2;
  • ATmega16U2;
  • ATmega32U2.

Ez a megoldás a számítógép és az Arduino mega2560 közötti USB-n keresztüli kommunikáció megvalósítására szolgál, amelyben a mikrokontroller csak az UART-ot „érti”.

Az AVR mikrokontrollerek DAC és ADC célja

A digitális-analóg konverterek (DAC) olyan eszközök, amelyek az egyesek és nullák (digitális) jeleit analóggá alakítják (egyenletesen változó). A fő jellemzők a bitmélység és a mintavételi frekvencia. Az ADC az analóg jelet digitális formává alakítja.

ADC-támogatással rendelkező portokra van szükség az analóg érzékelők, például rezisztív típusú érzékelők mikrokontrollerhez való csatlakoztatásához.

A DAC a digitális szűrőkben találta meg alkalmazását, ahol a bemeneti jelet szoftveresen dolgozzák fel, és analóg formában adják ki a DAC-n keresztül; lent láthatóak a vizuális oszcillogramok. Az alsó grafikon a bemeneti jel, a középső grafikon ugyanaz a jel, de egy analóg szűrővel feldolgozva, a felső grafikon pedig a Tiny45 mikrokontroller digitális szűrője. Egy szűrő szükséges a jel kívánt frekvenciatartományának kialakításához, valamint egy bizonyos alakú jel kialakításához.


Az ADC használatára példa a mikrokontrolleren lévő oszcilloszkóp. Sajnos a mobilszolgáltatók és a PC-processzor frekvenciáit nem lehet majd követni, de az 1 MHz-es nagyságrendű frekvenciák könnyen megoldhatók. Kiváló asszisztens lesz, amikor kapcsolóüzemű tápegységekkel dolgozik.

És itt van egy részletes videó a projektről, összeszerelési utasítások és tippek a szerzőtől:

Milyen irodalmat érdemes olvasnom a kezdőknek szánt AVR mikrokontrollerekről?

Az irodalom hegyei születtek fiatal szakemberek képzésére, nézzünk meg néhányat közülük:

  1. Evstifeev A.V. "A Mega család AVR mikrokontrollerei." A könyv részletesen tárgyalja a mikrokontroller architektúrát. Le van írva minden regiszter és időzítő rendeltetése, valamint működési módjai. Tanulmányozták a külvilággal való kommunikációs interfészek működését, az SPI-t stb.. A parancsnoki rendszert egy átlagos rádióamatőr számára feltárják. Az „AVR Microcontrollers of the Mega Family: User Guide” című könyv anyaga segít tanulmányozni a chip szerkezetét és az egyes csomópontok célját, ami minden mikrokontroller programozó számára minden bizonnyal fontos.
  2. Belov A.V. – „AVR mikrokontrollerek a rádióamatőr gyakorlatban.” Ahogy a cím is sugallja, ez a könyv nagyrészt a mikrokontrollerekkel való munka gyakorlati oldalával foglalkozik. Részletesen megvizsgálják a klasszikussá vált ATiny2313 mikrokontrollert, valamint számos összeszerelési áramkört.
  3. Hartov V.Ya. „AVR mikrokontrollerek. Workshop kezdőknek." Segít megérteni az AVR studio 4-et, valamint az STK kezdőkészletet Megtanulja, hogyan kell dolgozni soros és párhuzamos interfészekkel, mint például UART, I2C és SPI. Könyv „AVR mikrovezérlők. Workshop kezdőknek" című művét az MSTU egyik tanára írta. N.E. Bauman, és ott használják a téma tanulmányozására.

A mikrokontrollerek e családjának tanulmányozása sok elektronikai rajongónak segített elkezdeni a munkát és a projektek fejlesztését. Érdemes egy népszerű családdal kezdeni, hogy mindig hozzáférhessünk az információk tengeréhez.

A belépő szintű rádióamatőrök között csak egy versenytársa van az AVR - PIC mikrokontrollereknek.

A mikrokontrollerek kicsi, de ugyanakkor nagyon kényelmes eszközök azok számára, akik különféle elképesztő robotizált vagy automatizált dolgokat szeretnének otthon készíteni. Ez a cikk az AVR programozást kezdőknek, a folyamat különböző szempontjait és árnyalatait tárgyalja.

Általános információ

Mikrokontrollerek mindenhol megtalálhatók. Hűtőszekrényekben, mosógépekben, telefonokban, ipari gépekben, okosotthonokban és sok más műszaki eszközben megtalálhatók. Széles körben elterjedt alkalmazásuk a bonyolultabb és nagyszabású analóg eszközáramkörök helyettesítésére való képességnek köszönhető. Az AVR MK programozása lehetővé teszi az elektronikus eszközök autonóm vezérlését. Ezeket a mikrokontrollereket egy egyszerű számítógépnek tekinthetjük, amely kölcsönhatásba léphet külső berendezésekkel. Így képesek tranzisztorokat nyitni/zárni, adatokat fogadni az érzékelőktől és megjeleníteni a képernyőkön. A mikrokontrollerek a bemeneti információk különféle feldolgozását is elvégezhetik, hasonlóan a személyi számítógépekhez. Ha elsajátítja az AVR programozást a semmiből, és eléri a professzionális szintet, szinte korlátlan lehetőségei lesznek a különféle eszközök I/O portok segítségével történő vezérlésére, illetve kódjuk megváltoztatására.

Egy kicsit az AVR-ről

A cikk az Atmel által gyártott mikrovezérlők családját tárgyalja. Elég jó teljesítményük van, ami lehetővé teszi, hogy sok amatőr eszközben használják őket. Széles körben használják az iparban. Ebben a technikában megtalálható:

  1. Belföldi. Mosógépek, hűtők, mikrohullámú sütők stb.
  2. Mobil. Robotok, kommunikáció stb.
  3. Számítástechnika. Perifériavezérlő rendszerek, alaplapok.
  4. Szórakoztató. Ékszerek és gyerekjátékok.
  5. Szállítás. Járműbiztonsági és motorvezérlő rendszerek.
  6. Ipari berendezések. Gépvezérlő rendszerek.

Ez természetesen nem vonatkozik minden területre. Ott használatosak, ahol előnyös nem egy vezérlőchip-készletet, hanem egy mikrokontrollert használni. Ez az alacsony energiafogyasztás miatt lehetséges, és C és Assembler nyelveket használnak a programok írásához, kissé módosítva a mikrokontroller család számára. Az ilyen változtatásokra a gyenge számítási képességek miatt van szükség, amelyeket általában több tíz kilobájtban számolnak. Az AVR programozás ezeknek a nyelveknek a tanulása nélkül nem lehetséges.

Hogyan szerezd be az első mikrokontrolleredet?

Az AVR programozáshoz:

  1. A szükséges fejlesztési környezet rendelkezésre állása.
  2. Valójában maguk a mikrokontrollerek.

Tekintsük a második pontot részletesebben. Három lehetőség van a szükséges eszköz beszerzésére:

  1. Vásárolja meg közvetlenül magát a mikrovezérlőt.
  2. Szerezzen be egy eszközt a tervező részeként (például Arduino).
  3. Szerelje össze a mikrokontrollert saját maga.

Az első pontban nincs semmi bonyolult, ezért térjünk át a másodikra ​​és a harmadikra.

Szerezzen be egy eszközt a tervező részeként

Példaként a jól ismert Arduino lesz a választás. Ez egyben kényelmes platform a különféle elektronikus eszközök gyors és minőségi fejlesztéséhez. Az Arduino kártya egy meghatározott komponenskészletet tartalmaz a működéshez (különböző konfigurációk vannak). Tartalmaznia kell egy AVR vezérlőt. Ez a megközelítés lehetővé teszi az eszköz fejlesztésének gyors megkezdését, nem igényel különleges készségeket, jelentős képességekkel rendelkezik a további kártyák csatlakoztatása szempontjából, és az interneten is sok információt találhat az érdeklődésre számot tartó kérdésekről. De voltak árnyoldalai is. Egy Arduino megvásárlásával az ember megfosztja magát attól a lehetőségtől, hogy mélyebben belemerüljön az AVR programozásba, hogy jobban megértse a mikrokontrollert és működésének sajátosságait. Szintén a negatívumot növeli a viszonylag szűk modellválaszték, ami miatt gyakran kell konkrét feladatokhoz táblákat vásárolni. Egy másik sajátosság, hogy itt az „SI”-ben történő programozás erősen eltér a szabványos formától. Minden hiányossága ellenére az Arduino kezdők számára is alkalmas a tanulásra. De nem szabad visszaélni vele.

Önszerelő

Meg kell jegyezni, hogy az AVR mikrokontrollerek meglehetősen barátságosak a kezdők számára. Ön is összeszerelheti őket a rendelkezésre álló, egyszerű és olcsó alkatrészek felhasználásával. Ha az előnyökről beszélünk, akkor ez a megközelítés lehetővé teszi, hogy jobban megismerje az eszközt, önállóan válassza ki a szükséges összetevőket, igazítsa a végeredményt a követelményekhez, a szabványos programozási nyelvek használatát és az alacsony költségeket. Az egyetlen hátránya, amelyet meg lehet jegyezni, az első alkalommal történő önszerelés nehézsége, valamint a szükséges ismeretek és készségek hiánya.

Hogyan dolgozz?

Tehát tegyük fel, hogy a mikrokontrollerrel kapcsolatos probléma megoldódott. Továbbá úgy kell tekinteni, hogy önállóan vásárolták vagy vásárolták meg. Mi kell még az AVR programozás elsajátításához? Ehhez szükség van egy fejlesztői környezetre (alapként egy normál jegyzettömb is megteszi, de javaslom a Notepad++ használatát). Bár más programok is elérhetők az AVR-ek programozására, ez a szoftver minden követelményt képes lesz kezelni. Programozó is szükséges. Megvásárolhatja a helyi üzletben, megrendelheti online, vagy összeállíthatja saját maga. Egy nyomtatott áramkör sem ártana. Nem kötelező, de használatával idegeket és időt takaríthat meg. Önállóan is vásárolt/létrehozott. És az utolsó dolog az áramforrás. Az AVR-hez 5 V-os feszültségellátást kell biztosítani.

Hol és hogyan lehet tanulni?

Nem fogsz tudni remekműveket létrehozni a semmiből. Ehhez tudásra, tapasztalatra és gyakorlatra van szükség. De hol szerezhetem be őket? Számos módja van. Kezdetben önállóan keresheti a szükséges információkat a világhálón. Jelentkezhet programozási tanfolyamokra (távról vagy személyesen), hogy elsajátítsa az alapvető munkakészségeket. Mindegyik megközelítésnek megvannak a maga előnyei. Így a távprogramozási tanfolyamok olcsóbbak lesznek, sőt talán ingyenesek is. De ha valami nem sikerül, akkor a személyes órákon egy tapasztalt fejlesztő gyorsan megtalálja a probléma okát. Érdemes lenne megismerkedni a szabadon hozzáférhető szakirodalommal is. Természetesen egyedül könyvekkel nem fogsz boldogulni, de alapvető ismereteket szerezhetsz a készülékről, az „SI”, „Assembler” programozásról és egyéb munkavégzési szempontokról.

I/O portok

Ez egy rendkívül fontos téma. Az I/O portok működésének megértése nélkül az AVR áramkörön belüli programozása egyáltalán nem lehetséges. Végül is a mikrokontroller és a külső eszközök interakciója pontosan azok közvetítésével történik. Első pillantásra egy kezdő számára úgy tűnhet, hogy a port meglehetősen zavaró mechanizmus. Az ilyen benyomás elkerülése érdekében nem vizsgáljuk meg részletesen a működési sémát, hanem csak általános képet kapunk róla. Nézzük a szoftver megvalósítását. Példaként az AtMega8 mikrokontrollerre esett a választás, amely az egyik legnépszerűbb az AVR családban. Az I/O port három regiszterből áll, amelyek felelősek a működéséért. Fizikai szinten lábakként valósulnak meg. Mindegyik egy adott bitnek felel meg a vezérlőregiszterben. Mindegyik láb képes információt bevinni és kiadni. Például csatolhat egy funkciót egy LED gyújtására vagy egy gombnyomás feldolgozására. Egyébként a három említett regiszter: PORTx, PINx és DDRx. Mindegyik nyolcbites (ne feledjük, az AtMega8-at nézzük). Vagyis egy bitet egy adott láb foglal el.

Regisztrálja a műveletet

A tájolás szempontjából a legjelentősebb a DDRx vezérlés. Ez is nyolc bites. Értékei 0 vagy 1 írhatók. Hogyan változik a vezérlő működése nullák és egyesek használatakor? Ha egy bizonyos bit 0-ra van állítva, akkor a megfelelő láb beviteli módba kapcsol. Ebből pedig le lehet majd olvasni a külső eszközökről származó adatokat. Ha 1-re van állítva, a mikrokontroller képes lesz valamit vezérelni (például utasíthat egy tranzisztort, hogy feszültséget adjon át, és világítson egy LED-et). A második legfontosabb a PORTx. Ő irányítja a láb állapotát. Nézzünk egy példát. Tegyük fel, hogy van egy kimeneti portunk. Ha beállítunk egy logikait a PORTx-ben, akkor a mikrokontroller jelet küld a vezérlőkészüléknek, hogy elkezdjen dolgozni. Például kapcsolja be a LED-et. Ha nullát állít be, akkor kialszik. Vagyis nem kell folyamatosan a DDRx vezérlőregiszterrel dolgozni. És végül beszéljünk a PINx-ről. Ez a regiszter felelős a vezérlő érintkezőjének állapotának megjelenítéséért, amikor az bemeneti állapotba van állítva. Megjegyzendő, hogy a PINx csak olvasási módban működik. Nem fogsz tudni beleírni semmit. De a láb aktuális állapotának leolvasása nem okoz gondot.

Munka analógokkal

Az AVR nem az egyetlen mikrokontroller. Ez a piac több nagy gyártó, valamint számos kínai imitátor és házi készítésű készülék között oszlik meg. Sok tekintetben hasonlóak. Például egy PIC/AVR programozása nem sokban különbözik. És ha egy dolgot megértesz, akkor minden mást könnyű megérteni. De ennek ellenére javasoljuk, hogy az AVR-rel induljon útnak a hozzáértő felépítése, fejlesztőbarátsága és a nagyszámú segédanyag jelenléte miatt, így a fejlesztési folyamat jelentősen felgyorsítható.

Biztonsági intézkedések

Az AVR mikrovezérlők „SI” vagy „Assembler” programozása során nagyon óvatosan kell dolgoznia. A tény az, hogy a regiszterek bizonyos kombinációjának beállításával és a belső beállítások megváltoztatásával biztonságosan blokkolhatja a mikrovezérlőt. Ez különösen igaz a biztosítékokra. Ha nem biztos abban, hogy cselekedetei helyesek, akkor jobb, ha megtagadja azok alkalmazását. Ugyanez vonatkozik a programozókra is. Ha gyári berendezést veszel, akkor gond nélkül villog a mikrokontrollerek. Saját összeszereléskor szomorú helyzet adódhat, amikor a programozó blokkolja az eszközt. Ez történhet a programkód hibája vagy magában a kódban lévő problémák miatt. Egyébként egy másik (ezúttal pozitív) pontról, amiről korábban csak futólag volt szó, de soha nem hozták nyilvánosságra teljesen. Ma már szinte minden modern mikrokontroller rendelkezik áramkörön belüli programozási funkcióval. Mit jelent? Tegyük fel, hogy az eszközt a táblára forrasztották. És a firmware megváltoztatásához most nem kell kiforrasztania, mert egy ilyen beavatkozás károsíthatja magát a mikrovezérlőt. Elég a megfelelő érintkezőkhöz csatlakozni és rajtuk keresztül újraprogramozni.

Melyik modellt érdemes választani?

A cikk részeként áttekintették az AtMega8-at. Ez egy meglehetősen közepes mikrokontroller a jellemzőit tekintve, ami ennek ellenére a legtöbb kézművességhez elegendő. Ha valami nagyszabású dolgot szeretne létrehozni, akkor vegyen eredeti szörnyeket, például az Atmega128-at. De tapasztaltabb fejlesztőknek készültek. Ezért, ha nincs elegendő tapasztalata, jobb, ha kicsi és egyszerű eszközökkel kezdi. Ráadásul sokkal olcsóbbak is. Egyetértek, egy dolog véletlenül blokkolni egy mikrokontrollert száz rubelért, de egészen más dolog félezerért. Jobb, ha belevág a dolgok lendületébe, és megérti a működés különböző aspektusait, hogy a jövőben ne veszítsen jelentős összegeket. Kezdetben kezdheti az AtMega8-cal, majd az igényeire összpontosíthat.

Következtetés

Tehát az AVR programozás témája a legáltalánosabb kifejezésekkel foglalkozott. Persze még sok mindent el lehet mondani. Így például nem vették figyelembe a mikrokontrollerek jelölését. És ez sok mindent elmondhat. Tehát a mikrokontrollerek általában 5 V feszültséggel működnek. Míg például az L betű jelenléte azt jelezheti, hogy csak 2,7 V elegendő a készülék működéséhez. Amint látható, a jelölések ismerete néha nagyon fontos szerepet játszhat a készülékek helyes és tartós működésében. . Érdekes téma a mikrokontrollerek működési ideje is. Minden eszközt egy bizonyos időszakra terveztek. Tehát néhányan ezer órát is dolgozhatnak. Másoknak 10.000-es garanciatartalékuk van!

AVR mikrokontrollerek. A programozás alapjai

Az AVR mikrokontrollerek felépítése és főbb jellemzői

Ebben a cikkben megpróbáljuk általánosságban felvázolni, főbb jellemzői, mi van benne, mi kell az AVR mikrokontrollerekkel való munka megkezdéséhez stb.

Mi az a Tiny, Mega?

Vállalat Atmel Az AVR magon alapuló nyolcbites mikrokontrollerek kiterjedt sorát állítja elő, több alcsaládra osztva, amelyek műszaki jellemzőikben, alkalmazásban, árban különböznek:

  • ATtiny– Viszonylag nagy teljesítményt (akár 1,0 MIPS és akár 20,0 MHz-es frekvencián is működőképes), energiahatékonyságot (az ATtiny az egyetlen család, amely képes 0,7 V-os tápfeszültségről működni!) és kompaktságot (az ATtiny az egyetlen család, amely képes 0,7 V tápfeszültségről működni!) olyan alkalmazásokhoz optimalizált AVR mikrokontroller család SOT23-6 tokban vannak mikrokontrollerek - csak 6 tű, és minden érintkezőnek több funkciója van, például: I/O port, ADC bemenet, PWM kimenet stb.). Itt rajzolódik ki alkalmazási körük: olyan eszközök, amelyek kritikusak az ár, az energiafogyasztás, a méret stb.
  • ATmega– AVR mikrokontrollerek családja, amelyet a legkülönfélébb területeken való használatra terveztek, köszönhetően a rendkívül nagy perifériakészletnek, a nagy mennyiségű programmemóriának, a bemeneti/kimeneti portoknak stb. Egyszóval, van hova bővíteni.
  • ATxmega– az AVR mikrokontrollerek új családja az ATmegánál még nagyobb perifériakészlettel (közvetlen memóriaelérési eszköz, DAC, CRC modul, teljes USB interfész, gyorsabb ADC stb.), akár 32,0 MHz-es működési frekvenciával.

Érdemes megjegyezni az összes fenti eszköz fő jellemzőjét: mindegyiknek egyetlen architektúrája van, és ez megkönnyíti a kód átvitelét egyik mikrokontrollerről a másikra.
A mikrokontrollerek DIP és SMD csomagokban is elérhetőek (mindegyiknek megvannak a maga előnyei és hátrányai).

A legnépszerűbb csomagolódobozok a következők:

  • DIP (Dual Inline Package) - ház két sor érintkezővel
  • QFP (Quad Flat Package) - lapos csomag négy sor érintkezővel
  • SOIC (Small-Outline Integrated Circuit) – kis méretű (kis területű) integrált áramkörök

Ami a rádióamatőr gyakorlatot illeti, természetesen a mikrokontrollerek iránti érdeklődés a legnagyobb DIP csomag, mivel ezekkel a legegyszerűbb dolgozni - elég nagy a osztásközük a tüskék között, és ezen kívül használhatunk hozzájuk aljzatokat (ez egy speciális csatlakozó, ahol forrasztás nélkül lehet mikroáramköröket telepíteni).
Általánosságban elmondható, hogy az aljzat rendkívül kényelmes találmány - a tűk mindig sértetlenek, és többször is eltávolíthatja és behelyezheti a mikroáramkört, és sokkal könnyebb prototípusokat készíteni a jövőbeli eszközökről.

AVR mikrokontrollerek tápellátása és órajelezése

AVR mikrokontrollerek CMOS technológiával készült, ami nagyon alacsony energiafogyasztást biztosít. A gyakorlatban a teljesítményfelvétel lineárisan és egyenesen arányos a működési frekvenciával (minél nagyobb a frekvencia, annál nagyobb a teljesítményfelvétel).



Az AVR mikrokontrollerek tápfeszültsége tól 2,7-5,5 V(6.0V a maximum, bár az AVR-em valahogy 7V-on működött - és semmi, a mai napig él). Ez azt jelenti, hogy az AVR közvetlenül vezérelheti, adatokat cserélhet stb. különféle eszközökkel (3,3V-tűrő és 5V-tűrő egyaránt), logikai szintátalakítók használata nélkül. Az analóg jelek pontosabb feldolgozása érdekében az AVR külön érintkezőket biztosít a mikrokontroller analóg részének táplálására, amely olyan eszközöket tartalmaz, mint az ADC, DAC és analóg komparátor. Ezenkívül az AVR mikrokontrollerek számos „alvó üzemmóddal” rendelkeznek a lehető legjobb energiamegtakarítás érdekében.

Ezenkívül a mikrokontroller minden érintkezője (a működési frekvenciától és a tápfeszültségtől függően) képes külső eszközöket akár max. 40,0 mA(maximum!), de a mikrokontrollerről minden „letölthető/letölthető”. 200,0 mA-ig(maximális!).

Az órajelek frekvenciatartománya a „családi rangtól” függően eltérő (az ATtiny az AVR mikrokontrollerek legfiatalabb családja, az ATxMega pedig a legrégebbi) Egyes képviselőknél, különösen az ATtiny családnál, a működési frekvencia elérheti a 20,0 MHz-et, az ATmegánál ez nem haladja meg a 16,0 MHz-et, míg az ATxMega nem haladja meg a 32,0 MHz-et. Ezenkívül minden AVR mikrokontroller rendelkezik egy belső RC oszcillátorral 8,0 MHz-ig, amely lehetővé teszi, hogy külső órajelforrás nélkül is működjön.

Az Atmel a szabvány fele maximális működési frekvenciájú mikrokontrollereket gyárt (az energiamegtakarítás növelése érdekében), ezért vásárláskor érdemes odafigyelni a mikrokontrollerek kódolására. Részletes információ arról, hogy melyik mikrokontroller milyen frekvencián és tápfeszültségen működik, milyen kódolások állnak rendelkezésre, ennek a mikrokontrollernek a csomagolása stb. minden adatlap „Rendelési információk” részében található.

Az alábbiakban egy példa táblázat látható a mikrokontroller adatlapjáról ATtiny13. A "Rendelési kód" oszlopban láthatja a kódolások közötti különbségeket, és nem nehéz kitalálni, hogy mihez kapcsolódnak.



Mi van az AVR mikrokontrollerben?

Ahogy az előszóban már szerepelt, AVR mikrokontrollerek Harvard architektúrájúak (egy ilyen architektúra fő jellemzője, hogy a programmemória és a RAM, valamint a hozzájuk tartozó hozzáférési buszok el vannak választva a parancsvégrehajtás sebességének növelése érdekében: miközben az egyik parancsot végrehajtják, a következőt lekérik a programból memória) RISC processzorral, 1,0 MIPS sebességgel. Minden mikrokontroller, modelltől és elrendezéstől függetlenül, ugyanazzal a központi feldolgozó egységgel (processzor/mag) rendelkezik. Egyetlen mag univerzálisabbá tesz egy tetszőleges nyelven írt programot, és ha szükséges, bármilyen projektben lecserélhető, mondjuk egy drágább vezérlő egy másik olcsóbbra, minimális kódmódosítással.

RISC(Reduced Instruction Set Computer) – processzor egyszerű összeszerelési utasításokkal (összeadás, kivonás, balra/jobbra eltolás, „logikai ÉS” stb.), minden utasítás fix hosszúságú, a processzor nagyszámú általános utasítást tartalmaz célregiszterek stb. Ahhoz, hogy például valamilyen átlagos matematikai egyenletet tudjon kiszámítani, a processzornak több egyszerű összeállítási utasítást kell végrehajtania, ellentétben a CISC processzorral, amelynek „minden alkalomra” vannak utasításai. Az AVR azonban nem egészen RISC -processzor,mivel nem minden összeállítási utasítás fix formátumú.A legtöbb 16 bites,a többi 32bites.Ez azt jelenti,hogy minden utasítás 16 vagy 32 bitet foglal el a programmemóriában.Egyébként a nem rögzített Az összeszerelési utasítások hossza teszi a processzort: Advanced Virtual RISC processor (AVR).

MIPS(Million Instructions Per Second) – Az AVR mikrokontrollerek (körülbelül) millió utasítás végrehajtására képesek 1,0 MHz-en, vagy egyszerűen fogalmazva, a legtöbb összeállítási utasítás egyetlen órajel ciklusban kerül végrehajtásra.



Az AVR mikrokontroller agya a központi feldolgozó egysége (CPU/mag).

A processzor néhány összetevője:

Számtani logikai egység

Program számláló

Stack Pointer

  • Állapotnyilvántartás
  • Flash program memória
  • Adatmemória

Általános célú nyilvántartások

Perifériás regiszterek (I/O regiszterek)

RAM memória

Óra rendszer. Ez a rendszer a szív- és érrendszerhez hasonlítható

Megszakítási egység

Perifériás eszközök, felsorolok néhányat közülük:

I/O portok

EEPROM memória

USB (csak xMega), USART, I2C, SPI, JTAG interfészek

Watchdog, időzítő/számláló (PWM oszcillátorral, rögzítés/összehasonlítás stb.)

ADC, DAC (csak xMega), analóg komparátor

Külső megszakító modulok

A különböző családok (Tiny, Mega és xMega) perifériáinak készlete és ezeknek a családoknak a különböző mikrokontrollerjei eltérőek. Vannak olyan mikrokontrollerek, amelyek sokféle perifériás eszközzel vannak megpakolva, de a költségkritikus fejlesztésekhez is léteznek kis (szükséges) perifériával rendelkező mikrokontrollerek.

Az AVR mikrokontrollerek egyik előnye, hogy a perifériás eszközöket különféle közös üzemmódokban használhatják, ami nagyon gyakran leegyszerűsíti a fejlesztő feladatát. Az AVR beépített rendszerrel is rendelkezik a tápfeszültségszint visszaállítására és felügyeletére (System Control and Reset), amely biztosítja a mikrokontroller normál indítását és szükség esetén megbízható leállítását.

A perifériák vezérlési/állapotregiszterei az Adatmemória területen, az általános célú regiszterek és a RAM között helyezkednek el, ami nagy teljesítményt biztosít a perifériákkal végzett munka során. A fejlesztő természetesen teljes hozzáféréssel rendelkezik ezekhez a regiszterekhez (I/O Registers).

Mi kell a mikrokontroller működéséhez?

  • programot írni (program). Egy olyan program/algoritmus megírásához, amelyre a mikrokontroller működni fog, szüksége lesz egy integrált fejlesztői környezetre az AVR mikrokontrollerekhez, amely tartalmaz egy kód-/szövegszerkesztőt, fordítót, linkert és egyéb segédprogramokat.
  • áramkör tervezés. A program önmagában nem elég a mikrokontroller működéséhez, egy minimális készlet (egy külső elektronikai eszköz készlete) is szükséges ahhoz, hogy a mikrokontroller tápfeszültséget és órajelet biztosítson, hogy legalább a mikrokontroller magja működjön.
A következő ábra a normál működéshez szükséges „klasszikus” mikrokontroller készletet mutatja be.


Az ábra az ATmega16 mikrokontroller minimális áramköri követelményeit mutatja. Ezzel a kapcsolási sémával az AVR mikrokontroller magja működésbe lép, az összes bemeneti/kimeneti portot és egyéb perifériás eszközöket használhatja. Röviden: a mikrokontroller teljes harckészültségben van. Például egy ADC vagy analóg komparátor használatának megkezdéséhez először programozottan konfigurálja a perifériás eszközt annak vezérlő/felügyeleti regiszterei segítségével, hogy beállítsa a kívánt üzemmódot stb., majd a vizsgált jeleket a készülék bemeneteire kell alkalmazni. megfelelő perifériás eszköz.

- Kvarc és kondenzátorok A C1, C2 (mindegyik 22 pF) kiváló minőségű órajelet biztosít a mikrokontrollernek és minden perifériás eszközének (maximális frekvencia - 16,0 MHz).

R1 ellenállás(10K), magas szintet biztosít a RESET bemeneten, ami szükséges a mikrokontroller stabil működéséhez. Ha a mikrokontroller működése közben ezen a tűn a feszültség egy bizonyos szint alá esik, a mikrokontroller alaphelyzetbe áll, és a tervezett algoritmus működése megszakadhat.

- ISP csatlakozóáramkörön belüli programozáshoz használjuk, vagyis a mikrokontroller memóriájába írt programot közvetlenül a kártyára kell írni (anélkül, hogy a mikrovezérlőt kivennénk a készülékből).

- Fojtószelep L1és a C3, C4 kondenzátorok tápfeszültséget biztosítanak az analóg perifériák számára, valamint egyes I/O portok regisztereit. Ha a mikrokontrollernek nincs analóg része, akkor nincsenek analóg tápcsatlakozók, így ezekre az alkatrészekre nincs szükség. A mikrokontroller egyszerűsített bekötése a következő: először is, mivel a mikrokontrollertől megfosztották a külső órajelet, a megfelelő biztosítékbitek beállításával (a mikrokontroller egyfajta korlátozó működési paraméterei) jeleznie kell, hogy az órajel a belső RC oszcillátorból érkezik. ).
A belső oszcillátor maximális frekvenciája 8,0 MHz, ami azt jelenti, hogy a mikrokontroller nem fog tudni a maximális frekvenciáján (teljesítményén) működni.
Másodszor, a mikrokontroller analóg része (valamint a bemeneti/kimeneti portok egyes regiszterei) nem rendelkezik áramforrással, ami kizárja azok használatát.
Harmadszor, nincs csatlakozó az áramkörön belüli programozáshoz, így ahhoz, hogy a firmware-t a mikrokontroller memóriájába írhassa, el kell távolítania az eszközről, be kell írnia valahova, majd vissza kell tennie a helyére. Amint Ön is megérti, ez nem túl kényelmes (eltávolítani/behelyezni, forrasztani/kiforrasztani), és mind a mikrokontroller károsodásához vezethet (törhetnek a lábak, túlmelegedhetnek a forrasztás miatt stb.), mind a közeli eszközökben - csatlakozó, pályák a fedélzeten stb.

AVR család – 8 bites mikrokontrollereket tartalmaz a feladatok széles skálájához. A nagyszámú bemenettel/kimenettel rendelkező összetett projektekhez az AVR Mega és AVR xmega mikrokontrollerek állnak rendelkezésre, amelyek 44-100 tűs kiszerelésben kaphatók, és akár 1024 kB Flash memóriával rendelkeznek, működési sebességük pedig nagyobb. 32 millió művelet másodpercenként. Szinte minden modell képes PWM generálására, beépített ADC és DAC.

Rádióamatőrök milliói fejlesztenek érdekes projekteket az AVR-en - ez a legnépszerűbb MK-család, sok könyvet írtak róluk oroszul és a világ más nyelvein.

Érdekesség: a firmware-hez programozó kell, az egyik legelterjedtebb az AVRISP MKII, amit egyszerűen elkészíthetsz az Arduino-ból.

Az AVR család népszerűsége évek óta magas szinten maradt, az elmúlt 10 évben az irántuk való érdeklődést az Arduino projekt, a digitális elektronika világába való egyszerű belépést segítő tábla gerjesztette.

Alkalmazási területei különböző Tiny, Mega

A mikrokontroller alkalmazási körét nem lehet egyértelműen leírni, mert korlátlan, de az alábbiak szerint osztályozható:

  1. Az apró AVR technikai szempontból a legegyszerűbb. Kevés a memóriájuk és a jelek csatlakoztatására szolgáló érintkezők, az ára is megfelelő. Ez azonban ideális megoldás egyszerű projektekhez, kezdve az autó belső világításának automatikus vezérlésétől a barkácsoló elektronika javításához szükséges oszcilloszkópos szondákig. Az Arduino-kompatibilis projektben - Digisparkban is használják őket. Ez a harmadik féltől származó Arduino legkisebb verziója; USB flash meghajtó formátumban készült.
  2. A MEGA család sokáig a vezető maradt a haladó rádióamatőrök között, erősebbek, nagyobb a memóriakapacitásuk és a tűk száma, mint a Tinyben. Ez összetett projekteket tesz lehetővé, de a család túl széles ahhoz, hogy röviden leírjuk. Ezeket használták az első Arduino táblákban, a jelenlegi táblák főleg ATMEGA-val vannak felszerelve

A kiegészítő erősítők nélküli MK kimenete például LED-eket vagy LED-mátrixot használ indikátorként.

AVR xMega vagy régebbi mikrokontrollerek

Az Atmel fejlesztői az AVR xMega-t erősebb MK-ként hozták létre, miközben továbbra is az AVR családhoz tartozott. Erre azért volt szükség, hogy megkönnyítse a fejlesztő munkáját, amikor egy erősebb családhoz költözik.

Az AVR xMega-nak két iránya van:

  • Az 1,8-2,7 V tápfeszültségű MK-k 12 MHz-ig működnek, bemeneteik 3,3 V feszültségnek ellenállnak;
  • A 2,7-3,6 voltos tápfeszültségű MK-k már magasabb frekvenciákon is működhetnek - 32 MHz-ig, a bemenet pedig 5 voltnak ellenáll.

Érdemes megjegyezni: Az AVR xMega kiválóan működik önálló rendszerekben, mivel alacsony az energiafogyasztásuk. Például: amikor az időzítők és a valós idejű órák működnek, az RTC-k 2 mA áramot fogyasztanak, és készen állnak a működésre külső megszakításokkal vagy időzítő túlcsordulással, valamint idővel. Különféle 16 bites időzítőket használnak különféle funkciók végrehajtására.

USB porttal működik

Kezdjük azzal, hogy a mikrokontroller programozásához soros portot kell használni, de a modern számítógépeken gyakran hiányzik a COM port. Hogyan lehet mikrokontrollert csatlakoztatni egy ilyen számítógéphez? Ha USB-UART átalakítókat használ, ez a probléma nagyon könnyen megoldható. A legegyszerűbb átalakítót FT232 és CH340 mikroáramkörök segítségével állíthatja össze, diagramját az alábbiakban mutatjuk be.

Egy ilyen konverter Arduino UNO és Aduino Nano táblákon található.

Néhány AVR mikrokontroller rendelkezik beépített (hardveres) USB-vel:

  • ATmega8U2;
  • ATmega16U2;
  • ATmega32U2.

Ez a megoldás a számítógép és az Arduino mega2560 közötti USB-n keresztüli kommunikáció megvalósítására szolgál, amelyben a mikrokontroller csak az UART-ot „érti”.

Az AVR mikrokontrollerek DAC és ADC célja

A digitális-analóg konverterek (DAC) olyan eszközök, amelyek az egyesek és nullák (digitális) jeleit analóggá alakítják (egyenletesen változó). A fő jellemzők a bitmélység és a mintavételi frekvencia. Az ADC az analóg jelet digitális formává alakítja.

ADC-támogatással rendelkező portokra van szükség az analóg érzékelők, például rezisztív típusú érzékelők mikrokontrollerhez való csatlakoztatásához.

A DAC a digitális szűrőkben találta meg alkalmazását, ahol a bemeneti jelet szoftveresen dolgozzák fel, és analóg formában adják ki a DAC-n keresztül; lent láthatóak a vizuális oszcillogramok. Az alsó grafikon a bemeneti jel, a középső grafikon ugyanaz a jel, de egy analóg szűrővel feldolgozva, a felső grafikon pedig a Tiny45 mikrokontroller digitális szűrője. Egy szűrő szükséges a jel kívánt frekvenciatartományának kialakításához, valamint egy bizonyos alakú jel kialakításához.


Az ADC használatára példa a mikrokontrolleren lévő oszcilloszkóp. Sajnos a mobilszolgáltatók és a PC-processzor frekvenciáit nem lehet majd követni, de az 1 MHz-es nagyságrendű frekvenciák könnyen megoldhatók. Kiváló asszisztens lesz, amikor kapcsolóüzemű tápegységekkel dolgozik.

És itt van egy részletes videó a projektről, összeszerelési utasítások és tippek a szerzőtől:

Milyen irodalmat érdemes olvasnom a kezdőknek szánt AVR mikrokontrollerekről?

Az irodalom hegyei születtek fiatal szakemberek képzésére, nézzünk meg néhányat közülük:

  1. Evstifeev A.V. "A Mega család AVR mikrokontrollerei." A könyv részletesen tárgyalja a mikrokontroller architektúrát. Le van írva minden regiszter és időzítő rendeltetése, valamint működési módjai. Tanulmányozták a külvilággal való kommunikációs interfészek működését, az SPI-t stb.. A parancsnoki rendszert egy átlagos rádióamatőr számára feltárják. Az „AVR Microcontrollers of the Mega Family: User Guide” című könyv anyaga segít tanulmányozni a chip szerkezetét és az egyes csomópontok célját, ami minden mikrokontroller programozó számára minden bizonnyal fontos.
  2. Belov A.V. – „AVR mikrokontrollerek a rádióamatőr gyakorlatban.” Ahogy a cím is sugallja, ez a könyv nagyrészt a mikrokontrollerekkel való munka gyakorlati oldalával foglalkozik. Részletesen megvizsgálják a klasszikussá vált ATiny2313 mikrokontrollert, valamint számos összeszerelési áramkört.
  3. Hartov V.Ya. „AVR mikrokontrollerek. Workshop kezdőknek." Segít megérteni az AVR studio 4-et, valamint az STK kezdőkészletet Megtanulja, hogyan kell dolgozni soros és párhuzamos interfészekkel, mint például UART, I2C és SPI. Könyv „AVR mikrovezérlők. Workshop kezdőknek" című művét az MSTU egyik tanára írta. N.E. Bauman, és ott használják a téma tanulmányozására.

A mikrokontrollerek e családjának tanulmányozása sok elektronikai rajongónak segített elkezdeni a munkát és a projektek fejlesztését. Érdemes egy népszerű családdal kezdeni, hogy mindig hozzáférhessünk az információk tengeréhez.

A belépő szintű rádióamatőrök között csak egy versenytársa van az AVR - PIC mikrokontrollereknek.

Nézzük meg az AVR mikrokontrollerek belső architektúráját, próbáljuk meg kitalálni, hogy milyen blokkokból áll a mikroáramköri chip és milyen funkciókért felelősek az egyes blokkok, hogyan hatnak egymásra. Lesznek hasznos összehasonlítások és példák, értékes megjegyzések is, amelyek segítenek tisztázni a mikrokontroller működési elveit külső eszközökkel és perifériákkal.

AVR mikrokontroller belülről

A mikrokontroller belülről egy számítógép saját számítástechnikai eszközzel, állandó és dinamikus memóriával, I/O portokkal és különféle perifériákkal.

Rizs. 1. Az AVR mikrokontroller felépítése. Rajz a digikey.com oldalról

A mikrokontroller belsejében a következők találhatók:

  • Nagy sebességű processzor RISC architektúrával;
  • Flashmemória;
  • EEPROM memória;
  • RAM memória;
  • I/O portok;
  • Periféria és interfész modulok.

A RISC (Reduced Instruction Set Computer) egy olyan architektúra, amely gondosan kiválasztott utasításkészlettel rendelkezik, amelyeket általában egy processzorciklusban hajtanak végre. A modern AVR mikrokontrollerek körülbelül 130 parancsot tartalmaznak, amelyek nagyon gyorsan végrehajthatók, és nem igényelnek nagy kiadásokat mind a processzoron belüli erőforrások, mind az energiafogyasztás tekintetében.

Az AVR mikrokontroller blokkvázlata

Nézzük meg az alábbi ábrát, és nézzük meg, milyen blokkokból áll a mikrokontroller, és hogyan csatlakoznak egymáshoz:

Rizs. 2. Az AVR mikrokontroller blokkvázlata.

Vessünk egy rövid pillantást arra, hogy mi látható a diagram blokkjain:

  • JTAG interfész(Joint Test Action Group Interface) - áramkörön belüli hibakereső interfész (4 vezeték);
  • VAKU- újraprogramozható memória a program mentéséhez;
  • Soros periféria interfész, SPI- soros periféria interfész (3 vezeték);
  • EEPROM(Electrically Erasable Programmable Read-Only Memory) - újraprogramozható ROM, nem felejtő memória;
  • CPU(CPU) - központi vezérlő processzor, a mikrokontroller szíve, 8 bites mikroprocesszor mag;
  • ALU(ALU) - aritmetikai-logikai egység, a CPU egység alapja;
  • RAM(Random Access Memory) - processzor RAM;
  • Program számláló- parancsszámláló;
  • 32 Általános célú nyilvántartások- 32 általános célú nyilvántartás;
  • Utasítási nyilvántartás- parancsok, utasítások nyilvántartása;
  • Utasítás dekódoló- parancsdekóder;
  • OCD(On-Chip Debugger) - belső hibakereső egység;
  • Analóg összehasonlító- analóg komparátor, analóg jel összehasonlító egység;
  • A/D konverter(Analóg/Digitális konverter) - analóg-digitális átalakító;
  • LCD interfész(Liquid-Crystal Display Interface) - interfész folyadékkristályos kijelző csatlakoztatásához, indikátor;
  • USART(Universal Asynchronous Receiver-Transmitter), UART - univerzális aszinkron adó-vevő;
  • TWI(Two-Wire soros interfész) - soros interfész kétvezetékes csatlakozással;
  • Watchdog időzítő- watchdog vagy vezérlő időzítő;
  • I/O portok- víz/kimeneti csatlakozók;
  • Megszakítások- vezérlőegység és reagálás a megszakításokra;
  • Időzítők/Számlálók- időzítő és számláló modulok.

További információ a mikrokontroller belső blokkjairól

Most nézzük meg közelebbről az összes mikrokontroller blokkot, derítsük ki, mire van szükség és miért, és adjunk egyszerű példákat hozzáférhető nyelven.

JTAG interfész- egy fontos interfész, amely lehetővé teszi a belső hibakeresést közvetlenül a chipben a belső hibakereső blokk segítségével ( OCD), emulátorok használata nélkül. Azt mondhatjuk, hogy a JTAG egy interfész a mikrokontroller „hardveres” hibakereséséhez. A JTAG adapteren keresztül a mikroáramkör közvetlenül csatlakozik a szoftvercsomaghoz programozáshoz és hibakereséshez.

Ezen az interfészen keresztül közvetlenül a mikrokontrollerben, lépésenkénti módban futtathatja a programot, figyelheti, hogyan változik a regiszterek tartalma, hogyan villognak a mikrokontrollerre kapcsolt indikátorok, LED-ek minden lépés után stb. A JTAG interfészhez való csatlakozáshoz 4 vezeték elegendő: TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), TMS (Test Mode Select).

A JTAG interfész nem minden AVR mikrokontrollerben érhető el, általában a 40 vagy több érintkezős, legalább 16 KB memóriakapacitású chipeknek van ilyen ízletes kiegészítése. Komoly feladatokhoz - komoly anyagok és eszközök.)

VAKU- programmemória, FLASH technológiával készült nem felejtő ROM (csak olvasható memória). Itt tároljuk azt a programot, amelyet a mikrokontroller ALU egysége fog végrehajtani. A chip flash memóriája sokszor átírható, ezáltal a programkód megváltoztatható vagy kiegészíthető a végrehajtáshoz. Az ilyen típusú memória 40 évig képes megőrizni a ráírt adatokat, és a lehetséges törlési/írási ciklusok száma elérheti a 10 000-et.

Mikrokontroller modelltől függően a FLASH memória mérete elérheti a 256 KB-ot.

Soros periféria interfész, SPI - soros perifériás interfész (SPI), amelyet gyakran használnak több mikrokontroller közötti adatcserére akár több MHz (több millió órajel másodpercenként) sebességgel.

Az SPI interfészen keresztüli adatcseréhez két eszköz között 3 vezeték elegendő:

  1. MOSI (Master Output Slave Input) - Adatok a mestertől a slaveig;
  2. MISO (Master Input Slave Output) - Adatok a slave-től a masterig;
  3. CLK (Óra) - órajel.

Az SPI interfésszel rendelkező eszközök két típusra oszthatók: Master és Slave. Ha több eszköz csatlakozik az interfészhez, akkor további kommunikációs vonalak (vezetők) szükségesek a köztük lévő adatcseréhez, hogy a master ki tudjon választani egy szolga eszközt és kérést intézhessen hozzá.

Az SPI interfészt az áramkörön belüli SPI programozásra is használják, egy programozó ezen az interfészen keresztül csatlakozik a mikrokontrollerhez.

EEPROM - nem felejtő adatmemória, amelyben az adatok akkor is tárolódnak, ha a mikrovezérlőt kikapcsolják. Ebben a memóriában tárolhatja a programvégrehajtási beállításokat, a készülék működési statisztikájához gyűjtött adatokat és egyéb hasznos információkat. Például egy kis időjárási állomást egy mikrokontrollerre szerelve minden nap EEPROM-ban tárolhat adatokat a levegő hőmérsékletéről, nyomásáról, szélerősségéről, majd bármikor elolvashatja az összegyűjtött adatokat, és statisztikai vizsgálatokat végezhet.

Az EEPROM-nak külön címterülete van, amely eltér a RAM és a FLASH címtértől. A mikrokontroller EEPROM memóriája nagyon értékes erőforrás, mivel általában nagyon kicsi - chipenként 0,5-től több kilobájtig. Az ilyen típusú memória átírásainak száma kb 100 000, ami 10-szer több, mint a FLASH memória erőforrás.

ALU- Egy aritmetikai logikai egység, amely szinkronban van az órajellel, és a programszámláló állapotára támaszkodik ( Program számláló) kiválaszt a programmemóriából ( VAKU) a következő parancsot, és végrehajtja azt.

A mikrokontroller órajelét egy óragenerátor állítja elő, és több rendelkezésre álló forrásból táplálható, amelyek közül választhat:

  • belső RC oszcillátor, amely a kívánt frekvenciára kalibrálható;
  • kerámia vagy kvarc rezonátor kondenzátorokkal (nem minden modellen elérhető);
  • külső órajel.

Az órajelforrás FUSE bitekkel van beállítva.

BIZTOSÍTÉKOK(angolul: melting, plug, fuse) - speciális 4 bájt (4 * 8 = 32 bit) adat, amely konfigurálja a mikrovezérlő néhány globális paraméterét a firmware folyamat során. A firmware felvillantása után ezek a bitek nem módosíthatók az MK-ba írt belső programon keresztül.

Ezzel a bitkonfigurációval ezt mondjuk a mikrokontrollernek:

  • melyik fő oszcillátort kell használni (külső vagy belső);
  • osztja a generátor frekvenciáját egy tényezővel vagy sem;
  • használja a reset tűt (RESET) a visszaállításhoz vagy kiegészítő I/O lábként;
  • memória mennyisége a rendszerbetöltő számára;
  • a többi beállítás a használt mikrokontrollertől függ.

CPU- ez a mikrokontroller agya, amely az ALU-t, a regisztereket és a RAM-ot tartalmazza.

Egy 32 általános célú regiszterből álló blokk csatlakozik az ALU-hoz ( 32 Általános célú nyilvántartások- regiszter memória), amelyek mindegyike 1 bájt memóriát (8 bit) jelent. Az általános célú regiszterek címtere a véletlen elérésű memória (RAM) elején található, de nem része annak. A regiszterekben elhelyezett adatokkal számos aritmetikai, logikai és bitművelet hajtható végre. Az ilyen műveletek végrehajtása a RAM-ban nem lehetséges. A RAM-ból származó adatokkal való munkavégzéshez be kell írnia azokat a regiszterekbe, el kell végeznie a szükséges műveleteket a regiszterekben, majd a kapott adatokat a regiszterekből a memóriába vagy más regiszterekbe kell írnia bizonyos műveletek végrehajtásához.

RAM- RAM. Regiszterekből lehet adatokat írni rá , beolvassa az adatokat regiszterekbe, minden adatművelet és számítás regiszterekben történik. Az AVR chipek különböző családjainál a RAM mérete korlátozott:

  • ATxmega - akár 32 KB;
  • ATmega - 16 KB;
  • ATtiny - 1 KB.

Analóg összehasonlító- ez a blokk két jelszintet hasonlít össze egymással, és az összehasonlítás eredményét egy bizonyos regiszterben tárolja, amely után a beküldött eredmény elemezhető és a szükséges műveletek elvégezhetők. Például: használhatja ezt a blokkot ADC-ként (analóg-digitális átalakító) és mérheti az akkumulátor feszültségét, ha az akkumulátor feszültsége alacsony szintet ért el, végrehajthat néhány műveletet, villoghat a piros LED-en stb. Ez a modul használható analóg jelek időtartamának mérésére, a készülék beállított üzemmódjainak leolvasására potenciométer segítségével stb.

A/D konverter- ez a blokk az analóg feszültségértéket digitális értékké alakítja, amivel a programban lehet dolgozni, és amely alapján bizonyos műveleteket végre lehet hajtani. Általános szabály, hogy az AVR mikrokontroller ADC bemenetére táplált feszültségtartomány 0-5,5 Volt. Ennél az egységnél nagyon fontos, hogy a mikrokontroller stabil és jó minőségű áramforrásról táplálkozzon. Sok AVR mikrokontroller rendelkezik egy speciális külön érintkezővel az ADC áramkör stabil tápellátására.

LCD interfész- interfész folyadékkristályos kijelző vagy kijelző csatlakoztatásához. Információk megjelenítésére szolgálnak, az eszköz és alkatrészei állapotának megjelenítésére.

USART- soros aszinkron interfész adatcseréhez más eszközökkel. Támogatja az RS-232 protokollt, aminek köszönhetően a mikrokontroller csatlakoztatható a számítógéppel való adatcseréhez.

Az MK és a számítógép COM portja közötti ilyen kapcsolathoz logikai feszültségszint-átalakítóra van szükség (+12V COM-hoz +5V mikrokontrollerhez), vagy egyszerűen RS232-TTL. Hasonló célokra MAX232 mikroáramköröket és hasonlókat használnak.

A mikrokontroller számítógéphez USB-n keresztül történő csatlakoztatásához az UART interfészen keresztül speciális FT232RL mikroáramkört használhat. Így új számítógépeken és laptopokon fizikai COM-port nélkül is csatlakoztathat egy mikrokontrollert USB-porton keresztül az USART interfészen keresztül.

TWI- interfész kétvezetékes buszon keresztüli adatcseréhez. Egy ilyen adatbuszra legfeljebb 128 különböző eszköz csatlakoztatható két adatvonalon: egy órajel (SCL) és egy adatjel (SDA) segítségével. A TWI interfész analóg az I2C interfész alapváltozatával.

Az SPI interfésztől eltérően (egy mester és egy/több slave), a TWI interfész kétirányú, lehetővé teszi egy kis belső hálózat szervezését több mikrokontroller között.

Watchdog időzítő Az eszköz lefagyásának figyelésére, majd újraindítására szolgáló rendszer. Olyan ez, mint egy automatikus RESET gomb egy hibás operációs rendszerrel rendelkező régi számítógépen.))

I/O portok, GPIO- ez a bemeneti/kimeneti portok blokkjai, amelyek érintkezőihez különféle érzékelőket, végrehajtó eszközöket és áramköröket csatlakoztathat. A mikrokontroller portjairól érkező bemeneti/kimeneti lábak száma 3 és 86 között lehet.

Az AVR mikrokontroller portjaiban található kimeneti meghajtók lehetővé teszik a 20 mA (maximum 40 mA) áramfelvételű terhelés közvetlen csatlakoztatását 5 V tápfeszültség mellett. Az egyik port teljes terhelési árama nem haladhatja meg a 80 mA-t (például akassza fel a 15-20 mA áramerősségű LED-et az egyik port 4 érintkezőjére).

Megszakítások- ez egy olyan blokk, amely bizonyos funkciók reagálásáért és elindításáért felelős, ha a mikrokontroller bizonyos bemeneteire jel érkezik, vagy valamilyen belső esemény (például egy időzítő ketyegése) miatt. Minden megszakításhoz külön szubrutin kerül kifejlesztésre és rögzítésre a memóriában.

Miért nevezik ezt a blokkot megszakítási blokknak? - mert megszakítás-specifikus esemény bekövetkezésekor a főprogram végrehajtása megszakítottés megtörténik az aktuális megszakításhoz írt szubrutin prioritási végrehajtása. Az alprogram befejeztével a főprogram végrehajtása visszatér attól a pillanattól kezdve, amikor megszakadt.

Időzítők/Számlálók- időzítők és számlálók készlete. Egy mikrokontroller általában egy-négy időzítőt és számlálót tartalmaz. Használhatók a külső események számának számlálására, meghatározott időtartamú jelek generálására, megszakítási kérések generálására stb. Az időzítők és számlálók szélessége 8 és 16 bit (a chip adatlapján keresse meg).

Következtetés

Ez alapvetően minden, amit kezdetben hasznos tudni az AVR mikrokontroller szerkezetéről. Ezenkívül a munka és a programozás során lehetősége lesz az AVR chipek különböző modelljeinek adatlapjait a gyakorlatban tanulmányozni, részletesebben megismerni az egyes MK szerkezeti kockák működési elvét, tanulmányozni a működésüket, játszani a hibakereséssel. stb.

A következő cikkben megpróbáljuk megérteni a mikrokontrollerek címkézését, és átgondoljuk a kezdeti tanulmányozáshoz leginkább hozzáférhető és legmegfelelőbb chipeket.