• Rezultati Niso Bili Najdeni

Ljubljana,2021 Nizkocenovnidomanarejeniosciloskopzaljubiteljeelektrotehnike TilenBabiˇc UniverzavLjubljani

N/A
N/A
Protected

Academic year: 2022

Share "Ljubljana,2021 Nizkocenovnidomanarejeniosciloskopzaljubiteljeelektrotehnike TilenBabiˇc UniverzavLjubljani"

Copied!
75
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za elektrotehniko

Tilen Babiˇc

Nizkocenovni doma narejeni osciloskop za ljubitelje

elektrotehnike

Diplomsko delo

Visokoˇsolski strokovni ˇstudijski program prve stopnje Aplikativna elektrotehnika

Mentor: doc. dr. Matija Pirc

(2)
(3)

Zahvala

Na tem mestu bi se rad zahvalil podjetju Metrel d.d. in sodelavcem, ki so mi omogoˇcili izvedbo diplomskega dela. Predvsem bi rad izpostavil Simona Hriber- nika, ker mi je zmeraj rad priskoˇcil na pomoˇc. Zahvalil bi se tudi mentorju doc.

dr. Matiji Pircu za strokovno pomoˇc, odzivnost in nasvete pri izdelavi zakljuˇcnega dela. Posebna zahvala pa gre druˇzini ter dekletu za podporo in motivacijo tekom ˇstudija.

(4)

iv

(5)

Povzetek

Osciloskop se uporablja za opazovanje elektriˇcnih signalov v doloˇcenem ˇcasovnem intervalu in je nepogreˇsljiva naprava vsakega elektrotehnika. Ker je za mnoge od nas njegova cena previsoka, smo ga v sklopu diplomskega dela naredili sami.

Izdelali smo tri kanalni osciloskop z diferencialno vhodno stopnjo in nastavlji- vim napetostnim obmoˇcjem od 0,5 do 330 V. Za delovanje uporablja preprost proˇzilec, ki je ena bolj pomembnih funkcij osciloskopa. Ta omogoˇca proˇzenje, kadar vhodni signal preˇcka nastavljivo referenˇcno napetost, kar pripomore k bolj uˇcinkovitemu opazovanju hitrih signalov. Osciloskop ima 16 bitno loˇcljivost vzorˇcenja in nastavljivo hitrost zajemanja vse do 1M S/s.

Uporabili smo mikrokrmilniˇski razvojni komplet STM32H750B-DK, ker smo ga ˇze imeli doma in smo si s tem zmanjˇsali stroˇske izdelave. Ta je nekoliko draˇzji, vendar bi ga lahko nadomestili s katerimkoli kompletom znamke STMicroelectro- nics, pri ˇcimer bi bilo potrebno projekt nekoliko prilagoditi. Nanj smo priklopili dodatno tiskano vezje za katerega smo, z izdelavo, odˇsteli pribliˇzno 25e.

Kljuˇcne besede: osciloskop, ADC, STM32, mikrokrmilnik, STM32H750

(6)

vi Povzetek

(7)

Abstract

An oscilloscope is a device used for observing electrical signals at a specific time interval and is indispensable for any electrical engineer. Since the price is normally quite high, we made it ourselves as a part of our final work.

We made a three-channel oscilloscope with a differential input and an ad- justable voltage range from 0,5 to 330V. It uses a simple trigger, which is one of the most important functions of the oscilloscope. Trigger notifies microcontroller to start sampling when the input signal crosses the voltage reference, which helps with observing fast signals. The oscilloscope has a 16-bit sampling resolution and an adjustable capture speed, which reaches up to 1 M S/s.

To reduce the cost of the project we used the STM32H750B-DK microcon- troller development kit, because we already had it at home. Although this devel- opment kit is a bit more expensive, it could be replaced with any STMicroelec- tronics board where the project would need to be slightly modified. We connected an additional printed circuit board to it, which cost approximately 25e.

Key words: oscilloscope, ADC, STM32, microcontroller, STM32H750

(8)

viii Abstract

(9)

Vsebina

1 Uvod 1

2 Pregled uporabljene opreme in tehnologij 3

2.1 Razvojni komplet STM32H750B-DK . . . 4

2.1.1 Mikrokrmilnik STM32H750 . . . 4

2.2 Uporabljene periferne enote . . . 5

2.2.1 Analogno-digitalni pretvornik . . . 6

2.2.1.1 Delovanje analogno-digitalni pretvornika v STM32 mikrokrmilnikih . . . 6

2.2.1.2 ADC pri STM32H750 mikrokrmilniku . . . 7

2.2.2 Stevci . . . .ˇ 9 2.2.2.1 Primerjalni naˇcin . . . 10

2.2.2.2 Naˇcin zajemanja . . . 10

2.2.2.3 Pulzno-ˇsirinska modulacija . . . 10

2.2.2.4 Impulzni naˇcin . . . 11

(10)

x Vsebina

2.2.3.1 Delovanje . . . 13

2.2.3.2 Nastavitev protokola . . . 13

2.3 Programska oprema . . . 14

2.3.1 Programsko okolje . . . 14

2.3.2 Operacijski sistem v realnem ˇcasu . . . 15

2.3.3 Grafiˇcni uporabniˇski vmesnik . . . 16

3 Vezje 19 3.1 Idejna zasnova . . . 20

3.1.1 Diferenˇcni ojaˇcevalnik (odˇstevalnik) . . . 20

3.1.2 Invertirajoˇci seˇstevalnik (sumator) . . . 21

3.1.3 Diferenˇcni ojaˇcevalnik z referenˇcno napetostjo . . . 22

3.1.4 Primerjalnik (komparator) . . . 23

3.2 Napajalno in referenˇcno vezje . . . 24

3.3 Vhodno vezje . . . 26

3.3.1 Izbira ojaˇcanja . . . 28

3.4 Proˇzilno vezje . . . 31

3.4.1 Histereza . . . 32

4 Program 35 4.1 Struktura programa . . . 35

4.2 Nadzorna enota . . . 36

(11)

Vsebina xi

4.3 Enota za posodabljanje perifernih enot . . . 38

4.4 Enota za zajemanje podatkov . . . 40

4.4.1 Izraˇcun vrednosti . . . 41

4.5 Grafiˇcna enota . . . 44

5 Meritve 47

(12)

xii Vsebina

(13)

Seznam slik

2.1 Izdelan osciloskop za domaˇco uporabo . . . 3

2.2 Razvojni komplet STM32H750B-DK [2] . . . 4

2.3 Shema 10 bitnega SAR AD pretvornika pri STM32 mikrokrmilni- kih [7, stran 6] . . . 6

2.4 Shema Capture/Compare kanala v STM32H750 mikrokrmilniku [3] 10 2.5 Delovanje impuznega naˇcina pri STM32 mikrokrmilnikih [3] . . . 12

2.6 Primer SPI vodila med gospodarjem in suˇznjem [12] . . . 13

2.7 Delovanje SPI [13] . . . 13

2.8 Program brez in z RTOS-om [16] . . . 16

2.9 Shema delovanja grafiˇcne TouchGFX [19] . . . 17

3.1 Dodatno tiskano vezje . . . 19

3.2 Diferenˇcni ojaˇcevalnik ali odˇstevalnik . . . 21

3.3 Invertirajoˇci seˇstevalnik ali sumator . . . 22

3.4 Diferenˇcni ojaˇcevalnik z referenˇcno napetostjo . . . 22

(14)

xiv Seznam slik

3.6 Primerjalnik ali komparator . . . 24

3.7 Napetostni pretvornik iz 5V v -5V . . . 25

3.8 Referenˇcno vezje za 3V in 1,5V . . . 25

3.9 Referenˇcno vezje za -1,5V . . . 26

3.10 Vhodno vezje 1 . . . 27

3.11 Vhodno vezje 2 . . . 28

3.12 Napetostni nivo med 0,85 in −0,85V . . . 29

3.13 Napetostni nivo med 5,6 in −5,6V . . . 30

3.14 Napetostni nivo med 56 in −56V . . . 30

3.15 Napetostni nivo med 330 in −330 V . . . 31

3.16 Proˇzilno vezje . . . 32

3.17 Izhod proˇzilnega vezja s histerezo . . . 33

4.1 Blokovna shema programske kode . . . 36

4.2 Blokovna shema zajemanja podatkov . . . 38

4.3 Razmerje med razliko napetosti na vhodu in vrednostmi AD pre- tvorbe, pri ojaˇcanju G = 0,027 . . . 42

4.4 Meni osciloskopa . . . 44

4.5 Glavni zaslon osciloskopa . . . 45

5.1 3D model osciloskopa z ohiˇsjem . . . 47

5.2 Meritev domaˇcega elektriˇcnega omreˇzja . . . 48

5.3 Zajemanje signala z 1M S/s . . . 49

(15)

Seznam tabel

2.1 Hitrost ADC-ja pri TSMPL = 1,5 . . . 8 4.1 Vrednost AD pretvorbe glede na vhodno napetost osciloskopa pri

ojaˇcanju G= 0,027 . . . 42

(16)

xvi Seznam tabel

(17)

Seznam uporabljenih simbolov

V priˇcujoˇcem zakljuˇcnem delu so uporabljene naslednje veliˇcine in simboli:

Veliˇcina / oznaka Enota

Ime Simbol Ime Simbol

elektriˇcna napetost U volt V

elektriˇcni tok I amper A

ˇcas t sekunda s

frekvenca f Hertz Hz

(18)

xviii Seznam uporabljenih simbolov

(19)

Seznam uporabljenih kratic

kratica angleˇsko slovensko

ADC Analog to digital converter analogno-digitalni pretvornik DAC Digital to analog converter digitalno-analogni pretvornik DMA Direct memory access neposredni dostop do pomnil-

nika

GPIO General purpose input/output sploˇsnonamenski vhod/izhod PWM Pulse-width modulation pulzno-ˇsirinska modulacija PCB Printed circuit board tiskano vezje

SPI Serial peripheral interface bus serijsko periferno vodilo

RTOS Real-time operating system operacijski sistem v realnem ˇ

casu

TIM Timer ˇstevec

(20)

xx Seznam uporabljenih kratic

(21)

1 Uvod

Osciloskop je naprava, ki nam omogoˇca opazovanje elektriˇcnih signalov v doloˇcenem ˇcasovnem intervalu. Uporablja se na ˇstevilnih znanstvenih podroˇcjih kot so elektrotehnika, fizika in medicina. Zajet signal nam prikaˇze v dvodimen- zionalni obliki, iz katere razberemo njegovo frekvenco, amplitudo, ˇcas vzpona in drugo.

