Szabaduljunk meg a tranziensektől
Az I/O-csatlakozók és ADC-bemenetek nem kívánt kölcsönhatásai
A mikrovezérlők többsége analóg és digitális áramköri funkciók – reményeink szerint békés – együttélése. Gyakori azonban, hogy a figyelmetlen tervezés nehezen felderíthető hibákhoz vezet. Ezek megelőzésére ad tanácsot a Microchip Technology mérnöke.
Sok gyakori be-kimeneti probléma keletkezik akkor, amikor egy mikrovezérlő (MCU) AD-konverter csatornái között váltunk. Az analóg funkció összetett kölcsönhatásokba kerülhet az áramkör digitális részével és a futó programmal. Ez azt eredményezi, hogy az alkalmazásban káros kölcsönhatások működnek – hacsak jobban meg nem értjük az analóg áramköri rész működését.
Az AD-konverter bemenetét átkapcsoló multiplexert (MUX) a digitális logika vezérli. A digitális logika működésének nem kívánatos „mellékterméke” léphet fel, amikor a különböző bemeneteken érkező jelek pillanatszerűen összekapcsolódnak.
Két – egymással kapcsolatban nem álló – I/O vezeték összekapcsolódhat, amikor az AD-konverter (ADC) bemeneti vezetékei között átkapcsolás történik. Az I/O csatlakozhat egy bizonyos ideig, amíg a jel a MUX-on keresztül terjed, és az ADC bemenetén levő jelet változásra készteti. Ez az összekapcsolódás akár 40 ns-ig is tarthat, amely több, mint az I/O jel minimális fel- és lefutási ideje (15…30 ns), amely egy átkapcsolási tranzienst[1] eredményez az összekapcsolódó kivezetéseken. Ennek a tranziensnek a hatása 40 ns-nál is hosszabb amiatt, hogy időre van ahhoz is szükség, hogy az állapotváltozást elszenvedő jel visszatérjen az előző állapotába. Például, ha a váltás az ADC AN2 és AN5 analóg bemenetei között történik, az RB4 és RC0 kerülhet egymással kapcsolatba a kapcsolási idő tartamára. Ha az RB4 bemenetként van konfigurálva, amelynek feszültsége éppen a logikai magas és alacsony szint között van félúton, egy kapcsolási tranzienst észlelhetünk az RC0 ponton, ha az éppen kimenetként van konfigurálva.
Ha a két összekapcsolt csatlakozópont azonos logikai szinten van, ez az átkapcsolási tranziens csupán 10 mV amplitúdójú. Abban az esetben viszont, amikor a két csatlakozópont eltérő logikai szinten áll, a tranziens nagyága elérheti a 160 mV-ot.
A tranziensek egy másik forrása abból származik, hogy magán az ADC-n történik ugrásszerű jelváltozás a két átkapcsolt csatorna bemenetére kapcsolt feszültségszint eltérése miatt. Ezek a tranziensek kívülről is mérhetők, ha az ADC bemeneti csatornája az eszköz egy aktív komparátorának vagy műveleti erősítőjének is a bemeneti jele egyben. A tranzienseknek három forrása ismeretes:
-
Az ADC csatornák átkapcsolása megváltoztatja az ADC mintavevő-tartóáramkörének kondenzátorán mérhető feszültséget. A kondenzátorra kapcsolódó külső feszültségszintektől függően ez a tranziens egyaránt lehet pozitív és negatív előjelű.
-
Egy második fajta tranziens keletkezik akkor, amikor az első tranziens után helyreáll a feszültség. Ennek eredete az, hogy a kondenzátor lekapcsolódik a csatlakozópont elektronikájáról.
-
A harmadik féle tranziens akkor történik, amikor a konverziós folyamat véget ér és a kondenzátor visszakapcsolódik a csatlakozópont elektronikájára.
Digitális bemenetek
Ha az I/O csatlakozópontot bemenetként használjuk, van egy kis esélyünk, hogy elkerüljük az ADC csatornaváltását kísérő problémákat. Ha a bemenet éppen lekérdezés alatt áll, rendelkezésünkre áll az a lehetőség, hogy nem váltjuk át az ADC csatornát addig, míg a lekérdezési ciklus be nem fejeződött. Ha viszont nem lekérdezést alkalmazunk, akkor a bemeneti csatlakozópontot nem célszerű állapotváltozásra közvetlenül azután tesztelni, hogy kiadtunk egy csatornaváltási utasítást az ADC-nek. Illesszünk be inkább egy üres utasítást (NOP) a csatornaváltó utasítás után, és csak ezt követően teszteljük a bemenetet, hogy történt-e állapotváltozás.
Ennél jobb megoldás (ha kizárólag az állapotváltozásokkal foglalkozunk), egy olyan szoftver, amely a mechanikus kapcsolóknál alkalmazott módszerhez hasonlóan „pergésmentesíti” a bemenetet. Ehhez ellenőrizzük a bemenetet néhányszor egymás után, és számláljuk, hányszor észleltünk egy bizonyos állapotot. Csak akkor szabad egy állapotváltozót megváltoztatnunk, ha már elég sok állapotváltozást regisztráltunk. Ezen a módon bármilyen ADC átkapcsolási tranziens kiszűrhető a lehetséges állapotváltozások közül.
Digitális kimenetek
Egy kimenetként használt digitális jelkivezetés is okozhat szórványos tranzienseket a külső áramkörben az ADC csatornaváltásakor. A kimeneti csatlakozópont, ha az magas szintről alacsonyra vált, az adott állapottal ellentétes előjelű tranzienst okozhat. Ha például a kimenet magas szintre van vezérelve, akkor az adott csatlakozóponton akár 200 mV-os negatív tranziens is keletkezhet. Ez a tranziens 15-től 40 ns-ig tarthat, attól függően, hogy mennyi a kapcsolást vezérlő logikai áramkör beállási ideje.
A problémák csökkentésének vagy megszüntetésének fő módszerei közt szerepel a tranziens energiájának[2] csökkentése, a külső áramkör tranziensek elleni védettségének fokozása vagy a tranziens teljes kiszűrése. Először próbáljunk meg egy ellenállást sorosan kapcsolni a zavart kimenettel, ami korlátozza az áramot, így az kevésbé erős zavaró hatást fejt ki a kimenet által vezérelt külső áramkörben. Azok a külső áramkörök, amelyek Schmitt-triggeres bemenettel rendelkeznek, hiszterézisük révén védettek lehetnek a tranziens zavaró hatása ellen. Egy másik lehetőség a tranziens szűrése.
A kimenetre kapcsolt passzív RC aluláteresztő szűrő csökkenti, sőt, akár teljesen meg is akadályozhatja, hogy a tranziensjelek elérjék a külső áramkört. A szűrő R és C elemeinek értékválasztásakor néhány szempontot figyelembe kell venni. A ?=R×C időállandónak nagyobbnak kell lennie a tranziens időtartamánál (?>40 ns) ahhoz, hogy a szűrő semlegesítse azt[3].
Legyünk óvatosak; az RC aluláteresztő szűrő frekvenciamenete nem szabad, hogy befolyásolja a külső áramkör működését. A szűrő f0=1/(2?RC) törésponti frekvenciájának legalább egy dekáddal (azaz tízszer) magasabbnak kell lennie, mint annak a jelspektrumnak a maximális frekvenciája, amit az alkalmazás az illető kimeneti csatlakozóponton létrehoz[4]. Jó közelítést jelent, ha a 15…40 ns-os fel- és lefutási idejű (tr) jel sávszélességének (BW) 8…25 MHz-et tételezünk fel. Ez a tranziens legmagasabb frekvenciakomponensének durva becslése, amely a BW=0,35/tr képleten alapul. Ebben tr. az az időtartam, amíg egy négyszögjel a teljes amplitúdó 10 és 90%-a között változik.
Analóg bemenetek
Az első és második fajta tranziens csökkenthető vagy kiküszöbölhető, ha a digitál-analóg átalakítóval (DAC) előtöltjük az ADC mintavevő-tartóáramkörében használt kondenzátort. Ehhez állítsuk be a DAC kimenőfeszültségét úgy, hogy az jól közelítse azt a feszültséget, amit várhatóan az ADC-nek mintavételeznie kell. Ennek az előtöltésnek a külső mérendő ADC csatornára való átkapcsolás előtt meg kell történnie. Ha a mérendő feszültség jó közelítése ismert, a DAC segítségével a kondenzátor egy, a valóságos mérendő feszültséghez hasonló értékre tölthető fel (következésképpen a mérendő csatornára való átkapcsoláskor nem keletkezik jelentős áramugrás a kondenzátoron – A szerk. megj.).
A harmadik fajta analóg tranziens elkerülhető azzal, hogy amint a konverzió elkezdődött, de még annak a befejeződése előtt az ADC-t egy másik csatornára kapcsoljuk át. Ehhez válasszuk ki először a mérendő csatornát, majd indítsuk el a konverziót. Utána kapcsoljuk át az ADC-t arra a csatornára, amit ezután mérni akarunk. Ezt követően a konverzió véget ér, és a folyamat újra kezdődik.
Következtetés
Legyünk óvatosak, amikor az ADC csatornái között váltunk, mivel a kapcsolólogika akaratunktól eltérő módon befolyásolhat más I/O kivezetéseket. A cikkben leírt javaslatokkal a nem kívánatos hatások nagy részének elejét vehetjük. A korszerű mikrovezérlőkben a digitális és analóg áramkörök egymás közelében vannak, amely számos, előre nem látható problémát okozhat. Ám ha követjük a cikkben ismertetett néhány vezérfonalat, robusztus alkalmazást lehet megvalósítani.
Szerző: Anthony Stram – Microchip Technology
www.microchip.com
Még több Microchip
[1] A cikk angol eredetije a „glitch” kifejezést használja, amely általában egy statikus jel értékének rövid idejű megváltozását vagy egy egyszeres jelátmenet többszöröződését jelenti. Szokás ezt „tűimpulzusnak” vagy „tüskének” is nevezni, de ez korlátozó értelmű, mert nem foglalja magában a jelváltás megtöbbszöröződését, amit külön névvel, „pergésként” vagy „prellként” is szokás emlegetni. Ezeket a „múló” tranziens jelenségeket ezért e cikkben a „tranziens” gyűjtőnévvel fordítjuk. – A ford. megj.
[2] Egy impulzus energiatartalma lényegében a görbe alatti terület abszolút értékével arányos, tehát a csökkentése gyakorlatilag az amplitúdójának és/vagy az időtartamának a csökkentésével érhető el.
[3] Ha ez a feltétel „éppenhogy csak” teljesül, akkor a tranziens amplitúdója csak 63%-ra csökken. Ez nem minden esetben elég arra, hogy a külső áramkört már ne zavarja meg számottevően. A feltétel ötszörös „túlteljesítése”, az 5τ idő már nagy valószínűséggel elegendő, hiszen a tranziens ekkor már kevesebb mint 1%-ára csökken. A túl nagy időállandó viszont már a jelátmeneteket késleltetheti elfogadhatatlan mértékben. Célszerű tehát a „worst case” tranziensamplitúdó és az időzítési követelmények figyelembe vételével megfelelő kompromisszumot keresni. – A szerk. megj.
[4] Ez a feltétel közelítőleg az előző lábjegyzetben megfogalmazott időtartománybeli feltételnek a frekvenciatartománybeli megfelelője. Mivel a gyakorlatban a tranziensek időtartománybeli viselkedéséről (és ugyanígy a spektrumáról is) rendszerint csak közelítő adataink vannak, amelyek időben változhatnak is, egyik megközelítés szerint sem végezhetünk pontos méretezést, de ez rendszerint nem is szükséges. – A szerk. megj.