Fórum témák

» Több friss téma
Cikkek » Launchpad: ismerkedés az MSP430 mikrovezérlőkkel II.
Launchpad: ismerkedés az MSP430 mikrovezérlőkkel II.
Szerző: icserny, idő: Nov 3, 2011, Olvasva: 22786, Oldal olvasási idő: kb. 4 perc
Lapozás: OK   1 / 8
Folytatjuk az ismerkedést a Texas Instruments MSP430 mikrovezérlőivel. Ebben a részben a vezérlőjeleket előállító óra alrendszerrel, a megszakításokkal, az energiatakarékos üzemmódokkal, az időzítőkkel és az impulzusszélesség-moduláció (PWM) foglalkozunk. Kísérleteinkhez most is az MSP430 Launchpad kártyát és az IAR Embedded Workbench fejlesztői környezet ingyenes változatát használjuk.

Az óra alrendszer felépítése

A mikrovezérlő központi egysége és a perifériák működéséhez órajelre van szükség. Az órajel itt négyszöghullámot jelent, melynek fel - vagy lefutó élei indítanak hardver eseményeket, így biztosítva a rendszer szinkronizált működését. A követelmények azonban ellentétesek. A nagy teljesítmény biztosítása magas órajel-frekvenciát igényel, ami nagyobb fogyasztással párosul. Számos alkalmazásnál azonban fontos a kis energiafogyasztás (pl. elemmel működő hordozható készülékeknél). Ilyenkor a mikrovezérlő  idejének jelentős részét energiatakarékos üzemmódban tölti amíg valamilyen esemény bekövetkezésére vár, majd " feléledve " gyorsan végrehajtja az eseményhez kötődő feladatait, s újra " aludni tér ". Ebben az esetben is szükség lehet azonban a folyó idő nyilvántartására, s a " felébresztést " kiváltó események észleléséhez is szükség van a mikrovezérlő néhány alegységének folyamatos, de lehetőleg kis fogyasztású működtetésére. Az ellentétes követelmények kielégítésére a modern mikrovezérlők két vagy több órajel forrással rendelkeznek.

Az MSP430 mikrovezérlők óra alrendszere elég komplikált, s a technikai részleteket csak az adott mikrovezérlő adatlapja és a megfelelő Family User's Guide összeolvasásából deríthetjük ki. Mi itt a Launchpad kártyához kapott mikrovezérlőkre koncentrálunk, ezért az alábbi leírás vezérfonala az MSP430G2231 mikrovezérlő adatlapja (SLAS694H.PDF) és az MSP430x2xx Family User's Guide (SLAU144H.PDF) volt. Nehéz és unalmas olvasmány következik, de ebben van az összefüggések megértésének kulcsa, melyhez a későbbiek során akár referenciaként is visszalapozgathatunk.

Az MSP430G2xxx mikrovezérlők az alábbi forrásokból vehetik az órajelet:

LFXT1 - alacsony frekvenciájú kristályoszcillátor. Az MSP430G2xxx mikrovezérlők esetében ez az egység csak a 10-50 kHz tartományban használható (tipikusan 32 kHz-es órakvarccal használják, melyet  a mikrovezérlő XIN és XOUT kivezetéseire kell kötni). A kvarcoszcillátor előnye a stabil frekvencia (egy időmérő alkalmazásnál ez elsődleges szempont), hátránya pedig esetünkben az, hogy elveszítjük miatta a P2.6 és P2.7 I/O kivezetéseket. Éppen ezért ne kapkodjuk el a kártyához kapott kvarckristály beforrasztását! Megjegyezzük, hogy az LFXT1 oszcillátor külső órajel fogadására is alkalmas, de mi ezzel a lehetőséggel nem foglalkozunk.

VLO - nagyon kis fogyasztású oszcillátor. Ez az oszcillátor nem igényel külső alkatrészt, a lapkára integrál elemekkel időzített RC oszcillátor, amely névlegesen 12 kHz-es órajelet állít elő. A hőmérséklettől és tápfeszültségtől függően azonban %-os nagyságrendű eltérések is lehetnek. Ez az oszcillátor tehát pontos időzítésekhez nem használható, de ahol a pontosságra vonatkozóan nincsenek szigorú követelmények, ott kiválóan használható, különösen akkor, ha a kis fogyasztás elsődleges szempont. 