Poznamo veˇc vrst osciloskopov, ki jih lahko glede na naˇcin delovanja uvr- stimo v analogno ali digitalno skupino. Analogni sodijo med preprostejˇse oblike osciloskopov, saj za svoje delovanje uporabljajo katodno cev. Signale na zaslon izrisujejo s pomoˇcjo snopa elektronov. Namenjeni so za opazovanje signalov v re- alnem ˇcasu, pri ˇcimer le redki omogoˇcajo zaustavitev slike. Nekoˇc je bila uporaba analognih osciloskopov zelo razˇsirjena, danes pa so jih skoraj v celoti zamenjali digitalni, saj so cenejˇsi in bolj zmogljivi. Delujejo tako, da signal pretvorijo v vzorce, ki jih shranijo v pomnilnik. Te nato z vgrajenim raˇcunalnikom izriˇsejo na zaslon, kjer lahko opravljamo ˇstevilne meritve.

Zaradi zelo hitrega napredka mikroelektronike postajajo osciloskopi zmeraj bolj cenovno dostopni, vendar so za nas ˇstudente ˇse vedno nekoliko predragi.

Zaradi tega smo se odloˇcili, da ga izdelamo v sklopu diplomskega dela. Namen projekta je bil dokazati, da si lahko vsak, z malo znanja o programiranju in elek- troniki, sestavi cenovno ugoden osciloskop, ki bo zadostoval domaˇcim potrebam.

(22)

2 Uvod

(23)

2 Pregled uporabljene opreme in tehnologij

Ker je cilj izdelave domaˇcega osciloskopa, da si z izvedbo naredimo ˇcim manj dodatnih stroˇskov, je projekt prilagojen razvojnemu kompletu STM32H750B- DK [1], ki smo ga ˇze imeli doma. Dodali smo mu tiskano vezje ali PCB (Printed circuit board), ki je bilo zasnovano tako, da smo se izognil morebitnim teˇzavam in s tem izboljˇsali konˇcni produkt.

Slika 2.1: Izdelan osciloskop za domaˇco uporabo

(24)

4 Pregled uporabljene opreme in tehnologij

2.1 Razvojni komplet STM32H750B-DK

STM32H750B-DK je razvojni komplet, ki uporabniku omogoˇca hitro implementa- cijo prototipa, saj nam poleg zelo zmogljivega STM32H750 mikrokrmilnika kom- plet ponuja tudi ˇsirok nabor zunanjih perifernih enot. Da lahko dostopamo do vhodnih in izhodnih linij mikrokrmilnika nam je na voljo tudi 6 analognih in 18 digitalnih prikljuˇckov, ter 8 napajalnih linij preko katerih lahko ploˇsˇcico napa- jamo tudi z baterijo. Za laˇzjo komunikacijo med uporabnikom in aplikacijo ima ploˇsˇcica vgrajen barven ekran na dotik in uporabniˇski gumb ter led diode. Poleg USB in Ethernet priklopa nam razvojni komplet ponuja tudi vgrajen STLINK- V3E, ki nam s pomoˇcjo ostalih orodji, ki jih ponuja podjetje STMicroelectronics, omogoˇca programiranje in razhroˇsˇcevanje.

Slika 2.2: Razvojni komplet STM32H750B-DK [2]

2.1.1 Mikrokrmilnik STM32H750

STM32H750 [3] je mikrokrmilnik proizvajalca STMicroelectronics [4], ki vsebuje 32 bitno ARM Cortex -M7 jedro. Procesorsko uro lahko nastavimo do frekvence 480 MHz. Jedro mikroprocesorja je zasnovano na RISC arhitekturi (Reduced Instruction Set Computer), kar pomeni, da ima relativno manjˇsi nabor ukazov, zato je hitrejˇsi in cenejˇsi od CISC (Complex Instruction Set Computer) procesor- jev. Ker so v procesor implementirani enostavnejˇsi ukazi, s katerimi se sestavlja kompleksne operacije, se veˇcina ukazov izvede v enem urinem ciklu. Le ukazi za

(25)

2.2 Uporabljene periferne enote 5

delo s pomnilnikom vzamejo veˇc procesorskega ˇcasa. Enake dolˇzine ukazov se kot prednost najbolj izkaˇzejo pri mikroprocesorjih s cevovodi, saj se zaradi enakih dolˇzin ukazov cevovodi najbolj optimalno zapolnijo.

Mikrokrmilnik uporablja 128kB flash pomnilnika namenjenega shranjevanju programa in 1 MB RAM-a, ki pa je hitrejˇsi in shranjuje spremenljivke ter druge podatke. Poleg notranjega spomina krmilnik omogoˇca tudi periferne enote za dostopanje do zunanjih pomnilnikov. Ima 168 veˇcnamenskih vhodov in izhodov, s katerimi lahko dostopamo do periferije mikrokrmilnika.

Ponuja veliko raznliˇcni perifernih modulov, od katerih smo uporabili:

• SPI (Serial Peripheral Interface)

• ADC (Analog-to-digital converter)

• TIM (Timers)

• DMA (Direct memory access)

• LCD-TFT (Liquid crystal display - thin film transistor) kontroler

2.2 Uporabljene periferne enote

Vsak mikrokrmilnik sestavljajo trije osnovni deli: procesorska enota, pomnil- nik ter vhodne in izhodne periferne enote. Procesorska enota izvaja program- ske ukaze, ki so zapisani v pomnilniku, medtem ko periferne enote povezujejo procesor z zunanjim svetom preko vhodnih in izhodnih linij na mikrokrmilniku.

STM32 linija ponuja tudi bolj zmogljive mikrokrmilnike, kar se odraˇza s hitro- stjo procesorja in ˇsiroko ponudbo perifernih modulov. Poleg tega lahko vsako periferno enoto poljubno inicializiramo, kar razbremeni procesor, vendar postane implementacija le te vˇcasih zelo zahtevna.

(26)

6 Pregled uporabljene opreme in tehnologij

Ker smo se ˇzelel pri projektu preizkusiti tudi na tem podroˇcju, smo se odloˇcil, da se implementacije lotimo sami. Celotna inicializacija je vzela veliko ˇcasa, vendar smo se tekom nje veliko nauˇcili. V tem poglavju so na kratko predstavljeni kljuˇcni periferni moduli, ki so uporabljeni v projektu.

2.2.1 Analogno-digitalni pretvornik

Pri zadanem projektu je kljuˇcnega pomena, da uporabimo Analogno-digitalni pretvornik ali ADC (Analog-to-digital converter). Ta nam omogoˇci pretvorbo vhodnih signalov v digitalna ˇstevila s katerimi lahko operiramo v programski kodi. Poznamo veˇc izvedb AD pretvornikov, vendar se danes v veˇcini mikrokrmil- nikov uporablja AD pretvornik s postopnim pribliˇzevanjem ali SAR (Successive- approximation-register) [8]. Ta je hiter, zanesljiv in porabi malo energije, kar je za mikrokrmilnike ˇse posebej pomembno.

2.2.1.1 Delovanje analogno-digitalni pretvornika v STM32 mikrokr- milnikih

Kot skoraj vsi AD pretvorniki, tudi SAR, v osnovi deluje na naˇcin vzorˇcenja in zadrˇzevanja (ang. Sample & Hold). Princip delovanja je zelo preprost. Ko je stikalo sklenjeno, kondenzator sledi vrednosti vhodne napetosti, ko pa stikalo razklenemo kondenzator zadrˇzi zadnjo vrednost vhoda, ki jo zajamemo z AD pretvornikom. Slika 2.3 prikazuje shemo SAR ADC v STM32 mikrokrmilnikih.

Slika 2.3: Shema 10 bitnega SAR AD pretvornika pri STM32 mikrokrmilnikih [7, stran 6]

(27)

2.2 Uporabljene periferne enote 7

Loˇcljivost je opredeljena kot napetost za katero se mora spremeniti vhod AD pretvornik, da povzroˇci spremembo enega bita na digitalnem izhodu. Izraˇcunamo jo po enaˇcbi 2.1 [7, stran 10]:

LSB = VH REF −VL REF

2n (2.1)

pri ˇcimer je VH REF −VL REF obmoˇcje delovanja AD pretvornik, LSB en bit digitalnega izhoda in n bitna vrednost AD pretvornika.

V enaˇcbi 2.1 opazimo, da je loˇcljivost odvisna tudi od bitne vrednosti AD pretvornika. Ta doloˇca koliko korakov pribliˇzevanja se bo izvedlo pri odˇcitavanju pribliˇzka. Ta vrednost se ponavadi nastavi in vpliva na hitrost vzorˇcenja. Pri- bliˇzek vhodne napetosti lahko zapiˇsemo z enaˇcbo 2.2 [8]:

VIN =M SB∗ VREF

21 + (M SB−1)∗VREF

22 +· · ·+LSB∗VREF

2n (2.2)

Kjer je:

M SB: najveˇcja vrenost bita LSB: najmanjˇsa vrednost bita

VREF: obmoˇcje delovanja AD pretvornik (VH REF −VL REF) n: bitna vrednost AD pretvornika

2.2.1.2 ADC pri STM32H750 mikrokrmilniku

Mikrokrmilnik STM32H750 vsebuje tri analogno-digitalne pretvornike. Njihovo bitno loˇcljivost lahko izbiramo med 8, 10, 12, 14 in 16 bitov. Doloˇcimo mu lahko tudi ˇcas vzorˇcenja med 1,5 in 810,5 cikli, kar pripomore k toˇcnejˇsemu rezultatu.V projektu smo uporabljali 16 bitno loˇcljivost in notranjo referenˇcno napetost 3,3V.

(28)

8 Pregled uporabljene opreme in tehnologij

16 [6, strani 14-15] razberemo najhitrejˇse delovanje in hitrost ure AD pretvornika, pri doloˇceni loˇcljivosti za razliˇcna ohiˇsja procesorja.

ADCsample rate = 1

TCON V = 1

TSM P L+TSAR (2.3) pri ˇcimer je ADCsample rate hitrost AD pretvornika, TCON ˇcas celotne pretvorbe, TSMPL ˇcas vzorˇcenja in TSAR ˇcas aproksimacije.

