Hogyan állapítható meg, az órajel a mikrokontroller, avr, programozás

Az órajel frekvencia, amelyen a mikrokontroller működik AVR. határozza meg a sebességet. Néhány valós idejű alkalmazások (például a könyvtár V-USB) órajel kritikus paraméter, ami függ - egy olyan program, amely hatékonyan működik-e vagy sem. Ezért fontos, hogy meg tudja határozni az órajel, ahol a mikrokontroller működik.

[At, amely befolyásolja az órajel a mikrokontroller? ]

A válasz erre a kérdésre egyszerű - a sebesség. Az időtartam minden szélütés AVR mikrovezérlő általában megfelel az átfutási idő az egyedi utasítás assembly nyelven (bár assembly utasításait, az átfutási idő, amely 2, 3 vagy akár 4 ciklus). Azaz, minél nagyobb az órajel, annál gyorsabb a mikrokontroller fut, annál pontosabban a reakciója a külső eseményekre. Valós idejű alkalmazások (pl szoftver dolgozni USB-protokoll segítségével a V-USB könyvtár) nagyon szükséges, hogy pontosan tudja a hossza az egyes programok utasítást.

Ezen kívül a AVR mag van beágyazva több perifériás hardver eszközök - ADC, UART, SPI, I2C és így tovább. A munka minden ilyen egység függ az órát. Például, nem lehet pontosan beállítani a sebességet a UART (RS-232), ha nem tudod, hogy az órajelet is.

Kiszámításához késések a programban gyakran kényelmes makrók és funkciók delay_us delay_ms. Helyességét a működés attól függ, hogy a működési frekvencia megfelel a AVR mikrokontroller programja állandó F_CPU.

Ezért fontos tudni, hogy egy órajel, és képes meghatározni a valós értéket. Nézzük meg a legnépszerűbb lehetőségek időmérő mikrokontroller AVR, hogy megtanulják, hogyan kell meghatározni a működési órajelet is.

Nagyon gyakran (és ez vonatkozik a breadboard AVR-USB-MEGA16, AVR-USB162, AVR-USB162MU, metaboard, userial [1]) a működési órajel AVR pontosan megegyezik a frekvenciáját a kristály oszcillátor (vagy kvarc), amely össze van kötve a mikrokontroller. Ebben az esetben Fyuz (vagy szoftver) beépített off clock előosztóval (előosztóval). Az alábbiakban példák megjelenése a kvarc rezonátor jelölt, ahol a működési frekvenciája kvarcrezonátor tartalmaz számokkal.

Hogyan állapítható meg, az órajel a mikrokontroller, avr, programozás

Hogyan állapítható meg, az órajel a mikrokontroller, avr, programozás

A fénykép a bal oldalon mutatja egy részét a régi változata a breadboard AVR-USB-MEGA16 egy kristály 16 MHz. Számos példa programok és teljes firmware összeállított kifejezetten erre a kvarc frekvenciáját. A jog egy új változata a AVR-USB-MEGA16 kvarc 12 MHz-en.

Futó alkalmazások USB a breadboard AVR-USB-MEGA16, figyelembe kell venni az órajel a mikrokontroller, azaz a. E. kell összeállítani, hogy pontosan a kvarc frekvencia, amely fel van szerelve a breadboard, különben a program nem fog működni. Az ok egyszerű - USB interfész szigorú időparaméterek, vagyis paramétereit jelek D +, D- időtartama logikai szintek 0 és 1 kell nagyon pontosan teljesül ... Ezek a paraméterek az AVR-USB-MEGA16 fejlesztési tanácsok ellenőrzött könyvtár V-USB, amikor a szoftver feldolgozása alacsony szinten USB protokollt. Pontosság tartjuk miatt a mesterien megírt kód assembly nyelven, ahol időtartama jelek felvette a megfelelő mennyiségű NOP parancs. Ezért a munkaprogram kötődik a frekvenciáját a kvarcrezonátor, és mikrovezérlő firmware kell összeállítani pontosan a dolgozó órajelet is. A könyvtár V-USB ezeket a frekvenciákat lehet 12, 15, 16, 16,5, 20 MHz (leggyakrabban használt frekvenciák a 12 és 16 MHz).

A programban az órajel beállítása egy speciális állandó (pl F_CPU), amelyeket azután ellenőrzik a fordító elpárologtató - kell csatlakoztatni a készüléket, hogy válassza ki a kódot helyesen. Állandó F_CPU gyakran meg a Makefile, és áthalad a fordító parancssori. A konstans is a fejlécben megadott fájlt a program C nyelven (ún héder, a fájl kiterjesztése * .h).

Legyen óvatos, ha úgy dönt, hogy programozni az órajel a mikrokontroller - ha véletlenül programozva a mikrokontroller, amely frekvencián működik 12 MHz, a rossz firmware-t (például, amelynek célja, hogy frekvencián működik, 16 MHz), kapsz egy USB működésképtelen eszköz, amely nem határozza meg az operációs rendszert. Sok ügyfél kérdések (miért USB-eszköz nem működik.) Miatt hibás órajel firmware.

Hogyan állapítható meg, az órajel a mikrokontroller, avr, programozás

Ezt a fényképet mutat breadboard metaboard mikrokontrollerrel atmega328-PU és egy kristály 16 MHz. Itt is az USB alkalmazások szoftver feldolgozási protokoll alapján a V-USB könyvtárban. Ezért minden, ami elhangzott a frekvencia kvarc prototípus tábla AVR-USB-MEGA16, ugyanúgy vonatkozik metaboard.

Hogyan állapítható meg, az órajel a mikrokontroller, avr, programozás

Ez a fénykép mutatja egy töredéke a breadboard AVR-USB162 létre kvarc 16 MHz. Ez használ AT90USB162 mikrokontroller hardver USB interfész, így sokkal gyorsabban megbirkózni a feladattal, hogy az USB protokoll feldolgozását, mint a hagyományos mikrokontroller AVR. Itt is fontos órajel frekvencián, amelyen a mikrokontroller működik - USB alkalmazásokat lehet használni a kvarc frekvenciáját 8 vagy 16 MHz-es, de a program nagyon szigorú vegye ezt figyelembe.

[A mikroszabályozó működési a belső órajel-generátor]

Olyan alkalmazásokhoz, ahol nem szükséges, hogy pontosan generálni kívánt időközönként, vagy ha ez nem szükséges, hogy megkapjuk a maximális sebesség AVR mikrovezérlő, akkor használhatja a beépített mikrokontroller RC-generátor. Ennek gyakorisága oszcillátor 8 MHz, alapértelmezés szerint ez osztva 8, és ennek eredményeként a mikrokontroller frekvencián működik az 1 MHz-es. Az elválasztó lehet programozni, hogy a különböző elválasztó arányok, és az is lehet kikapcsolni úgy, hogy a maximális üzemi órajel mikrokontroller lehet 8 MHz. Az előnye az ilyen generátor nem szükséges, hogy egy külső kristály rezonátor, az áramkör egyszerűsített, a végső elektronikus eszközök lehetnek kevésbé költséges az előállításuk. A hátránya az, hogy az RC-oszcillátor pontatlanságot korlátozza az alkalmazási területe ebben a kiviteli alakban kapja órát.

Variant generátor (RC-oszcillátor, a külső kvarc, a frekvenciaosztásos arány) által meghatározott AVR mikrovezérlő Fyuz. AVR mikrovezérlő Fyuz csak akkor lehet megváltoztatni egy külső programozó (ISP interfészek, JTAG, vagy alkalmazhatjuk az úgynevezett „párhuzamos” Programming Interface). A legtöbb mikrokontrollerek AVR, amely származik növények Atmel szállított konfigurálva, hogy egy belső oszcillátor, engedélyezve 8 elválasztó, t. E. Ha áram alá azonnal elkezd dolgozik egy 1 MHz frekvencián. Bizonyos korlátok az órajel állítható szoftver felvétel értékek állandók a tuning különleges nyilvántartásba. További információ a beállítási és időzítési Fyuz AVR mikrovezérlő tanulhat adatlap be mikrokontroller.

Néhány eszköz lehetővé teszi az óra használatát PLL. Ez rövidítés Phase Locked Loop, ami azt jelenti, hogy a fáziszárt hurok, PLL. Jelentés elsősorban az a tény, hogy a mikrokontroller tápellátását egy belső óra, ami akkor keletkezik, szorozni, és elosztjuk a frekvencia a belső RC-oszcillátor, az RC-oszcillátor frekvenciát beállítani szoftver. Egy jó példa egy ilyen generátor - V-USB alkalmazás mikrokontroller ATtiny45 (vagy ATtiny85), például USBrelay [2]. A mikrokontroller frekvencián működik 16,5 MHz, amelyet úgy kapunk, alkalmazásával RC-oszcillátor és a PLL. A frekvencia beállításával pontosan szoftver segítségével USB keret kezdetét órajel (úgynevezett jel SOF, start of frame), amelyek nagyon pontos frekvencia 1 ms. További információk a PLL cm. Mikrovezérlő adatlap és a forráskódját USB-relé [2].

[Definíció óra oszcilloszkóp]

Bizonyos esetekben bonyolult, nehéz előre tudni, milyen gyakorisággal működik mikrokontroller. Például van jelölve egy külső rezonátor, vagy nem biztos benne, hogyan kell programozni Fyuz belső RC-oszcillátor.

Ha egy külső rezonátor (kvarc vagy kerámia), az órajel lehet meghatározni csatlakoztatja a kimeneti szakasza az óra - szonda érintése egyik lábát a rezonátor. Legyen óvatos, meg kell csatlakoztatni a generátor kimeneti és az oszcilloszkóp szonda kell egy kis bemeneti kapacitás (a kisebb, annál jobb, lehetőleg nem több mint 20 pF). Jellemzően, egy kis bemeneti kapacitása a szonda kapunk, ha a oszcilloszkóp szonda van kapcsolva, hogy a szétválás 1:10). Ahhoz, hogy megtudja, pontosan mi a kimenete egy mikrokontroller láb, lásd az adatlap a mikrokontroller. Az oszcilloszkóp megjeleníti az órajel generátor kimenete és a működési órajel mikrokontroller egyenlő lesz ez a frekvencia előosztóval az együttható (ha engedélyezve Fyuz vagy szoftver).

Amikor egy belső RC-oszcillátor, és ha nem tudja, hogyan is programozható Fyuz előosztóval segítségével a mérési program időtartama utasításokat. Erre az esetre beteheti a fő hurok a program két fő egyszerű telepítési utasításokat, és állítsa vissza bármely kiválasztott port a mikrokontroller, majd oszcilloszkóp időtartamának mérésére a keletkező kimeneti jel ezen a porton. Itt egy egyszerű példa egy ilyen program (csak a kódrészletet, amely kezeli a port PB0 láb):

Az elv az óra egyszerű. Ebben a példában látható kódot két csapat, amelyek szabályozzák a nyomócsonk 0 B, amelyek követik egymást (állandó nyilvántartásba vétel PORTB). Az első parancs beállítja a kimeneti szint PB0 lábát az állam naplóban. 1, a második parancs a naplót. 0. Ez a mérési szinteket lehet szabályozni oszcilloszkóp, csatlakoztassa a szondát a pin PB0 port. Minden csapat rekord a Register PORTB összeállított egyetlen szerelvény csapat, amelynek időtartamát megtalálható az adatlap a mikrokontroller. Ezt a példát használni ORI és ANDI csapatok. 1, amelynek a hossza egy ciklus. Így az első és a második parancs menetben egy ciklus alatt, egy órajel ciklus alatt a mikrokontroller frekvencia, azaz a. E. Pulse szélesség naplót. 1 egyenlő lesz az időtartam a dolgozó óra alatt. Az ábra azt mutatja, egyszerűsített formában a jel a kimeneti port PB0 és a megfelelő órajel-frekvencia.

Hogyan állapítható meg, az órajel a mikrokontroller, avr, programozás

Az impulzusszélesség naplót. 1 A kimeneti port PB0 mérhető oszcilloszkóppal, valamint, hogy meghatározza az órajel, ahol a mikrokontroller működik.