DCO - Digitálisan vezérelt oszcillátor. A VLO-hoz hasonlóan ez is RC oszcillátor, de magasabb ferekvencia tartományban használható (egésze 16 MHz-ig), s ennek megfelelően nagyobb fogyasztású is. Előnyös tulajdonsága, hogy pl. energiatakarékos üzemmódból történő feléledésnél (amikor a DCO kikapcsolt állapotból visszakapcsol), az órajel rendkívül gyorsan (optimális esetben kevesebb, mint 1 µs alatt) helyreáll.

Megjegyzések:

  • Vannak az MSP430 termékcsaládnak olyan típusai is, ahol magasabb frekvenciájú (MHz-es nagyságrendű) kvarcoszcillátor is használható. Ezeknél vagy az LFXT1CLK órajel-generátor kapcsolható át egy nagyobb frekvenciájú üzemmódba (a BCSTL1 regiszter XTS bitjének '1'-be állításával), vagy egy külön oszcillátor modullal (XT2) is rendelkezhetnek. Az általunk használt MSP430G2xxx mikrovezérlők azonban nem rendelkeznek ilyen képességekkel.
  • Vegyük figyelembe az adatlap ajánlásait: 4,15 MHz-nél nagyobb frekvenciájú órajel esetén ügyeljünk rá, hogy a mikrovezérlő tápfeszültsége az adatlapban előírt biztonságos működési tartományba essen!

A fent felsorolt órajel forrásokból kiválasztás és utóosztás (frekvenciaosztás) után háromféle órajelet állít elő a mikrovezérlő: ACLK, MCLK és SMCLK. Túlzás volna azt állítani, hogy akármelyik órajel akármelyik órajel forrásból származtatható, de kis híján ez a helyzet. Az összefüggések az alábbi ábrán láthatók.

Ahogy fentebb már említettük, az MSP430G2xxx mikrovezérlők óra alrendszere három órajelet állít elő:

MCLK - Fő órajel (master clock), amelyet a CPU és a rendszer használ. Ennek forrása bármelyik órajelgenerátor (VLO, LFXT1, DCO) lehet, s a kiválasztott órajelet leoszthatjuk (1, 2, 4 vagy 8 osztási arány állítható be). Az MCLK órajel alapértelmezett forrása a DCO órajelgenerátor, amely bekapcsoláskor nagyjából 1 MHz-en rezeg. Az  ún. energiatakarékos üzemmódokban az MCLK órajelet lekapcsolhatjuk, ilyenkor a CPU alvó állapotba kerül, a program nem fut tovább. Lekapcsolás előtt, természetesen, biztosítanunk kell a "felébresztés" lehetőségét (Watchdog időzítő, programmegszakítást kérő periféria engedélyezése, külső megszakítás engedélyezése), nehogy örökre (vagy legalábbis a legközelebbi újraindításig) "elaltassuk" a programot!

ACLK - Segéd órajel (auxiliary clock), amelyet egyes perifériák működtetésére választhatunk ki. Ennek forrása csak a VLO vagy az LFXT1 órajelgenerátor lehet, s az órajelet leoszthatjuk (1, 2, 4 vagy 8 osztási arány állítható be). Az ACLK órajel forrása alapértelmezetten az LFXT1 órajelgenerátor, akkor is, ha az nem használható, mert nics rákötve kristály. Ez fölösleges áramfogyasztással jár, s az XIN, XOUT kivezetéseket is lefoglalja. Ha nem forrasztottuk be az órakvarcot, akkor célszerű a programunk elején letiltani LFXT1-et, s ACLK forrása legyen a VLO. 

SMCLK - alrendszerek órajele (subsystem master clock), amelyet a perifériák működtetésére választhatunk ki. Ennek forrása bármelyik órajelgenerátor (VLO, LFXT1, DCO) lehet, s a kiválasztott órajelet leoszthatjuk (1, 2, 4 vagy 8 osztási arány állítható be). SMCLK forrása alapértelmezetten ugyanaz a kb. 1 MHz-es DCO, mint az MCLK órajelé. Egyes energiatakarékos üzemmódokban az SMCLK órajelet lekapcsolhatjuk. A DCO is kikapcsolható, ám a lekapcsolás csak akkor történik meg ténylegesen, ha sem MCLK sem SMCLK forrásául nincs kiválasztva.

Ha idáig eljutottunk, vehetünk egy nagy levegőt, mert a nehezén már túljutottunk: tisztáztuk az óra alrendszer összefüggéseit. Már csak azt kell kiderítenünk, hogy a fenti ábrán és a szövegben említett vezérlő bitek és bitcsoportok mely regiszterekben találhatók meg.


A cikk még nem ért véget, lapozz!
Következő: »»   1 / 8
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem