Mérés Labor II. Elméleti feladatok

A VIK Wikiből
(MeresLabor2EllE szócikkből átirányítva)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


Adott az 1. mérés mérési utasításának 1. ábráján látható erősítő kapcsolás.

Ezen a helyen volt linkelve a meres1abra1.JPG nevű kép a régi wiki ezen oldaláról. (Kérlek hozd át ezt a képet ide, különben idővel el fog tűnni a régi wikivel együtt)


A műveleti erősítő ideális (a TL082-t helyettesíti), túlvezérelve sincs. Az R3 ellenállás értéke 0, a többi értéke: R1=15 kOhm, R2=30 kOhm.

  1. Mekkora az erősítő (feszültség)erősítése dB-ben kifejezve?
  2. A bemenetre +3 V-ot kapcsolunk. Mekkora lesz az Uki?
  3. Mekkora áram folyik a fenti esetben az R1 és R2 ellenálláson?

Az eredményeket előjelhelyesen, mértékegységgel együtt kell megadni!

Megoldás:
a/ Feszültségerősítés:



Behelyettesítve:

b/
, ahol Ube = +3V, R1=15 kOhm, R2=30 kOhm

c/ A műveleti erősítő 2 bemenete azonos potenciálon van. Ezért a 6-os lábon is megjelenik az Ube a földhöz képest. így az R1 ellenálláson a feszültsége Ube-0. A rajta átfolyó áram:
R2 ellenálláson a feszültség: Uki-Ube. Az átfolyó áram:
A többi már csak behelyettesítés.


A labor mérőhelyein használt Agilent 34401 típusú multiméter váltakozó feszültség mérésnél (mi a jele?) a jel milyen értékét méri és jelzi ki.

A multiméter váltakozó feszültségnél (AC - alternating current) négyzetes középértéket (RMS - Root Mean Square) vagy másnéven effektív értéket mér. Ez a Vpp (Peak-To-Peak) feszültség felének a gyökketted része.

A labor-mérőhelyen a funkciógenerátor kimenetét rákötjük a multiméter megfelelő mérőbemenetére. A funkciógenerátor beállítása: Sine; 1 kHz, Offset = +1 V, Ampl = 4 Vpp, Output_setup: High_Z Load, Output = ON. A multiméter milyen értéket fog jelezni?

a. az AC V gomb megnyomása után?

  • (Biztos?) 1.414 V, ilyenkor ugyanis az offsetet kiküszöböli egy kondenzátorral, 4Vpp 2V amplitudót jelent, melynek effektív értéke:

b. a DC V gomb megnyomása után?

  • 1 V (az offszetfeszültésget mutatja, mert ez a "DC komponens")

Adottak az alábbi hexadecimális számok. Írja melléjük a bináris megfelelőt is. (A baloldali számjegy a legnagyobb helyértékű.)

  • $1A = 11010
  • 0x83 = 10000011
  • 0xFC = 11111100

Külső interruptot akar programozni. Mi(ke)t kell beállítani az interrupt engedélyezéséhez? Hogyan kell a kódba helyezni az interrupt kezelő rutint (meghívás, visszatérés)?

  • A kód elején az "ugrótáblában" kell elhelyezni a kezelőrutinra való ugrás utasítást a reti és nop helyére. A címre érdemes az ITx címkét használni.
  • Az "EICRA", "EICRB" control regiszterekben be kell állítani, hogy a megfelelő vezetékeken milyen eseményre következzen be megszakítás (felfutó él, lefutó él, L szint) és az "EIMSK" regiszterben engedélyezni kell a kívánt interruptot. (Az I státuszbit bebillentése sem az ördögtől való ötlet. :) )
  • Az IT rutint a kód végén szokás elhelyezni az adott cimkével kezdve (pl.:ITx:). A kezelőrutinban használt regiszterek tartalmát a műveletek előtt le kell menteni a stack-be, majd a rutin végén vissza kell állítani a tartalmukat. Mivel az interrupt bekövetkeztekor a megszakítások letiltódnak, az IT-ből a visszatérés a "reti" utasítással történik.

Miért van szükség a nyomógombok pergésmentesítésére, és hogyan lehet azt megoldani?

Egy nyomógomb lenyomásakor az érintkezés pillanatában sok rövid impulzus keletkezhet, amit a gyors mikrokontroller több lenyomásnak érzékel. A megoldás, hogy az első impulzus érzékelése után néhány mikro-, vagy milliszekundumig nem vesszük figyelembe a bemenetet. Letiltjuk az interruptot, ha azt használjuk, és várunk.

Írjon egy AVR assembly programrészletet az ATmega128 mikrokontrollerre, mely a C portot bemenetnek, a D portot kimenetnek inicializálja!

		ldi		temp,0b00000000 
		out		DDRC,temp 
		ldi		temp,0b11111111
		out		PORTC,temp		 ;lasd 2. meres, ellenorzo kerdesek

		ldi		temp,0b11111111 
		out		DDRD,temp 

/* Amúgy a C port a LEDekhez tartozik, szóval nem tudom mi értelme van, vagy egyáltalán szabad-e bemenetként beállítani / -- Zoz - 2005.12.07.

/ Ez persze csak az AVR-Stamp128B tesztpanelre érvényes, a C portra elvileg bármit köthetnél. / - MP - 2005.12.09.

/ Szabadni nem tudom szabad-e, de működik: LED villogtatásához egyszer véletlenül a DDR értékét váltogattam a PORT helyett, és úgy is ment (ha eredetileg a LED világított) */ - tsw - 2007.05.11.

/*Szabad, sőt ledeket kezelni elegánsabb is igy. Normális boardokon forditva is vannak bekötve a ledek. Mert a microcontroller sokkal több áramot tud elvezetni mint kiadni.*/-- Main.sigma - 2009.05.15.

Írjon egy AVR assembly programrészletet az ATmega128 mikrokontrollerre, mely a C portot kimenetként kezeli. A program olvassa be a C port kivezetéseinek aktuális értékét, az értékhez adjon 2-t, majd ezt a megnövelt értéket írja vissza a C portra.

;inicializálás
	ldi	temp,0b11111111
	out	DDRC,temp		; PORTC kimenet
;progi
	in		temp,PINC
 ; in		temp, PORTC ez is u.a. csinálja, mivel a PORTC-ről a legutoljára kiírt adatot olvasod. -- [[Main.MateNagy][mate]] - 2009.05.14.
	inc	  temp
	inc	  temp
	out	  PORTC,temp

Általában mely státuszbiteket állítják az aritmetikai/logikai utasítások?

Z, C, N, V, H, (S)

Általában mely státuszbiteket állítják az adatmozgató utasítások?

Egyiket sem.

Mit jeleznek az alábbi jelzőbitek: C, Z, I?

  • C: carry: az összeadás túlcsordulása, shift esetén 9. bitként funkcionál
  • Z: zero: ha az eredmény 0
  • I: interrupt engedélyezve
  • N: az eredmény negatív
  • V: túlcsordulás kettes komplemensnél
  • S: N XOR V = Sign
  • H: half carry - az alsó 4 bit túlcsordulása
  • T: Transzfer - 1 bites tároló, BLD BST utasításokkal használható.

Az AVRStudio4 fejlesztő rendszerben "mit csinálnak" az alábbi funkciók:

  • Breakpoint
    • Az adott ponton megáll a program futása, és vár, hogy a fejlesztőkörnyezetben elindítsuk.
  • Autostep
    • Egyesével lépkedve hajtja végre a program sorait a mi beavatkozásunk nélkül. Nem egyenlő a run-nal, mert debug üzemmódban maradunk. Olyan, mintha folyamatosan nyomnánk a 'Step in' gombot.
  • Step in
    • A breakpointban alló mikrokontroller a soron következő utasítást végrehajtja, és újra megáll.
  • Step over
    • Ugyanaz, mint a step in, csak a szubrutin-hívás (call) egyetlen utasításnak számít, azaz a ret után áll meg újra.

Egy 10 bites D/A átalakító kimenő jeltartománya: -10 V .. +10 V. Mekkora az LSB névleges értéke mV-ban? (A bemenő érték legkisebb helyi értékű bitjének megváltozásához tartozó feszültségváltozás.)

Mit értünk alulmintavételezésen?

Ha nem veszünk elég mintát ahhoz, hogy a jel teljes egészében visszaállítható legyen. Shannon törvény alapján legalább a jel frekvenciájának kétszeresével kell mintavételezni.

Egy A/D átalakító bemeneti mintavételezési frekvenciája fm = 115200 Hz.

a. Milyen frekvenciájú jel esetén lesz alulmintavételezés?

  • 57600 Hz fölött

b. Az átalakítóval egy f=120 kHz frekvenciájú szinuszjelet vizsgálunk. A mintasorozatot egyszerűen visszaállítva milyen frekvenciájú és jelformájú jelet kapunk!

  • JAVÍTVA (v2.0) - Kérem átnézni! Az fm mintavételezési frekvencia 115,2kHz, az f jel frekvencia 120kHz. A mintavételezett jelben megjelenik az f jelfrekvencia mellett az fm+f es fm-f, 2*fm+f és 2*fm-f, ... k*fm+f és 2*fm-f, ahol k=1, 2, ... De a D/A átalakító csak az fm/2=57,6kHz alatti komponenseket állítja vissza, a többi elveszik. Így marad az fm-f = -4,8kHz, hiszen 2*fm-f = 110,4kHz és az e fölötti komponensek már nem lesznek benne a visszaállítható tartományban. Viszont ez negatív frekvencia, így a jel elvész (?) a visszaállítás során. (Lásd: ad-atalakit1-5.pdf, 8. oldal, 3. feladat)
  • Van -fm+f tag is (k -végtelentől +végtelenig megy), ami 4.8kHz és ez lesz a visszaállított jel frekvenciája.

Egy 2000 Hz-es szinusz jelet átengedve egy adatátviteli csatornán azt tapasztaljuk, hogy a kimenő jel 100 μs-ot késik. Számítsa ki a csatorna fázistolását!

Periódusidő:
Fázistolás: