Fórum témák
» Több friss téma |
Cikkek » Launchpad: ismerkedés az MSP430 mikrovezérlőkkel IV. Launchpad: ismerkedés az MSP430 mikrovezérlőkkel IV.
Szerző: icserny, idő: Jan 14, 2013, Olvasva: 16049, Oldal olvasási idő: kb. 4 perc
Automatikus csatornapásztázásA több mérés automatikus lebonyolítását és az adatok automatikus átvitelét nem csak arra használhatjuk, hogy egy csatornában több mérést végezzünk, hanem arra is, hogy több csatornát automatikus végigpásztáztassunk. Az egyszeri automatikus csatornapásztázás üzemmód (CONSEQx = 1) azt jelenti, hogy először a megadott sorszámú csatornában történik mintavételezés és adatkonverzió, majd eggyel az eggyel ksiebb sorszámú csatornában történik mérés, s ez így folytatódik, amíg vagy az előírt számú mérés meg nem történt, vagy a nulladik csatornát el nem értük. Az ismételt automatikus csatornapásztázás üzemmód (CONSEQx = 3) esetében a nulladik csatorna (A0) mintavételezése után nem áll le a konverziók sorozata, hanem újra visszaugrik az először mintavételezett csatornára, és a pásztázás mindaddig folytatódik, amíg az előírt darabszámú mérés meg nem történt. Az automata csatornapásztázást célszerű összekapcsolni a közvetlen adatátvitellel (DTC), hiszen minden konverzió eredménye az ADC10MEM regiszterbe kerül. Ha innen időben nem pakoljuk el az adatot, akkor az felülíródik.
7_1. ábra: Ismételt csatornapásztázás és DTC kombinálása
Csatornapásztázás + DTC = teljesítménynövelésAz automatikus csatornapásztázás és a közvetlen adatátvitel kombinálása növeli a program hatékonyságát. Ha a pásztázást és az adatok elmentését szoftveresen oldanánk meg, akkor az konverziónként kb. 70 utasításciklusnyi CPU időt venne igénybe. 7_1. lista: Fiktív programrészlet, a csatornapásztázás szoftveres kezelésére
Automatikus csatornapásztázás és a DTC használata esetén viszont a méréssorozat alatt nincs szükség a CPU közreműködésére, mindent hardveresen kezel a mikrovezérlő.
Az automatikus csatornapásztázással és a közvetlen adatátvitellel tehát hatékonyabb alkalmazásokat készíthetünk:
Csatornapásztázás három csatornábanA következő program azt mutatja be, hogy hogyan használhatjuk az ADC egyszeri automatikus csatornapásztázás üzemmódjátt a közvetlen adatátvitellel kombinálva. Három csatornában mérünk, az ADC 2,5 V-os belső referenciáját használva. Esetünkben az A7 (P1.7) analóg bemenetre egy 2,5 V-os feszültségreferencia IC kimenőjelét kötöttük. Ennek jele szerencsére egy hajszállal kisebbnek bizonyult, mint a belső 2,5 V-os referencia, ez tette lehetővé, hogy meg tudjuk mérni. Az A6 (P1.6) bemenetre egy potméterrel leosztott feszültséget kötöttünk, az A5 (P1.5) bemenetre pedig a korábban már bemutatott TC1047A hőmérő jelét vittük be. A lényeg az, hogy a belső referencia értékére való tekintettel mindhárom bemenetre 0 - 2,5 V közötti jelet vezessünk.
7_2. ábra: A 4_adc_scan_ref2 programnál használt kapcsolás vázlataA mérés eredményeit a szokásos módon, az egyirányú szoftveres UART kezeléssel (csak adatküldés) kiíratjuk. Paraméterek: 9600 baud, 8 adatbit, nincs paritásbit, 2 stopbit. A korábbiakhoz hasonló felépítésű programból itt csak azokat a részleteket mutatjuk be, amelyek eltérnek az előzőektől. Az alábbi függvény egyszeri csatornapásztázást végez a megadott csatornától kezdve. Mivel az általunk mérésre felhasznált analóg csatornák száma (3) kisebb, mint a kezdőcsatorna sorszáma (7) így az ismételet csatornapásztázási mód használatára nincs lehetőség (ahhoz le kellene menni a 0. csatornáig). 7_2. lista: Részlet a 4_adc_scan_ref2 programból (az ADC kezelése)
A beállításoknál a következő fontos változások vannak:ADC10CTL0 - az MSC bitet '1'-be állítjuk, hogy egyetlen szoftveres triggerjelre lefusson a mintavétel és konverzió minden előírt csatornában. A megszakítást most nem engedélyezzük. ADC10CTL1 - a szoftveres triggereléshez SHSx = 0 kell, az egyszeri csatornapásztázást pedig CONSEQx =1 állítja be. A megadott csatorna a legmagasabb sorszámú pásztázandó csatorna legyen! ADC10DTC1 - ebbe a pásztázandó csatornák darabszámát írjuk (esetünkben ez 3 lesz) A főprogramban annyi változás van az előzőekhez képest, hogy most egyetlen függvényhívás végzi el a mérést minhárom csatonában. Az adatok átszámítását feszültségre és a kiíratást így egy for ciklusba szervezhetjük. A csatornák száma így egyszerűen bővíthető.
7_3. lista: Részlet a 4_adc_scan_ref2 programból (a főprogram)
A program futási eredménye az alábbi ábrán látható. A csatornák sorrendje az automatikus pásztázás szerinti, tehát a 0. csatorna A7 (a 2,5 V-os referencia), az 1. csatorna A6 (a potméter kimenete), a 2. csatorna pedig A5 (a TC1047A hőmérő jele). A sárga nyíllal megjelölt szakaszon tekergettük a potmétert. A hőmérő jele 0 ºC-nál 500 mV, s fokonként 10 mV-tal növekszik.
7_3. ábra: A 4_adc_scan_ref2 program futási eredményeA cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |