+ All Categories
Home > Documents > Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer...

Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer...

Date post: 28-Jul-2020
Category:
Upload: others
View: 6 times
Download: 1 times
Share this document with a friend
11
UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František Burian Autoři: Michal Kalina (154757), Václav Kabátník (154754) V Brně květen 2014
Transcript
Page 1: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

UAMT VUT FEKT

Curve Tracer s mikrokontrolérem STM32

BROB

Vedoucí práce: František Burian

Autoři: Michal Kalina (154757), Václav Kabátník (154754)

V Brně květen 2014

Page 2: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

Zadání projektu:

Seznamte se se základními grafickými parametry aktivních i pasivních diskrétních součástek.

Seznamte se s mikrokontroléry rodiny STM32. Navrhněte schéma i plošný spoj zařízení, které je

schopno měřit grafické charakteristiky součástek dle zadání vedoucího. Jako řídicí obvod využijte

mikrokontrolér rodiny STM32. Pro odesílání naměřených dat do počítače sloužícího jako vizualizační

nástroj použijte rozhraní USB.

Obsah: 1) Co je to Curve Tracer ....................................................................................................................... 3

1.1. Curve Tracer, který realizujeme .............................................................................................. 3

2) Program na straně mikrokontroléru ............................................................................................... 3

2.1. Nastavení USB portu ............................................................................................................... 3

2.2. Nastavení frekvence vnitřního oscilátoru ............................................................................... 3

2.3. Nastavení vstupů a výstupů .................................................................................................... 4

2.4. Nastavení DAC ......................................................................................................................... 4

2.5. Nastavení ADC ......................................................................................................................... 4

2.6. Nastavení přerušení ................................................................................................................ 4

2.7. Obsluha ADC ............................................................................................................................ 4

2.8. Funkce main ............................................................................................................................ 4

2.9. Obsluha přerušení s hlavní smyčkou, která proměřuje charakteristiky .................................. 4

3) Program na straně PC ...................................................................................................................... 5

3.1. Graf .......................................................................................................................................... 5

3.2. Tlačítko START ......................................................................................................................... 5

3.3. Kulatá tlačítka Forward a Reverse ........................................................................................... 5

3.4. Tlačítko Draw ........................................................................................................................... 5

3.5. Tlačítko Clear chart .................................................................................................................. 5

3.6. Progress bar ............................................................................................................................. 6

3.7. Hodnota Set max voltage ........................................................................................................ 6

3.8. Hodnota Set COM .................................................................................................................... 6

3.9. Rozbalovací menu File ............................................................................................................. 6

3.9.1. Save chart as… ................................................................................................................. 6

3.9.2. Save data ......................................................................................................................... 6

3.9.3. Exit ................................................................................................................................... 6

3.10. Neviditelné položky: ............................................................................................................ 6

3.10.1. Port .................................................................................................................................. 6

3.10.2. Další části programu ........................................................................................................ 6

3.11. Příjem dat ............................................................................................................................ 6

Page 3: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

4) Návrh DPS ........................................................................................................................................ 6

4.1. Funkční schéma ....................................................................................................................... 6

4.1.1. Proudové posilnění výstupu DAC .................................................................................... 7

4.1.2. Oblast měření .................................................................................................................. 7

4.1.3. Zesilovací stupeň ............................................................................................................. 7

4.2. Schéma zapojení ...................................................................................................................... 7

4.3. DPS ........................................................................................................................................... 8

4.4. Seznam použitých součástek pro DPS ..................................................................................... 8

5) Naměřené charakteristiky ............................................................................................................... 9

5.1. Propustný směr LED ................................................................................................................ 9

5.2. Propustný směr diody přes odpor 270Ω ................................................................................. 9

5.3. Propustný i závěrný směr diody přes 270 Ω .......................................................................... 10

6) Měřící zapojení na nepájivém poli ................................................................................................ 10

7) Závěr .............................................................................................................................................. 11

1) Co je to Curve Tracer

Curve Tracer je v podstatě elektronické zařízení, které je schopné měřit a zobrazovat

voltampérové charakteristiky diskrétních součástek, jako je například dioda, tranzistor, tyristor atp.

Jedná se tedy o jakýsi osciloskop, který obsahuje i zdroje proudu či napětí.

1.1. Curve Tracer, který realizujeme Naše zařízení, je schopno měřit voltampérové charakteristiky diody. Uživatel má možnost

nastavit si maximální povolený proud měřenou součástkou, dále vykreslovat její charakteristiky do

grafu, který je možno ukládat jako obrázek ve formátu .jpg. Uživatel má taky možnost tisknout

změřené hodnoty proudu a napětí do textového souboru ve formátu .txt.

2) Program na straně mikrokontroléru

Pro řízení celého procesu používáme 32-bitový mikrokontrolér STM32F4, usazený na kitu od

firmy STMicroelectronics s jádrem ARM Cortex. Jako debugger využíváme Black Magic Probe,

namísto původního STlinku.

Knihovna, kterou jsme pro tento projekt použili se jmenuje libopencm3 a obsahuje všechny

potřebné části pro nás projekt. Program byl napsán ve vývojovém prostředí Code::Blocks v jazyce C#.

Samotný program v mikrokontroléru se skládá z několika částí:

2.1. Nastavení USB portu Pro nastavení USB portu jsme využili již dostupné nastavení z knihovny libopencm3.

2.2. Nastavení frekvence vnitřního oscilátoru Frekvenci oscilátoru jsme nastavili na 120Mhz.

Page 4: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

2.3. Nastavení vstupů a výstupů V prvé řadě jsme povolili oscilátor na port A, který budeme využívat. Poté jsme

nastavili pin PA4 jako analogový výstup, jelikož se jedná o výstup DAC a porty PA0 a PA1 jako

analogové vstupy, jelikož se jedná o kanály 0 a 1 ADC.

2.4. Nastavení DAC Toto nastavení je velice jednoduché, jelikož stačí pouze povolit oscilátor pro DAC a

poté povolit samotný DAC. Používáme kanál č. 1 a mód RIGHT 12 (resp. 12-bitová hodnota

zarovnaná doprava).

2.5. Nastavení ADC Opět v prvé řadě povolujeme oscilátor pro ADC, následně zakážeme scan mode

(nepoužíváme více kanálu najednou). Nastavíme single conversion mode (dochází k odečtení

pouze jedné hodnoty), poté nastavíme vzorkování a zapneme ADC.

2.6. Nastavení přerušení Nastavujeme hodnotu přerušení 100Hz (100 přerušení za sekundu) a poté ho jen

povolujeme a zapínáme čítač.

2.7. Obsluha ADC ADC obsluhuje jednoduchá funkce, která má jeden vstupní parametr, a to číslo kanálu

ADC, ze kterého chceme číst. Poté odečteme hodnotu na vstupu ADC a tato hodnota je

návratovou hodnotou funkce.

2.8. Funkce main Ve funkci main se postupně projdou všechny nastavovací funkce a v nekonečné

smyčce se stále dokola spouští funkce usbd_poll, která musí být volána alespoň jednou za

1ms a udržuje nám komunikaci přes druhé USB.

2.9. Obsluha přerušení s hlavní smyčkou, která proměřuje

charakteristiky Toto je jádro celého programu mikrokontroléru. Beží zde smyčka, která inkrementuje

hodnotu pomocné proměnné x, která se odesílá na vstup DAC a tedy určuje výstupní napětí

DAC. V každém kroku se taktéž odečítá hodnotu vstupů kanálu 0 a 1 ADC. Kanál 0 určuje

hodnotu vstupního napětí na ose x a kanál 1 určuje výstupní proud (resp. výstupní napětí,

které se přepočítává na proud) měřené součástky.

Během programování se vyskytly problémy s odesíláním dat do PC, kde na stranu PC

došlo vždy něco kolem 20-50 bajtů. Proto jsme se rozhodli odesílat maximálně 8 bajtu naráz.

Jelikož jedna 12-bitová hodnota zabere 2 bajty, mohou se tedy odeslat 4 hodnoty naráz.

Proto se každé čtyři kroky splní podmínka if která odešle poslední 4 hodnoty a tak stále

dokola. V posledním kroku se odešlou zbývající hodnoty, bez ohledu na jejich počet.

Page 5: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

3) Program na straně PC

Program byl napsán v programu MS Visual Studio 2013 v jazyce C#. Jedná se o

jednoduchou formulářovou aplikaci (viz. Obrázek 1)

3.1. Graf

Celé aplikaci dominuje velký graf, ve kterém se budou zobrazovat změřené

charakteristiky.

3.2. Tlačítko START

Tímto tlačítkem spustíte celý proces měření. Mikrokontroléru se odešle pokyn pro to,

aby začal měřit a zároveň se mu odešle hodnota maximálního napětí , který nesmí překročit.

3.3. Kulatá tlačítka Forward a Reverse Těmito tlačítky si vybíráte režim měření, tzn. zda-li měříme v propustném či

závěrném směru. Zvolený režim se zobrazí i v pravé horní části okna.

3.4. Tlačítko Draw

Po spuštění programu je toto tlačítko neaktivní. Aktivuje se až poté, co program

obdrží všechny požadované hodnoty od mikrokontroléru. Tímto tlačítkem vykreslíte do grafu

naměřené hodnoty

3.5. Tlačítko Clear chart

Tímto tlačítkem vymažete všechny křivky v grafu a nastavíte ho do základního

vzhledu.

Obrázek 1 Formulářová aplikace Curve Tracer

Page 6: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

3.6. Progress bar

Malý progress bar mezi tlačítky START a Draw, který indikuje průběh měření. Nad

tímto prvek se zároveň zobrazí text oznamující přijímání dat a následná informace, že byli

data úspěšně přijaty.

3.7. Hodnota Set max voltage

Tímto prvkem nastavíte maximální povolené napětí měřenou součástkou. Zvolené

napětí se zobrazí i v pravé horní části okna.

3.8. Hodnota Set COM

Tímto prvkem můžete nastavit COM port, na kterém máte připojeno rozhraní USB

pro komunikaci s mikrokontrolérem.

3.9. Rozbalovací menu File

Toto rozbalovací menu obsahuje tři další prvky:

3.9.1. Save chart as… Tato položka umožňuje uložit právě zobrazovaný graf do obrázkového

souboru .jpg.

3.9.2. Save data Tato položka umožňuje uložit právě změřená data do textového souboru .txt.

3.9.3. Exit Touto položkou ukončíte celou aplikaci

3.10. Neviditelné položky:

3.10.1. Port Jedná se o pouhé nastavení portu pro komunikace s mikrokontrolérem.

Nastavuje se zde rychlost, velikost zásobníku (buffer) a další důležité věci.

3.10.2. Další části programu Jedná se například o inicializaci proměnných, chybové hlášky a další

vyskakující okna.

3.11. Příjem dat Data se přijímají dvěma funkcemi. Jedna obsahuje funkci while, která se vykonává do

té doby, dokud jsou dostupná data ke čtení nebo dokud není ukončena příkazem break.

V této funkci se v každém kroku volá druhá funkce, která načte do zásobníku dva bajty (2

bajty = jedna 12-bitová hodnota) a tyto dva bajty jsou návratovou hodnotou pro původní

funkci. Poté co se načtou všechny hodnoty je cyklus ukončen příkazem break.

V této funkci se také inkrementuje progress bar (viz. 3.6)

4) Návrh DPS

4.1. Funkční schéma Funkční schéma obsahuje tři části, které nadále rozepisujeme.

Page 7: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

4.1.1. Proudové posilnění výstupu DAC Jelikož výstup DAC není schopen vyprodukovat více jak 25mA, bylo potřeba

jeho výstup proudově posílit. To jsem vyřešil tak, že jsem na výstup DAC připojil

operační zesilovač v neinvertujícím zapojení, který vstupní signál z DAC zesiluje

dvakrát. Jako další stupeň jsou použity 2 tranzistory (NPN a PNP), které mají zajistit

proudové zesílení signálu.

4.1.2. Oblast měření Zde se na svorky připojuje měřené zařízení do série s měřícím odporem

10mΩ, na kterém se měří úbytek napětí a výpočtem se získává hodnota proudu.

4.1.3. Zesilovací stupeň Jelikož úbytek napětí na tak malém odporu (10mΩ) je velmi malý, musí být

tento úbytek patřičně zesílen. Zde je zesílen šestkrát, to stačí pro to, aby byl tento

signál měřitelní ADC převodníkem.

4.2. Schéma zapojení

Page 8: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

4.3. DPS

4.4. Seznam použitých součástek pro DPS

Označení Název Hodnota

T1 BD441 NPN

T2 BD442 PNP

U1 NE5532 -

R1 rezistor 1kΩ

R2 rezistor 1kΩ

R3 rezistor 10mΩ

R4 rezistor 200Ω

R5 rezistor 1kΩ

C1 kondenzátor 10μF

C2 kondenzátor 10μF

IC1 TC7660SCPA -

D.U.T měřená součástka Device Under Test Tabulka 1 Seznam součástek

Page 9: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

5) Naměřené charakteristiky

5.1. Propustný směr LED

Obrázek 2 VA charakteristika LED