Z enaˇcbo 2.3 izraˇcunamo najhitrejˇse delovanje za razliˇcne bitne vrednosti, kar je prikazano v tabeli 2.1.

Tabela 2.1: Hitrost ADC-ja pri TSMPL = 1,5

Bitna vrednost hitrost ure ˇcas aproksimacije hitrost ADC n/[bits] fADC/[Hz] TSAR/[cycles] ADCsample rate/[MS/s]

8 50 4,5 8,33

10 47 5,5 6,71

12 38 6,5 4,75

14 31 7,5 3,44

16 25 8,5 2,5

Ko uporabljamo AD pretvornik pri najviˇsjih hitrostih, vrednosti ne moremo brati s procesorsko enoto, saj bi porabili celoten procesorski ˇcas za branje vzor- cev, zato moramo uporabiti DMA (Direct memory access) modul. DMA nam omogoˇci, da ima ADC neposreden dostop do pomnilnika v katerega lahko prepi- suje prebrane vrednosti, s tem pa ne obremenjuje procesorja. STM32H750 upo- rablja 2 DMA krmilnika, ki imata skupaj 16 linij po katerih se lahko prenaˇsajo podatki. Prenos podatkov nudita med pomnilniˇskimi prostori ter pomnilnikom in periferno enoto.

Ko poskrbimo za neposredno shranjevanje izhodnih vrednosti z DMA modu- lom, moramo poskrbeti ˇse za proˇzenje AD pretvornika. Perioda odˇcitavanja vre- dnosti z ADC modulom mora biti vedno enaka. Ker tega ne moremo poˇceti roˇcno v programski kodi, nam STM32H750 mikrokrmilnik ponuja proˇzenje s ˇstevci. Te se zanaˇsajo na procesorsko uro, da proˇzijo pretvorbo vedno ob pravem ˇcasu. Nji- hovo delovanje je opisano v poglavju 2.2.2.

(29)

2.2 Uporabljene periferne enote 9

2.2.2 ˇStevci

Vgrajeni sistemi uporabljajo operacije, ki so strogo ˇcasovno doloˇcene, kot na primer proˇzenje AD pretvorbe zmeraj z enako periodo. Pri takih naloga se ni pametno zanaˇsati na procesor, zato uporabljamo ˇstevce ali TIM (Timer). V osnovi so ˇstevci registri, ki s pomoˇcjo procesorske ure poveˇcujejo vrednost in se ponastavijo, ko pridejo do zgornje meje, ki jo doloˇca velikost registra, oziroma jo nastavimo sami.

Osredotoˇcili se bomo na sploˇsno-namenske ˇstevce, ki jih ponuja STM32H750.

Poleg teh mikrokrmilnik ponuja tudi: ˇstevce z visoko loˇcljivostjo, napredne ˇstevce in ˇstevce z nizko porabo. Lahko izbiramo med 16 in 32 bitnimi sploˇsno- namenskimi ˇstevci, ki ponujajo ˇstiri loˇcene kanale. Vsak kanal ponuja ˇstiri naˇcine delovanja med katerimi lahko izbiramo. Naˇcini delovanja so:

• primerjalni naˇcin (ang. Output compare)

• naˇcin zajemanja (ang. Input capture)

• pulzno-ˇsirinska modulacija (ang. Pulse-width modulation)

• impulzni naˇcin (ang. One-pulse mode)

Hitrost poveˇcevanja ˇstevca doloˇca ura, ki jo ˇstevec ˇcrpa iz procesorja. Uro lahko nastavljamo z mnoˇzilniki in delilniki tako, da najbolje ustreza naˇsi aplikaciji.

Periodo ˇstetja izraˇcunamo z enaˇcbo 2.4.

tT IM = N

fT IM (2.4)

pri ˇcimer je tTIM perioda ˇstetja, fTIM frekvenca ˇstevca in N delilnik frekvence ˇstevca.

(30)

10 Pregled uporabljene opreme in tehnologij

2.2.2.1 Primerjalni naˇcin

Primerjalni naˇcin ali OC (Output compare) primerja vrednost, ki smo jo nastavili v Capture/Compare register in vrednost v registru ˇstevca. Ko sta ti dve vrednosti enaki se proˇzi nastavljeni dogodek, ki je lahko sprememba stanja na GPIO (Ge- neral purpose Input/Output) izhodu, prekinitev ali pa deluje kot proˇzilni signal za periferno enoto krmilnika.

Slika 2.4: Shema Capture/Compare kanala v STM32H750 mikrokrmilniku [3]

2.2.2.2 Naˇcin zajemanja

Naˇcin zajema ali IC (Input capture) zapiˇse vrednost ˇstevca v Capture/Com- pare register takrat, ko se spremeni potencial na GPIO vhodu mikrokrmilnika.

Proˇzenje lahko nastavimo na pozitivno (Rising edge) ali pa negativno (Falling edge) spremembo potenciala na vhodu. Tako kot primerjalni naˇcin lahko tudi naˇcin zajemanja proˇzi ostale periferne enote, prekinitve in spremembe potenciala na GPIO izhodih.

2.2.2.3 Pulzno-ˇsirinska modulacija

Pulzno-ˇsirinska modulacija ali PWM (Pulse-width modulation) [10] je metoda s katero enostavno spreminjamo povpreˇcno moˇc, ki jo elektriˇcni signal dovaja

(31)

2.2 Uporabljene periferne enote 11

bremenu. PWM se uporablja v raznovrstnih aplikacijah kot so nadzorovanje svetlosti LED diod ter reguliranje hitrosti in smeri servo-motorjev.

PWM je pravokotni signal, ki mu nastavljamo razmerje med pozitivno in negativno periodo. Osnovna nastavitev je precej enostavna, vendar moramo biti pazljivi pri nastavitvi njegove frekvence. To izraˇcunamo z enaˇcbo 2.5, kjer se moramo zavedati, da viˇsja kot je vrednost ARR (Auto-reload register) registra, veˇcjo loˇcljivost lahko doseˇzemo.

fP W M = fCLK

(ARR+ 1)∗(P SC + 1) (2.5)

pri ˇcimer je fPWM frekvenca PWM signala, fCLK frekvenca ˇstevca, (ARR + 1) ˇstevilo korakov v eni periodi PWM signala in je zmeraj eno veˇcje kot je zapisano v registru ARR, ker se prvi korak ˇstetja zaˇcne z 0, ter (P SC + 1) vrednost s katero delimo frekvenco ˇstevca, ki pa je tudi zmeraj eno veˇcje od ˇstevila vP SC registru, saj vrednost P SC = 0 oznaˇcuje deljenje z 1.

Pomemben parameter pri poznavanju pulzno-ˇsirinske modulacija je tudiDuty cycle. Ta se podaja v procentih in doloˇca razmerje med pozitivnim delom periode in periodo PWM signala. Duty cycle izraˇcunamo z enaˇcbo 2.6.

DutyCycleP W M[%] = CCRx

ARRx[%] (2.6)

pri ˇcimer je DutyCyclePWM izraˇzen v procentih, CCRx oznaˇcuje vrednost Capture/Compare registra kateri doloˇca dolˇzino pozitivne periode in ARRx, ki je vrednost Auto−reload registra in doloˇca dolˇzino periode PWM signala.

2.2.2.4 Impulzni naˇcin

Impulzni naˇcin ali OPM (One-pulse mode) [9] zdruˇzuje delovanje primerjalnega naˇcina (ang. Output compare) in naˇcina zajemanja (ang. Input capture). OPM omogoˇca proˇzenje ˇstevca z zunanjim dogodkom, ki mu z nastavljivo zakasnitvijo sledi impulz. Zakasnitev oznaˇceno s tdelay nastavimo s CCRx registrom, dolˇzino

(32)

12 Pregled uporabljene opreme in tehnologij

Slika 2.5: Delovanje impuznega naˇcina pri STM32 mikrokrmilnikih [3]

2.2.3 Protokol SPI

Protokol SPI (Serial peripheral interface) [11] nam omogoˇca prenos podatkov med napravami na krajˇse razdalje, zato se v veˇcini uporablja samo pri vgrajenih sistemih (ang. embedded systems). Protokol je razvila Motorola leta 1979 in se uporablja ˇse danes, saj omogoˇca preprosto in hitro komunikacijo. SPI lahko uvrstimo v sinhrono serijsko komunikacijo, kar pomeni, da se podatki v vsako smer prenaˇsajo zaporedno, prenos pa narekuje gospodarjeva ura, ki se prenaˇsa po svoji liniji.

Vodilo SPI za komunikacijo uporablja najveˇc 4 linije (Slika 2.6):

• MOSI (Master Out Slave In)

• MISO (Master In Slave Out)

• SCLK (System Clock)

• SS (Slave Select )

pri ˇcimer sta MOSI in MISO namenjeni prenosu podatkov, SCLK prenosu ure in SS izbiri suˇznja s katerim bo gospodar komuniciral.

(33)

2.2 Uporabljene periferne enote 13

Slika 2.6: Primer SPI vodila med gospodarjem in suˇznjem [12]

2.2.3.1 Delovanje

Logika delovanja protokola je precej enostavna. Gospodar narekuje prenos z uro, ki se prenaˇsa po SCLK liniji, medtem ko suˇzenj sledi gospodarjevim navodilom.

Oba sta sesavljena iz enega Shift registra, ki prestavlja bite iz enega na drugo mesto (glej Sliko 2.7). Gospodar narekuje prenos, zato proˇzi cikel ure in poˇslje prvi bit po M OSI liniji. Nato prestavi vse ostale bite za eno mesto naprej, saj potrebuje prostor za sprejem bita. Ker je gospodar sproˇzil uro, suˇzenj poˇslje svoj prvi bit po M ISO liniji in premakne ostale bite v Shift registru za eno mesto naprej, da naredi prostor za sprejem gospodarjevega bita. Gospodar nato prepiˇse suˇznjev bit na prazno mesto. To vse se zgodi hkrati, torej v enem urinem ciklu. ˇCe je na SPI vodilu prikljuˇceno veˇc suˇznjem in ˇzelimo z njimi komunicirati posamiˇcno, uporabimo linijoSS za izbiro suˇznja.

Slika 2.7: Delovanje SPI [13]

2.2.3.2 Nastavitev protokola

(34)

14 Pregled uporabljene opreme in tehnologij

narekujeta branje in poˇsiljanje bitov. SCP OLbitom nastavimo polarizacijo ure, kar pomeni, da doloˇcimo ali se cikel zaˇcne s prehodom iz logiˇcne 0 v logiˇcno 1 ali obratno. Bit CP HA pa doloˇca fazo poˇsiljanja in odˇcitavanja, kar pomeni, da bit poˇsljemo pri prehodu ure iz 0 v 1 in beremo ko gre ta iz 1 proti 0 ali obratno. Napaˇcna nastavitev polaritete se lahko izkaˇze zelo problematiˇcno, saj lahko nevede beremo napaˇcne podatke in se tega sploh ne zavedamo.

2.3 Programska oprema

2.3.1 Programsko okolje

Pri programiranju vgrajenih sistemov je razvojno okolje bistvenega pomena. Se- stavljeno je iz urejevalnika programske kode, prevajalnika, razhroˇsˇcevalnika in programatorja. Namestimo si lahko vnaprej sestavljeno razvojno okolje ali pa si ga sestavimo sami. Obe reˇsitvi imata svoje slabosti in prednosti:

Vnaprej sestavljeno razvojno okolje:

• Prednost: zdruˇzuje vse komponente, ki jih potrebujemo za razvoj produkta, v enem programu.

• Slabost: ponavadi so taka razvojna okolja plaˇcljiva, obstajajo tudi ne- plaˇcljive razliˇcice, ki pa imajo ˇstevilne pomankljivosti.

• Primeri: Keil MDK, IAR, STM32CubeIDE

Razvojno okolje, ki si ga sestavimo sami:

• Prednost: izberemo si programsko opremo, ki nam najbolj ustreza, pri ˇcimer je lahko ta povsem brezplaˇcna.

• Slabost: namestitev nam lahko povzroˇca kar nekaj teˇzav, ˇce z njo nimamo izkuˇsenj.

• Primer: Eclipse IDE→GCC (GNU Compiler Collection)→OpenOCD → ST-LINK

(35)

2.3 Programska oprema 15

Za programiranje smo uporabljali programsko okolje Keil MDK [14]. MDK je najobseˇznejˇsa reˇsitev za razvoj programske opreme za mikrokrmilnike na osnovi ARM arhitekture in vkljuˇcuje vse komponente, ki jih potrebujemo za ustvarjanje, izdelavo in odpravljanje napak v vgrajenih aplikacijah. Temelji na µV ision IDE (integrated development environment) okolju in vkljuˇcuje razhroˇsˇcevalnik , preva- jalnik ARM C/C++ in bistvene komponente vmesne programske opreme. Je eno- staven za uporabo in ponuja ˇstevilne knjiˇznice. Keil ponuja neplaˇcljivo razliˇcico MDK-Lite namenjeno majhnim projektom in izobraˇzevanju, ki pa omejuje veli- kost projekta na 32 kB.

2.3.2 Operacijski sistem v realnem ˇcasu

Danes postajajo aplikacije vse bolj zahtevne, kar bi razvijalcem pri implementa- ciji predstavljalo veliko teˇzav, ˇce ne bi obstajali operacijski sistemi, ki delujejo v realnem ˇcasu ali RTOS (Real-time operating system). To so operacijski sis- temi, ki dajejo uporabniku obˇcutek, da se izvaja veˇc programov hkrati, kar ni popolnoma pravilno, saj lahko vsako jedro procesorja izvrˇsi samo en ukaz na en- krat. RTOS deluje tako, da program razdelimo na veˇc nalog (ang. task) med katerimi procesor skaˇce v zelo kratkem ˇcasu in nam daje obˇcutek veˇcopravilnosti (ang. multitasking). Nalogam lahko priredimo prioritete, ki doloˇcajo v kakˇsnem vrstnem redu se bodo izvedle.

Skozi ˇcas se je razvilo veliko razliˇcnih RTOS-ov. V projektu smo uporabili FreeRTOS [15] knjiˇznico s katero deluje GUI (Graphical user interface), ki je predstavljen v poglavju 2.3.3.

FreeRTOS je zasnovan tako, da je dovolj majhen za delovanje na mikrokrmil- nikih. Sodi med najbolj priljubljene RTOS-e uporabljene v vgrajenih sistemih, saj

(36)

16 Pregled uporabljene opreme in tehnologij

Slika 2.8: Program brez in z RTOS-om [16]

2.3.3 Grafiˇcni uporabniˇski vmesnik

Grafiˇcni uporabniˇski vmesnik ali GUI (Graphical user interface) uporabniku omogoˇca komunikacijo z elektronsko napravo preko grafiˇcnih ikon. Pri vgraje- nih sistemih grafiˇcne knjiˇznice hitro postanejo preveˇc zahtevne in porabijo veˇcino procesorskega ˇcasa, zato je zelo pomembno, da izberemo dobro optimiziran GUI.

Optimizacijo knjiˇznice razvijalci doseˇzejo z uporabo objektnega programiranja in RTOS-a.

V projektu smo uporabili TouchGFX GUI [18], ki ga ponuja podjetje STMi- croelectronics. TouchGFX Designer je orodje v katerem uporabnik sam ustvari grafiko za zaslonu na mikrokrmilnika, nato mu ta generira programsko kodo in jo vkljuˇci v projekt. Prilagojen je STM32 liniji mikrokrmilnikov in za boljˇso optimizacijo uporablja FreeRTOS ter programski jezik C++. Program za obli- kovanje zaslona vsebuje nekaj grafiˇcnih ikon, kot so tipke, drsniki in tekstovna polja, vendar ponuja tudi moˇznost, da jih naredimo sami. Za vsako ikono imamo moˇznost razliˇcnih akcij, ki jih lahko v projektu napiˇsemo tudi sami. Pri pisanju akcij moramo pazit na programsko strukturo, ki nam jo v projekt vnese knjiˇznica TouchGFX. Grafiˇcna knjiˇznica deluje na podlagi MVP (model-view-presenter) arhitekture, ki je prikazana na sliki 2.9. Naloga modela je, da sprejema podatke iz glavnega dela programa (backend system) in jih poˇsilja view enoti in obratno.

View skrbi za prikaz na zaslonu in komunikacijo z uporabnikom, medtem ko je

(37)

2.3 Programska oprema 17

presenter vmesna enota preko katere potekajo vsi dogodki.

(38)

18 Pregled uporabljene opreme in tehnologij

(39)

3 Vezje

Zadano nalogo bi bilo nemogoˇce izvesti brez dodatnega vezja na vhodu AD pre- tvornika, zato smo naˇcrtali dodatno tiskano vezje ali PCB (printed circuit board) in ga prikljuˇcili na razvojni komplet STM32H750B-DK. V tem poglavju je pred- stavljena idejna zasnova in posamezni deli naˇcrtanega vezja ter problematike, ki so se pojavile pri uporabi tiskanine.

Slika 3.1: Dodatno tiskano vezje

(40)

20 Vezje

3.1 Idejna zasnova

Izvor problema, zaradi katerega je bilo potrebno narediti dodaten PCB, je merilno obmoˇcje v katerem deluje ADC mikrokrmilnika. Merilno obmoˇcje, ki je med 0 in 3,3V, je za potrebe projekta premajhno, poleg tega pa omogoˇca merjenje samo pozitivnih napetostnih signalov. V vezje smo ˇzeleli dodati ˇse preprost proˇzilec (ang. trigger), ki je ena izmed bolj pomembnih funkcij osciloskopa.

Pri naˇcrtovanju vezja smo se drˇzali naslednjih ciljev:

• trije loˇceni kanali z diferencialnimi vhodi

• nastavljive vrednosti ojaˇcanja na vhodu

• prilagoditev napetostnega nivoja na merilno obmoˇcje AD pretvornika

• preprost proˇzilec

3.1.1 Diferenˇcni ojaˇcevalnik (odˇstevalnik)

Da smo vhodno napetost zmanjˇsali na obmoˇcje, ki ga lahko zajemamo z AD pre- tvornikom, je potrebno uporabiti vezavo diferenˇcnega ojaˇcevalnika, ki je prikazan na sliki 3.2. Diferenˇcni ojaˇcevalnik ali odˇstevalnik [25] je sestavljen iz inverti- rajoˇcega ojaˇcevalnika in neinvertirajoˇcega ojaˇcevalnika z delilnikom na vhodu.

Izhodno napetost VOU T lahko izraˇcunamo z enaˇcbo 3.1 [20].

VOU T =−V1 (︃R3

R1 )︃

+V2

(︃ R4 R2+R4

)︃ (︃

R1+R3 R1

)︃

(3.1) Ce predpostavimo, da veljaˇ R1 =R2 inR3 =R4, lahko enaˇcbo 3.1 poenostavimo v enaˇcbo 3.2.

VOU T = R3

R1(V2−V1) (3.2)

pri ˇcimer je RR3

1 faktor ojaˇcanja razlike med signaloma V1 in V2 na vhodu.

(41)

3.1 Idejna zasnova 21

Slika 3.2: Diferenˇcni ojaˇcevalnik ali odˇstevalnik

Pri vezavi diferenˇcnega ojaˇcevalnika moramo biti pazljivi na sofazno napako, ki nastane ko se upornosti R1 in R2 ter R3 in R4 ne ujemata. Pri izbiri uporov moramo biti pazljivi na toleranco upora, ki jo predpiˇse proizvajalec. Ta nam pove, za kolikˇsen procent lahko upornost odstopa od navedene vrednosti, zato moramo izbrati upore s ˇcim manjˇso toleranco.

3.1.2 Invertirajoˇci seˇstevalnik (sumator)

Z diferenˇcnim ojaˇcevalnikom smo signal ustrezno ojaˇcali, potrebno pa je negativne napetosti prestaviti v pozitivno obmoˇcje, da jih bomo lahko zajeli z AD pretvor- nikom mikrokrmilnika. V ta namen smo uporabili invertirajoˇci seˇstevalnik ali sumator [21] (slika 3.3), ki temelji na vezavi invertirajoˇcega ojaˇcevalnika. ˇZe ime nam pove, da invertirajoˇci seˇstevalnik seˇsteje vhodne signale in jim obrne fazo.

Izhodna napetost VOU T se izraˇcuna z enaˇcbo 3.3 [25].

−VOU T =V1 (︃Rf

R1 )︃

+V2 (︃Rf

R2 )︃

(3.3)

(42)

22 Vezje

Slika 3.3: Invertirajoˇci seˇstevalnik ali sumator 3.1.3 Diferenˇcni ojaˇcevalnik z referenˇcno napetostjo

Ce diferenˇˇ cni ojaˇcevalnik in sumator, predstavljena v poglavju 3.1.1 in 3.1.2, veˇzemo zaporedno lahko ustrezno prilagodimo napetostni nivo ˇzeljenemu meril- nemu obmoˇcju. Seveda to ni edina reˇsitev s katero bi lahko reˇsili zadano nalogo.

V nadaljevanju je predstavljen drugaˇcen naˇcin vezave diferenˇcnega ojaˇcevalnika, s katerim doseˇzemo popolnoma isto funkcionalnost, vendar pri tem uporabimo manj komponent. Vezava diferenˇcnega ojaˇcevalnika na sliki 3.4 se s tistim na sliki 3.2 razlikuje le po tem, da na uporR4 veˇzemo referenˇcno napetost. Izhodna napetost je definirana kot razlika med potencialoma VOU T inVREF. Izraˇcunamo jo lahko z enaˇcbo 3.5, pri ˇcimer predpostavimo, da velja R1 =R2 inR3 =R4.

VREF −VOU T = R3

R1 (V2−V1) (3.5)

Slika 3.4: Diferenˇcni ojaˇcevalnik z referenˇcno napetostjo

(43)

3.1 Idejna zasnova 23

3.1.4 Primerjalnik (komparator)

Ena bolj pomembnih funkcij osciloskopa je proˇzilec (ang. trigger), katerega na- men je, da proˇzi osciloskop, kadar vhodni signal preˇcka doloˇceno referenˇcno nape- tost. V ta namen smo uporabili vezavo primerjalnika ali komparatorja [22]. Pri- merjalnik deluje tako, da priredi izhodno vrednost na podlagi primerjanja obeh vhodov. Uporabili smo vezavo neinvertirajoˇcega primerjalnika s histerezo, prika- zanega na sliki 3.6, pri ˇcimer smo uporabili napetostni komparator (ang. voltage comparator), ki deluje malo drugaˇce kot navaden operacijskega ojaˇcevalnika.

Napetostni primerjalnik je namenjen hitremu preklapljanju izhodne vrednosti.

Na izhodu ima enojno tranzistorsko stikalo z odprtim ponorom, ki se odpre ali zapre glede na rezultat primerjave vhodnih vrednosti. Uporablja se v vezavi z zunanjem pull−upuporom kot prikazuje slika 3.5.

Slika 3.5: Logika izhoda z odprtim ponorom [24]

Deluje tako (glej sliko 3.6 ), da primerja vhodni signalVIN in referenˇcni signal VREF. V primeru, da je VIN veˇcji od VREF, tranzistor ostane zaprt, zato velja VOU T = VP U LL−U P. Kadar pa je VREF veˇcja od VIN, se tranzistor odpre, zato tok steˇce proti masi, kar na izhodu pusti vrednost spodnje napajalne vrednosti

(44)

24 Vezje

logiˇcnim stanjem. To lahko povzroˇci napaˇcno proˇzenje osciloskopa in v naj- slabˇsem primeru poˇskodbo komparatorja, zato uporabimo pozitivno zaprtozanˇcno vezavo. Ta deluje tako, da preklopi iz visoke v nizko logiˇcno stanje ˇsele takrat, ko se vhodna napetost spremeni za doloˇceno vrednost, ki jo imenujemo histereza.

Histerezo doloˇca razmerje uporov R1 in R2 in se izraˇcuna z enaˇcbo 3.6 [23].

HY ST = R1

R2(VH −VL) (3.6)

pri ˇcimer je HY ST vrednost histereze, VH napetost visokega in VL napetost nizkega izhodnega stanja.

Slika 3.6: Primerjalnik ali komparator

3.2 Napajalno in referenˇ cno vezje

Vezje se napaja preko napajalnega konektorja na razvojnem kompletu STM32H750B-DK, ki ponuja napetosti 5 in 3,3V. Za napajanje nekaterih ope- racijskih ojaˇcevalnikov pa potrebujemo−5V, zato smo uporabili napetostni pre- tvornik TPS60402 (slika 3.7). Ta na izhodu vrne invertirano vhodno napetost.

Uporabili smo shemo vezja podobno tisti v podatkovnem listu integriranega vezja [26].

(45)

3.2 Napajalno in referenˇcno vezje 25

Slika 3.7: Napetostni pretvornik iz 5V v -5V

Tako kot napajalni je tudi referenˇcni del zelo pomemben, saj morajo biti referenˇcne napetosti toˇcne, da vezje deluje pravilno. V vezju potrebujemo 3 refe- renˇcne napetosti 3 , 1,5 in −1,5V. S pomoˇcjo nastavljivega regulatorja TL431 (slika 3.8) si zagotovimo referenco 2,5 V, ki jo z operacijskim ojaˇcevalnikom ojaˇcamo na 3 V. Nato dobljeno napetost razpolovimo z napetostnim delilni- kom, da dobimo napetost 1,5 V. Da zagotovimo stabilno referenco je potrebno napajalno vezje izolirati pred spremembami v vezju, zato uporabimo preprost neinvertirajoˇc ojaˇcevalnik z ojaˇcanjem 1, ki mu pravimo napetostni sledilnik. Ta s svojo visoko vhodno in nizko izhodno impedanco zagotovi stabilno referenco dobljeno iz napetostnega delilnika.

(46)

26 Vezje

Potrebovali smo ˇse referenˇcno napetost −1,5 V, za katero smo uporabili ve- zavo invertirajoˇcega ojaˇcevalnika prikazanega na slika 3.9. Posebnost te vezave je, da obrne fazo vhodnega signala pri tem pa nam z negativno povratno vezavo omogoˇca nastavitev ojaˇcanja signala. Z izbiro pravilnega razmerja med upori smo razpolovili napetost treh voltov, ki so na vhod operacijskega ojaˇcevalnika.

V celotnem referenˇcnem delu vezja smo uporabili nekoliko cenejˇse operacijske ojaˇcevalnike TL062, ki svojo nalogo opravljajo dovolj dobro.

Slika 3.9: Referenˇcno vezje za -1,5V

3.3 Vhodno vezje

Naloga glavnega dela vezja je, da prilagodi napetostni nivo vhodnega signala na obmoˇcje, ki ga lahko zajemamo z AD pretvornikom. ˇCeprav ADC mikrokrmilnika deluje v obmoˇcju med 0 in 3,3V, smo se odloˇcili, da bomo signale zajemali med 0 in 3V, saj smo lahko za to obmoˇcje ustvarili toˇcnejˇse reference.

Pri izdelavi prvih prototipov pogosto naredimo veˇc razliˇcnih tiskanih vezij, ki jih primerjamo in izberemo tistega, ki najbolje ustreza naˇsi aplikaciji. Ker je bilo na tiskanini dovolj prostora, smo se tudi jaz odloˇcili, da nanjo vkljuˇcimo dve zelo podobni vezji in ju med sabo primerjam. Shemi sta prikazani na slikah 3.10 in 3.11.

Obe vezji delujeta tako, da si na vhodu preko 4 kanalnega multiplekserja 74HC4052 izberemo ojaˇcanje glede na to, katero napetostno obmoˇcje bi radi zajemali. Vhodni signal se ustrezno zmanjˇsa ali poveˇca, nato pa ga s pomoˇcjo

(47)

3.3 Vhodno vezje 27

reference 1,5 ali −1,5 V zamaknemo v sredino merilnega obmoˇcja, da lahko zajemamo tudi negativne napetostne signale.

Na sliki 3.10 je uporabljena zaporedno vezavo diferenˇcnega ojaˇcevalnika in invertirajoˇcega seˇstevalnika, ki sta predstavljena v poglavju 3.1.1 in 3.1.2. Pri diferenˇcnem ojaˇcevalniku smo uporabili operacijski ojaˇcevalnik AD705, medtem ko je pri invertirajoˇcem seˇstevalniku uporabljen AD8606, ki sodi med Rail-to-rail izvedbe. Oznaka rail-to-rail oznaˇcuje operacijske ojaˇcevalnike, katerih izhodna napetost skoraj doseˇze napajalno, kar pri obiˇcajnih operacijskih ojaˇcevalnikih ne drˇzi.

Slika 3.10: Vhodno vezje 1

(48)

28 Vezje

Slika 3.11: Vhodno vezje 2 3.3.1 Izbira ojaˇcanja

Na vhodu lahko izbiramo med 4 razliˇcnimi ojaˇcanji. Vsako ojaˇcanje doloˇca vhodni napetostni nivo, ki ga lahko zajemamo z AD pretvornikom na mikrokrmilniku.

Pri raˇcunanju napetostnih nivoje za posamezna ojaˇcanja si lahko pomagamo z enaˇcbo 3.5. Iz enaˇcbe izrazimo razliko napetosti na vhodu in dobimo:

V2−V1 = R1 R3

(VREF −VOU T) (3.7)

Vemo, da mora biti izhodna napetostVOU T v merilnem obmoˇcju AD pretvor- nika, zato velja 0 V ≤ VOU T ≥ 3 V. Referenˇcno napetost VREF je enaka 1,5 V kar lahko razberemo iz sheme na sliki 3.11. ˇCe v enaˇcbo 3.7 vstavimo vrednosti za obe skrajnosti izhodne napetosti, dobimo napetostno obmoˇcje, v katerem lahko zajemamo signale pri doloˇcenem ojaˇcanju.

(49)

3.3 Vhodno vezje 29

Vrednost ojaˇcanja signala izbiramo z multiplekserjem 74HC4052. Ta deluje kot stikalo, ki preklaplja med ˇstirimi izhodnimi stanji, glede na kombinacijo iz- birnih vhodov A in B. Izbiramo lahko med naslednjimi stanji:

A=0, B=0 : Napetostni nivo je namenjen opazovanju signalov, ki so manjˇsi od samega merilnega obmoˇcja, saj je ojaˇcanje enako 3,92,2MΩMΩ ≈1,77. Razlika v napetosti na vhodih, ki jo lahko zajemamo mora biti med 0,85 in −0,85V, kar je z enaˇcbo 3.7 prikazano na spodnjem izraˇcunu.

VOU T = 0V −→ V2−V1 = 2,2MΩ

3,9MΩ(1,5V −0V)≈0,85V VOU T = 3V −→ V2−V1 = 2,2MΩ

3,9MΩ(1,5V −3V)≈ −0,85V

Slika 3.12: Napetostni nivo med 0,85 in −0,85V

A=1, B=0 : Napetostni nivo je namenjen opazovanju signalov na mikrokr- milniˇskih vezjih, ki ponavadi delujejo na napetosti 3,3 ali 5 V. Ojaˇcanje nivoja znaˇsa 2,2590MΩkΩ ≈0,27, razlika napetosti na vhodu pa mora biti v mejah med 5,6 in −5,6V, kar je prikazano na spodnjem izraˇcunu.

(50)

30 Vezje

Slika 3.13: Napetostni nivo med 5,6 in−5,6V

A=0, B=1 : Napetostni nivo je namenjen merjenju srednje velikih signalov.

Ojaˇcanje znaˇsa 2,259MkΩ ≈0,027, razlika napetosti na vhodu pa mora biti v mejah med 56 in −56V, kar je prikazano na spodnjem izraˇcunu.

VOU T = 0V −→ V2−V1 = 2,2MΩ

59kΩ (1,5V −0V)≈56V VOU T = 3V −→ V2−V1 = 2,2MΩ

59kΩ (1,5V −3V)≈ −56V

Slika 3.14: Napetostni nivo med 56 in −56V

A=1, B=1 : Napetostni nivo je namenjen opazovanju visokih napetosti, vse do signala v domaˇcem elektriˇcnem omreˇzju. Ojaˇcanje znaˇsa 2,210MkΩ ≈ 4,55· 10−3, razlika napetosti na vhodu pa mora biti v mejah med 330 in−330 V, kar je prikazano na spodnjem izraˇcunu.

VOU T = 0V −→ V2−V1 = 2,2MΩ

10kΩ (1,5V −0V) = 330V VOU T = 3V −→ V2−V1 = 2,2MΩ

10kΩ (1,5V −3V) =−330 V

(51)

3.4 Proˇzilno vezje 31

Slika 3.15: Napetostni nivo med 330 in −330V

3.4 Proˇ zilno vezje

Naloga proˇzilnega dela vezja je, da obvesti mikrokrmilnik, ko vhodni signal preˇcka referenˇcno napetost. V ta namen smo uporabili vezavo napetostnega kompara- torja LM393, ki je predstavljena v poglavju 3.1.4.

Na invertirajoˇcem vhodu komparatorja je referenˇcna napetost, ki jo spremi- njamo s pomoˇcjo digitalnega potenciometra AD5160, pri ˇcimer je uporabljena 5kΩ razliˇcico ˇcipa. AD5160 smo uporabili kot napetostni delilnik med 3 in 0 V, kar je merilno obmoˇcje AD pretvornika (glej sliko 3.16). Napetost na izhodu W je odvisna od razmerja upornosti RRW B

AB, ki jo doloˇca 8 bitni register. Vrednost registra lahko nastavimo s pomoˇcjo SPI komunikacije predstavljene v poglavju 2.2.3.

Ker izhodno vrednost narekuje 8 bitni register, pomeni, da lahko na izhodu dobimo 256 razliˇcnih napetosti. Napetost na izhodu W izraˇcunamo z enaˇcbo 3.8 [27].

V (D) = D

V + 256−D

V (3.8)

(52)

32 Vezje

Slika 3.16: Proˇzilno vezje

Ce predpostavimo, da veljaˇ VA= 3V inVB = 0V, lahko enaˇcbo 3.8 poenosta- vimo v enaˇcbo 3.9.

VW(D) = D

2563V (3.9)

Komparator primerja referneˇcno napetost in vhodno napetost, ki je v naˇsem primeru ADC1. Glede na rezultat primerjave priredi napetost na izhodu, ki je:

VOU T = 0V , cˇe velja VADC1 < VREF VOU T = 3,3V , cˇe velja VADC1 > VREF

Izhod primerjalnika nato peljemo na vhod mikrokrmilnika, kjer s pomoˇcjo naˇcina zajemanja (ang. input capture), predstavljenega v poglavju 2.2.2.2, razberemo prehode vhodnega signala preko reference.

3.4.1 Histereza

Odprtozanˇcna vezava primerjalnika nam je povzroˇcala veliko teˇzav pri proˇzenju osciloskopa, zato smo uporabili pozitivno zaprtozanˇcno vezavo, ki v vezje vpe- lje histerezo. Uporabili smo histerezo velikosti 100mV. S pomoˇcjo enaˇcbe 3.6 izraˇcunamo razmerje uporov R1 inR2:

R1

R2 = HY ST

VH −VL = 0,1V

3,3V −0V = 0,1V

3,3V −→ R1 R2 = 1

33 (3.10)

(53)

3.4 Proˇzilno vezje 33

Izbrali smo upora R1 = 100 Ω in R2 = 3300 Ω, ki ustrezata izraˇcunanemu razmerju. Slika 3.17 prikazuje izhodno vrednost proˇzilnega dela vezja v modri barvi, glede na referenˇcno in vhodno napetost v rumeni in vijoliˇcasti barvi.

(54)

34 Vezje

(55)

4 Program

Programska koda je napisana v Keil MDK [14] programskem okolju, ker ima zelo dobro podporo za mikrokrmilnike, ki uporabljajo ARM jedra. Uporabili smo visoko zmogljivo grafiˇcno knjiˇznico TouchGFX [18], ki zaradi svoje strukture model-view-presenter omogoˇca enostavno uporabo v kateremkoli projektu. Pro- gram deluje s pomoˇcjo operacijskega sistema FreeRTOS [15], koda pa je v celoti napisana v programskem jeziku C++.

4.1 Struktura programa

Pri veˇcjih projektih pogosto naletimo na problem, da je koda nepregledna, zato je zelo pomembno, da je program dobro strukturiran. To naredimo tako, da ga razdelimo na veˇc nalog ali opravil, ki smo jih zaradi boljˇse preglednosti loˇcil na ˇstiri enote. Slika 4.1 prikazuje poenostavljeno strukturo programa, pri kateri je vsaka od ˇstirih enot oznaˇcena s svojo barvo.

Program se deli na:

• Nadzorno enoto

• Enoto za posodabljanje perifernih enot

• Enota za zajemanje podatkov

(56)

36 Program

Slika 4.1: Blokovna shema programske kode

4.2 Nadzorna enota

Nadzorna enota (ang. control unit), ki je na sliki 4.1 oznaˇcena z modro barvo, poskrbi za inicializacijo periferije in je kljuˇcnega pomena za strukturo programa, saj omogoˇca povezovanje vseh ostalih enot. Poleg tega nam olajˇsa tudi raz- hroˇsˇcevanje, saj so vse akcije med enotami zbrane na enem mestu in hitro ugo- tovimo v katerem delu kode je priˇslo do napake.

Ob zagonu program skoˇci vmain funkcijo, ki kliˇce nadzorno nitControl Task.

Na zaˇcetku funkcije se izvede Init, ki poskrbi za vso zaˇcetno inicializacijo, nato pa program preide v neskonˇcno zanko.

(57)

4.2 Nadzorna enota 37

Funkcija nadzorne niti je naslednja:

1 # d e f i n e C H A N G E _ M O D E 0 x01

2 # d e f i n e G R A P H _ C A L C U L A T E D 0 x02

3 # d e f i n e U P D A T E _ H A R D W A R E 0 x04

4

5 v o i d C o n t r o l _ T a s k (v o i d * p v P a r a m e t e r s ) {

6 u i n t 3 2 _ t u l N o t i f i e d V a l u e ;

7 I n i t () ;

8

9 for( ; ; ) {

10 if( x T a s k N o t i f y W a i t (0 , U L O N G _ M A X , & u l N o t i f i e d V a l u e , p o r t M A X _ D E L A Y ) == p d T R U E ) {

11 if( u l N o t i f i e d V a l u e & C H A N G E _ M O D E ) {

12 // c r e a t e new m o d e t a s k

13 }

14 if( u l N o t i f i e d V a l u e & G R A P H _ C A L C U L A T E D ) {

15 // n o t i f y GUI t h a t g r a p h v a l u e s are r e a d y

16 }

17 if( u l N o t i f i e d V a l u e & U P D A T E _ H A R D W A R E ) {

18 // c a l l h a r d w a r e u p d a t e

19 }

20 }

21 u l N o t i f i e d V a l u e = 0;

22 }

23 }

Kot prikazuje zgornja koda smo v zanki uporabil funkcijo xTaskNotifyWait, ki pripadaFreeRTOS knjiˇznici [17]. Ta zamrzne trenutno nit, ki pa jo lahko zbu- dimo z ukazom kot je na primer xTaskNotify. Posebnost teh dveh funkcije je v tem, da prenaˇsata tudi 32 bitno sporoˇcilo, ki smo ga shranil v spremenljivkoulNo-

(58)

38 Program

4.3 Enota za posodabljanje perifernih enot

Ce ˇˇ zelimo tekom izvajanja programa zagotoviti pravilno delovanje, je potrebno ustrezno posodabljati periferijo (hardware update unit). Preden si pogledamo enoto za posodabljanje perifernih enot, ki je na sliki 4.1 oznaˇcena z oranˇzno barvo, je potrebno razumeti postopek zajemanja vzorcev in kaj vpliva nanj. Na sliki 4.2 je prikazana blokovna shema poti, ki jo naredi vzorec do izrisa na zaslonu.

Slika 4.2: Blokovna shema zajemanja podatkov

Signal vzorˇcimo z AD pretvornikom mikrokrmilnika, pred tem pa ga na vhodu ustrezno napetostno prilagodimo. Nadvse pomembno je, da vzorce zajemamo z enako ˇcasovno periodo, zato AD pretvorbo proˇzimo s ˇcasovnikom. Vzorce v pomnilnik shranjujemo z DMA modulom, saj nam z roˇcnim odˇcitavanjem ne bi uspelo doseˇci tako velikih hitrosti vzorˇcenja. DMA deluje v cikliˇcnem naˇcinu in shranjuje vzorce v vektor dolˇzine 214. Ob proˇzenju vzorce prepiˇsemo v manjˇsi vektor, nato jih preraˇcunamo tako, da ustrezajo izrisu na zaslon.

Uporabnik lahko med vzorˇcenjem spreminja tri parametre: ˇcasovno periodo (ang. time step) in napetostni nivo vzorˇcenja (ang. gain step) ter napetostni nivo proˇzilca (ang. trigger reference). Napetostni nivo vzorˇcenja doloˇca ojaˇcanje na vhodnem vezju, ki ga spreminjamo s pomoˇcjo funkcije updateGainStep. Vsak kanal ima na vhodu svoj multiplekser preko katerega nastavljamo napetostni nivo. Parameter channel doloˇca kanal na katerem posodabljamo ojaˇcanje, ki pa ga izberemo z muxState. Na zaˇcetku funkcije preverimo muxState in nastavimo spremenljivki muxState A ter muxState B, ki predstavljata izbirna vhoda A in B na multiplekserju. Nato se v izbirnem stavku switch, glede na izbrani kanal, s funkcijo pinSet nastavita sploˇsno namenski ali GPIO liniji mikrokrmilnika, ki sta povezani z izbirnima vhodoma.

(59)

4.3 Enota za posodabljanje perifernih enot 39

Funkcija spreminjanja napetostnega nivoja vzorˇcenja je naslednja:

1 # d e f i n e C H E C K _ B I T ( var , pos ) ((( var ) > >( pos ) ) & 1)

2

3 v o i d u p d a t e G a i n S t e p ( u i n t 8 _ t channel , u i n t 8 _ t m u x S t a t e ) {

4 u i n t 8 _ t m u x S t a t e _ A = C H E C K _ B I T ( m u x S t a t e , 0) ;

5 u i n t 8 _ t m u x S t a t e _ B = C H E C K _ B I T ( m u x S t a t e , 1) ;

6

7 s w i t c h( c h a n n e l ) {

8 c a s e CH1 :

9 p i n S e t ( P I N _ A _ 8 , m u x S t a t e _ A ) ;

10 p i n S e t ( P I N _ K _ 1 , m u x S t a t e _ B ) ;

11 b r e a k;

12 c a s e CH2 :

13 p i n S e t ( P I N _ H _ 1 5 , m u x S t a t e _ A ) ;

14 p i n S e t ( P I N _ G _ 3 , m u x S t a t e _ B ) ;

15 b r e a k;

16 c a s e CH3 :

17 p i n S e t ( P I N _ E _ 3 , m u x S t a t e _ A ) ;

18 p i n S e t ( P I N _ I _ 8 , m u x S t a t e _ B ) ;

19 b r e a k;

20 }

21 }

Periodo vzorˇcenja doloˇca frekvenca proˇzilnega signala, ki jo spreminjamo s pomoˇcjo funkcije updateTimeStep. Za proˇzenje je uporabljen sploˇsno namenski ˇstevec 15, ki deluje s frekvenco 200MHz in je v kodi oznaˇcen s TIM15.

Funkcija spreminjanja periode vzorˇcenja je naslednja:

1 v o i d u p d a t e T i m e S t e p ( u i n t 1 6 _ t a r r V a l u e , u i n t 1 6 _ t p s c V a l u e ) {

2 t i m 1 5 _ s t o p () ;

3 TIM15 - > PSC = p s c V a l u e ;

4 TIM15 - > ARR = a r r V a l u e ;

5 t i m 1 5 _ s t a r t () ;

6 }

FunkcijaupdateTimeStep sprejme dva vhodna parametra: arrValue, ki pona-

(60)

40 Program

tim15 start.

V poglavju 3.4 smo spoznali, da na napetostni nivo proˇzilca vpliva referenˇcna napetost, ki jo doloˇcimo z digitalnim potenciometrom. Ta je z mikrokrmilnikom povezan sSPI komunikacijo preko katere se podatki poˇsiljajo s pomoˇcjo funkcije updateTrigger. UpdateTrigger sprejme 8 bitno vrednostbyteValue in jo s funkcije spi2 writeByte poˇslje preko SPI2 vodila do digitalnega potenciometra.

Funkcija spreminjanja napetostnega nivoja proˇzilca je naslednja:

1 v o i d u p d a t e T r i g g e r ( u i n t 8 _ t b y t e V a l u e ) {

2 s p i 2 _ w r i t e B y t e ( b y t e V a l u e ) ;

3 }

4.4 Enota za zajemanje podatkov

Ob zagonu osciloskopa lahko uporabnik izbira med razliˇcnimi naˇcini delovanj, za katere je zadolˇzena enota za zajemanje podatkov, ki je na sliki 4.1 oznaˇcena z zeleno barvo. Izbiramo lahko med tremi naˇcini glede na delovanje proˇzilca:

• OFF: proˇzenje brez proˇzilca

• Single: enkratno proˇzenje

• Normal: nenehno proˇzenje

V prejˇsnjem poglavju smo spoznali, da se vzorci, ki jih zajamemo z AD pretvor- nikom, s pomoˇcjo DMA vodila shranjujejo v veliko kroˇzno zbirko v pomnilniku.

Naloga posameznih naˇcinov delovanja je, da iz pravilnega mesta v zbirki prepiˇsejo 300 vzorcev, ki jih nato prilagodijo izrisu na zaslon. Pri doloˇcanju mesta proˇzenja si pomagamo s prekinitvami.

Vsak naˇcin (ang. mode) delovanja uporablja svojo nit (ang. task), ki se ustvari in izbriˇse v nadzorni enoti s funkcijama xTaskCreate ter vTaskDelete. Posebnost naˇcinovnih niti glede na ostale pa je, da uporabljajo viˇsjo prioriteto (ang. above normal priority), kar pomeni prednost izvajanja kadar so v aktivnem stanju. To

(61)

4.4 Enota za zajemanje podatkov 41

je kljuˇcnega pomena, saj morajo te ob pozivu ˇcim hitreje prepisati vzorce preden jih novi pobriˇsejo. Na zaˇcetku vsake naˇcinovne niti se kliˇce inicializacija, ki nastavi vse potrebne parametre za pravilno delovanje izbranega naˇcina, nato pa program preide v neskonˇcno zanko. Kot pri nadzorni niti je bila tudi tukaj v zanki uporabljena funkcija xTaskNotifyWait, ki nit zamrzne dokler se iz prekinitve ne kliˇce funkcija xTaskNotifyFromISR.

Na zaˇcetku poglavja smo spoznali tri naˇcine delovanja programa glede na proˇzilec: OFF,Single in Normal. Pri izbiri naˇcina OFF se izris na zaslon izvede vsakih 300ms, kar doseˇzemo tako, da uporabimo ˇstevec. ˇStevec TIM2 nasta- vimo v primerjalni naˇcin (ang. output compare) in iz prekinitve vsakih 300ms kliˇcemo naˇcinovno nit TriggerOff Task. Naˇcina Single in Normal delujeta zelo podobno. Posodobitev zaslona proˇzita ob prehodu vhodnega signala preko re- ference. Takrat izhod proˇzilnega dela vezja, ki smo ga spoznali v poglavju 3.4, zamenja napetostni nivo, kar povzroˇci spremembo na vhodu mikrokrmilnika. To spremembo program prepozna z zajemalnim naˇcinom (input capture) ˇstevca in skoˇci v prekinitev (interrupt). Tam v globalno spremenljivko shranimo poloˇzaj trenutnega vzorca v zbirki. Nato poˇcakamo, da se v zbirko zapiˇse ˇse 150 vzorcev, ker ˇzelimo, da je vrednost, ki je proˇzila prekinitev, na sredini zaslona. Potem se iz prekinitve kliˇce naˇcinovna nit TriggerSingleNormal Task, ki iz zbirke prepiˇse 300 vzorcev, pri ˇcimer je vrednost proˇzenja na sredini. Razlika med naˇcinoma je to, da je potrebno priSingle proˇzenje zmeraj znova zagnati z uporabniˇskim gum- bom, kar pa pri Normal ni potrebno, saj se proˇzi ob vsakem prehodu vhodnega signala preko reference.

4.4.1 Izraˇcun vrednosti

Ko uspeˇsno prepiˇsemo vrednosti vzorcev v manjˇso zbirko, jih je potrebno prila- goditi za izris na zaslon. Pri tem uporabimo funkcijo calculateGraphValues, ki spremeni 16 bitne vrednosti AD pretvornika v slikovne pike na grafu. Na pri- meru za vhodno ojaˇcanje G = 0,027, bom pokazal kako smo se lotili postopka

(62)

42 Program

osciloskopa smo vzbujali z razliˇcnimi napetostmi, medtem pa smo v programu izpisoval 16 bitne vrednosti AD pretvorbe.

Rezultati meritev so prikazani v tabeli 4.1.

Vhodna napetost Vrednost AD osciloskopa U [V] pretvorbe

-50 4020

-40 9380

-30 14740

-20 20080

-10 25450

0 30820

10 36200

20 41560

30 46925

40 52270

50 57640

Tabela 4.1: Vrednost AD pretvorbe glede na vhodno napetost osciloskopa pri ojaˇcanju G= 0,027

0 1 2 3 4 5 6

·104

−60

−40

−20 0 20 40 60

Vrednost AD pretvorbe

VhodnanapetostosciloskopaU[V]

Slika 4.3: Razmerje med razliko napetosti na vhodu in vrednostmi AD pretvorbe, pri ojaˇcanju G = 0,027

(63)

4.4 Enota za zajemanje podatkov 43

Iz zgornjega grafa je razvidno, da je razmerje med razliko napetosti na vhodu osciloskopa in vrednostmi AD pretvorbe linearno, zato se lahko postopka pre- tvorbe lotimo z linearno interpolacijo. Najprej zapiˇsemo enaˇcbo, ki definira line- arno funkcijo:

y=kx+n (4.1)

Nato izraˇcunamo smerni koeficient premice k, s poljubnimi vrednostmi iz tabele 4.1:

k= ∆y

∆x = 50−(−50)

57640−4020 = 1,865·10−3

Iz enaˇcbe 4.1 izrazimo n in ga izraˇcunamo s poljubnimi vrednostmi:

n=y−kx −→ n= 0−1,865·10−3·30820 =−57,48 V enaˇcbo 4.1 vstavimo parametrak inn, in dobimo:

yvhod = 1,865·10−3xADC −57,48 (4.2) Napisali smo enaˇcbo po kateri se izraˇcuna razlika napetosti na vhodu glede na prebrano vrednost AD pretvornika. Sedaj ˇzelimo to enaˇcbo spremeniti tako, da bomo lahko z njo izraˇcunali vrednosti na zaslonu. Graf na zaslonu je visok 200 slikovnih pik, zato moramo vrednosti prilagoditi. Recimo, da ˇzelimo izrisovati vhodne napetosti med 40 in −40V, Predpostavimo sledeˇce:

Vhodna napetost Vrednost slikovne osciloskopa U/[V] pike na grafu [pix]

-40 0