5.2. Propustný směr diody přes odpor 270Ω

Obrázek 3 VA charakteristika diody v propustném směru

Page 10: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

5.3. Propustný i závěrný směr diody přes 270 Ω

Obrázek 4 VA charakteristika diody v obou směrech

6) Měřící zapojení na nepájivém poli

Page 11: Curve Tracer s mikrokontrolérem STM32robotika/2014_BROB/2014_B01_curve...UAMT VUT FEKT Curve Tracer s mikrokontrolérem STM32 BROB Vedoucí práce: František urian Autoři: Michal

7) Závěr

Když jsem si vybíral tuto semestrální práci, neviděl jsem nějaký větší problém v její

praktické realizace. Od začátku jsem měl nějakou ucelenou představu a té jsem se držel.

V prvé řadě jsem se musel seznámit s vývojovým prostředím Code::Blocks a řešit

mnoho problému s komunikací. To nebylo zrovna nejjednodušší vzhledem k tomu, že kit

STM32F4 velmi rád přestával komunikovat a bylo zapotřebí restart celého počítače

k opětovnému navázání komunikace.

Dále jsem se zaměřil na knihovnu libopencm3. Vzhledem k tomu, že jsem nikdy

takovéto aplikace v jazyce C neprogramoval (jen lehké aplikace v jazyce assembler), začátky

byli velmi obtížné. Po pár týdnech zkoušení, testovaní, ‚googlování‘ a konzultaci, se mi

povedlo zprovoznit první část programu, a to digitálně-analogový převodník (DAC).

Dalším krokem bylo zprovoznění čtení hodnoty z analog-digitálního převodníku

(ADC). Vzhledem ke zkušenostem z DAC pro mě bylo toto už jednodušší. Součástí tohoto

kroku bylo i napsání funkce, která proměří charakteristiky v celém rozsahu.

V další části jsem se zaměřil na napsání programu v PC. Využil jsem program Visual

Studio Professional 2013. Soustředil jsem se na vytvoření jednoduché, uživatelsky přístupné

formulářové aplikace, která je popsána v sekci 3) Program na straně PC.

Následně bylo třeba vytvořit komunikaci. K tomu jsem využil dostupný example

(příklad) od knihovny libopencm3. Tato část mi zabrala velmi mnoho času, jelikož jsem opět

neměl žádné zkušenosti s komunikace přes rozhraní USB. Ale podařilo se a mikrokontrolér

komunikoval s PC a byl schopný odesílat i přijímat data.

V posledním kroku bylo třeba navrhnout desku plošných spojů (DPS). Měl jsem

představu, že budu měřit pouze úbytek napětí na malém odporu (10mΩ), který budu patřičně

zesilovat, aby byl měřitelný, a výpočtem budu získávat hodnotu proudu. Bohužel se objevil

problém, který jsem neočekával. Mikrokontrolér má maximální výstupní proud 25mA a to

bylo velmi málo pro moji aplikaci. Proto bylo třeba vytvořit proudové posilnění výstupu DAC,

které je blíže popsáno v sekci 4.1.1 Proudové posilnění výstupu DAC. To se neobešlo bez

větších potíží, jako například zničené tranzistory, diody, odpory atp. Opět se jedná o oblast,

ve kterém nemám praktické zkušenosti a tak mi tento problém zabral asi nejvíce času a i kvůli

tomu jsem nestihl dotáhnout tuto aplikaci do podoby, která by mi vyhovovala.

Vzhledem k tomu, že jsem se prakticky zasekl při návrhu DPS a ztratil tak velmi moc

cenného času nebyl jsem schopný dotáhnout aplikaci do úplné finální podoby tak, jak jsem si

to představoval. A to, uživatelsky nastavitelné omezení proudu měřenou součástkou,

zpřesnění měření, schopnost měřit různé druhy součástek a mnoho dalšího co jsem si

představoval. Zároveň se mi nepodařilo fyzicky realizovat plošný spoj, opět kvůli nedostatku

času.

Ve výsledku si myslím, že finální podoba není tak zlá a do budoucna by se dala

dotáhnout do dokonalosti při dostatku času a snahy. I přes všechny problémy, které nastaly,

jsem získal mnoho cenných zkušeností, které se mi do budoucna budou velmi hodit.

Závěrem bych chtěl poděkovat inženýru Františku Burianovi, za mnoho cenných

informací, které mi sdělil a za čas, který mi věnoval v průběhu celého semestru.


Recommended