0 100

40 200

Po enakem postopku kot prej izraˇcunamo parametre linearne funkcije slikov- nih pik na zaslonu v odvisnosti od vhodne napetosti na osciloskopu:

k= 200

40−(−40) = 2,5 , n = 100

(64)

44 Program

Ce vstavimo enaˇˇ cbo 4.3 v 4.2 dobimo primer funkcije s katero lahko iz vrednosti AD pretvorbe izraˇcunamo slikovne pike na grafu za napetostni nivo med 40V in -40V:

ypix = 2,5·(1,865·10−3xADC −57,48) + 100

ypix = 4,66·10−3xADC −43,7 (4.4) Rezultat enaˇcbe 4.4 je potrebno v programu zaokroˇziti na najbliˇzje celo ˇstevilo, saj se slikovne pike ne podajajo z decimalnimi ˇstevili. Pri pretvorbi ostalih na- petostnih nivojev osciloskopa smo uporabili enak pristop. Ko se preraˇcunajo vse vrednosti, program o tem obvesti nadzorno enoto. Ta sporoˇci grafiˇcni enoti, da lahko priˇcne z izrisom signala na zaslon.

4.5 Grafiˇ cna enota

Grafiˇcna enota ali GUI, ki je na sliki 4.1 oznaˇcena z vijoliˇcasto barvo, omogoˇca komunikacijo uporabnika s programom preko LCD ekrana na dotik. Grafiko smo zasnovali z orodjem TouchGFX, ki je predstavljeno v poglavju 2.3.3. Ob za- gonu osciloskopa se uporabniku na zaslonu prikaˇze meni, kjer lahko izbiramo med vsemi nastavitvami (glej sliko 4.4). V zgornjem delu ekrana izbiramo med kanali:

CH1,CH2 in CH3. S pritiskom na ikono lahko vsak kanal posebej priˇzgemo ali ugasnemo, pri ˇcimer se krog obarva modre barve ko je priˇzgan in sivo kadar ni.

Slika 4.4: Meni osciloskopa

(65)

4.5 Grafiˇcna enota 45

Na spodnji polovici ekrana nastavljamo delovanje proˇzilca. Najprej izbiramo med tremi naˇcini delovanjaOFF,SingleinNormal, ki so podrobneje predstavljeni v poglavju 4.4. Nato se nam, ˇce izberemo Single ali Normal, prikaˇze dodatna nastavitev s katero doloˇcimo rob proˇzenja. Moˇznost Positive izriˇse signal ko ta preˇcka referenco iz niˇzjega v viˇsji nivo, Negative pa ravno obratno. ˇCe v meniju izberemo naˇcin delovanja s proˇzenjem se nam avtomatsko priˇzge CH1, saj je to mogoˇce samo na tem kanalu.

Ko smo zadovoljni z izbranimi nastavitvami pritisnemo tipko v desnem zgor- njem kotu ekrana, ki sluˇzi preklapljanju med obema zaslonoma. Odpre se nam glavni zaslon (slika 4.5), kjer veˇcji del zavzame mreˇza za izris signalov. Na desni strani opazimo izpis nastavitev vertikale in horizontale grafa ter napetostni nivo proˇzilca. Te nastavljamo s pomoˇcjo tipke v desnem spodnjem kotu ekrana, ki menja med nastavitvami. Tipko pritiskamo toliko ˇcasa dokler se na njej ne izpiˇse ˇ

zeljena nastavitev, ki jo nato doloˇcimo z drsnikom. Pri nastavljanju proˇzilca se nam na zaslonu pojavi rumena ˇcrta, ki ponazarja izbrani napetostni nivo glede na kanalCH1. Razvojni komplet STM32H750B-DK pa vsebuje tudi uporabniˇsko tipko, s katero ustavimo zajemanje signala in ga nato znova poˇzenemo.

(66)

46 Program

(67)

5 Meritve

Meritve so zelo pomemben del razvoja novega produkta, saj nam povejo ali se inˇstrument obnaˇsa v skladu z zahtevami zastavljenimi na zaˇcetku projekta. Te je smiselno izvajati tako, da z njimi zajamemo ˇcim veˇc robnih pogojev delovanja.

Prav zato smo se odloˇcili, da naredimo dve preprosti meritvi, s katerima preve- rimo delovanje najveˇcjega napetostnega nivoja vhodne stopnje ter najhitrejˇsega vzorˇcenja osciloskopa.

Pred opravljenimi meritvami je bilo potrebno narediti ohiˇsje, da zavarujemo tako vezje kot tudi uporabnika. Naredili smo 3D model, ki smo ga natisnili s 3D tiskalnikom. Model osciloskopa je prikazan na sliki 5.1.

Slika 5.1: 3D model osciloskopa z ohiˇsjem

Prva meritev je bila izvedena tako, da je preverila delovanje najveˇcjega obmoˇcja vhodne stopnje. Napetost na domaˇcem elektriˇcnem omreˇzju je lep pri-

(68)

48 Meritve

periodot in napetost Vpeak signala:

t= 1

f = 1

50Hz = 20ms Vpeak =VRM S·√

2 = 230V ·√

2 = 325V (5.1)

Med meritvami sta bili vertikala in horizontala osciloskopa nastavljeni na 100V in 5ms na razdelek. Slika 5.2 prikazuje zajet signal iz katerega razberemo, da je pe- rioda sinusa dolga 4 razdelke, kar predstavlja 20ms. NapetostVpeak pa pribliˇzno 3,3 razdelke, kar pomeni 330 V. Izmerjeni podatki se ujemajo z izraˇcunanimi, zato lahko potrdimo delovanje izbrane vhodne napetostne stopnje.

Slika 5.2: Meritev domaˇcega elektriˇcnega omreˇzja

Pri naslednji meritvi so postale omejitve osciloskopa bolj opazne. Slika 5.3 prikazuje drugo meritev, pri kateri smo na osciloskop prikljuˇcili funkcijski gene- rator, s katerim spreminjamo vhodni signal. Ker je bil namen meritve zajeti ˇcim hitrejˇsi signal, smo ˇcasovno bazo nastavili na 25µs/Div, kar je najkrajˇsa moˇzna ˇ

casovna baza, pri kateri je frekvenca vzorˇcenja 1 M S/s. Uporabljali smo dva kanala, pri ˇcimer smo z enim zajemali sinusni in z drugim pravokotni signal. Do- bljena signala smo primerjali s signaloma zajetima s komercialnim osciloskopom, kot prikazuje slika. Iz rezultatov meritev je opazna manjˇsa pasovna ˇsirina vhodne stopnje domaˇcega osciloskopa, kar se posebej lepo vidina primeru pravokotnega

(69)

49

signala. Ker ima kvadratni signal zelo hitre prehode med nizkim in visokim sta- njem pride do popaˇcenja signala, saj vhodno vezje ni zmoˇzno slediti tako hitrim spremembam. To bi lahko reˇsil s hitrejˇsim operacijskim ojaˇcevalcem na vhodu vezja.

(70)

50 Meritve

(71)

6 Zakljuˇ cek

V diplomski nalogi je predstavljeno delovanje doma narejenega osciloskopa za lju- bitelje elektrotehnike z vsemi potrebnimi znanji za njegovo izdelavo. Osciloskop omogoˇca tri kanale z diferencialno vhodno stopnjo in nastavljivim napetostnim obmoˇcjem, s katerim lahko opazujemo signal med 100 mV in 330 V. Ima 16 bitno loˇcljivost vzorˇcenja in nastavljivo hitrost zajemanja vse do 1M S/s.

Tekom izdelave vezja smo se sooˇcili s ˇstevilnimi problemi, kot so na primer nenamerni kratki stiki, uniˇcenja komponent in neˇzeleni ˇsumi med povezavami v vezju. Ugotovili smo, da je vhodna stopnja frekvenˇcno omejena, kar vpliva na sliko zajetih signalov z visoko frekvenˇcno vsebino. Po potrebi bi lahko to lastnost izboljˇsali z draˇzjimi operacijskimi ojaˇcevalniki.

Ponavadi bi za slabˇsi osciloskop odˇsteli veˇc sto evrov, mi pa smo jih za strogo namenski del porabili 25. To zajema le ceno izdelave tiskanega vezja, saj smo poleg tega uporabili razvojni komplet STM32H750B-DK, ki smo ga ˇze imeli doma in smo si s tem zmanjˇsali stroˇske. Ta je nekoliko draˇzji (75e), vendar bi ga lahko nadomestili s katerimkoli cenejˇsim kompletom znamke STMicroelectronics, kot je na primer STM32F7508-DK (45e), pri ˇcimer bi bilo potrebno projekt nekoliko prilagoditi.

V prihodnje bi lahko osciloskopu dodali veˇc programskih funkcionalnosti kot so izraˇcun frekvence ter amplitude signala in podobne, vendar smo z velikostjo zaslona zelo omejeni. S tem bi uporabniku olajˇsali uporabo, saj mu ne bi bilo potrebno zmeraj znova opravljati izraˇcunov.

(72)

52 Zakljuˇcek

Reference

POVEZANI DOKUMENTI

[r]

[r]

Francúzsky variant tohto talianskeho štýlu (vo Francúsku bol jeho priekopníkom dnes už zabudnutý alfréd Bruneau, autor opier sen, Messidor, víchrica, následník trónu,

Tok iz fotodiode smo pretvorili v elektriˇ cno napetost s pomoˇ cjo logaritemskega ojaˇ cevalnika (ADL5310-Eval, Analog Devices, ZDA) in jo posredovali laboratorijskemu vmesniku

Tradicionalno največje investicije so izvedli v podjetju Metal Ravne, tako bo tudi v letu 2016, bistveno povečan obseg vlaganj napovedujejo še v: Cablex-M, Noži Ravne,

Ne potrebuje resnega partnerja, čeprav si morda tega želi, ne potrebuje moraliziranja okolice, kako (neprimerno) se vede, ne potrebuje številnih nasvetov, temveč potrebuje le

Tako so za resnično prehranjevanje ljudi na leto porabi okoli 8.000 km 3 vode oziroma 1.150 m 3 vode na prebivalca.. Zavedati pa se moramo, da je danes okoli 1 milijar- da

MARCAIN HEAVY, 0,5 % raztopina za injiciranje, LENIS d.o.o., nujna neregistrirana zdravila, škatla s petimi ampulami MARCAINE 0,5% SPINAL, SALUS, Ljubljana, d.d., interventno