• Nebyly nalezeny žádné výsledky

Aplikaˇ cn´ı SW pro zobrazovac´ı jednotku elektrovozidla

N/A
N/A
Protected

Academic year: 2022

Podíl "Aplikaˇ cn´ı SW pro zobrazovac´ı jednotku elektrovozidla"

Copied!
56
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

Katedra aplikovan´e elektroniky a telekomunikac´ı

Diplomov´ a pr´ ace

Aplikaˇ cn´ı SW pro zobrazovac´ı jednotku elektrovozidla

Autor pr´ace: Bc. Martin Beran

Vedouc´ı pr´ace: Ing. Petr Weissar, Ph.D. Plzeˇn 2019

(2)
(3)
(4)

Abstrakt

Tato diplomov´a pr´ace se zab´yv´a n´avrhem softwaru pro jednotku displeje pro elektromo- tok´aru. Jednotka obsahuje displej pro zobrazov´an´ı provozn´ıch dat. Data jsou z´ısk´av´any ze sbˇernice CAN a ze senzor˚u um´ıstˇen´ych pˇr´ımo na DPS jednotky. Pro nastaven´ı zob- razen´ı dat na displeji slouˇz´ı konfiguraˇcn´ı PC aplikace.

Kl´ıˇ cov´ a slova

elektromotok´ara, displej, SW, CAN, STM32

(5)

This master thesis deals with software design for display unit for electric kart. The unit includes a display for displaying operational data. Data is obtained from the CAN bus and from sensors located directly on the PCB. The configuration PC application is used to configure the displayed data.

Keywords

electric kart, display, SW, CAN, STM32

(6)

Prohl´ aˇ sen´ı

Prohlaˇsuji, ˇze jsem tuto diplomovou pr´aci vypracoval samostatnˇe, s pouˇzit´ım od- born´e literatury a pramen˚u uveden´ych v seznamu, kter´y je souˇc´ast´ı t´eto diplomov´e pr´ace.

D´ale prohlaˇsuji, ˇze veˇsker´y software, pouˇzit´y pˇri ˇreˇsen´ı t´eto diplomov´e pr´ace, je leg´aln´ı.

V Plzni dne 29. kvˇetna 2019

Bc. Martin Beran

. . . .

Podpis

(7)

Seznam tabulek viii

Seznam symbol˚u a zkratek ix

1 Uvod´ 1

2 Hardware 2

2.1 Mikrokontrol´er . . . 3

2.2 Extern´ı SDRAM pamˇet’ . . . 3

2.3 Displej . . . 3

2.4 XBee modul . . . 4

2.5 Extern´ı Flash pamˇet’ . . . 4

2.6 Akcelerometr . . . 5

2.7 Teplotn´ı senzor . . . 5

2.8 GPS pˇrij´ımaˇc . . . 6

2.9 Analogov´e vstupy . . . 6

2.10 Digit´aln´ı vstupy a v´ystupy . . . 6

3 Aplikaˇcn´ı SW pro jednotku displeje 8 3.1 Konfigurace mikrokontrol´eru . . . 8

(8)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

3.1.1 Nastaven´ı rozvodu hodinov´eho sign´alu . . . 8

3.1.2 Nastaven´ı LTDC periferie . . . 9

3.1.3 Nastaven´ı FMC periferie . . . 11

3.1.4 Nastaven´ı QUADSPI periferie . . . 12

3.1.5 Nastaven´ı UART periferi´ı . . . 13

3.1.5.1 UART4 periferie . . . 13

3.1.5.2 UART5 periferie . . . 13

3.1.6 Nastaven´ıI2C periferie . . . 14

3.1.7 Nastaven´ı CAN periferie . . . 14

3.1.8 Nastaven´ı USB periferie . . . 15

3.1.9 Nastaven´ı ADC periferie . . . 17

3.1.10 Nastaven´ı RTC periferie . . . 18

3.1.11 Nastaven´ı IWDG periferie . . . 18

3.1.12 Nastaven´ı TIMx periferi´ı . . . 19

3.1.13 Nastaven´ı GPIO pin˚u . . . 19

3.2 Knihovna pro ovl´ad´an´ı displeje . . . 21

3.2.1 Funkce LCD Draw HorizontalLine . . . 22

3.2.2 Funkce LCD Draw VerticalLine . . . 23

3.2.3 Funkce LCD Draw Rectangle . . . 23

3.2.4 Funkce LCD Draw FilledRectangle . . . 24

3.2.5 Funkce LCD Draw VerticalBar . . . 24

3.2.6 Funkce LCD Draw VerticalBarZero . . . 25

3.2.7 Funkce LCD Draw Char . . . 26

3.2.8 Funkce LCD Display Char . . . 26

(9)

3.2.9 Funkce LCD Display String . . . 27

3.2.10 Funkce LCD GetDigits . . . 27

3.2.11 Funkce LCD Display Number . . . 27

3.2.12 Funkce LCD Display Page . . . 28

3.3 Knihovna pro ovl´ad´an´ı akcelerometru . . . 28

3.4 Knihovna pro ovl´ad´an´ı teplomˇeru . . . 29

3.5 Knihovna pro ovl´ad´an´ı ADC . . . 29

3.6 Postup inicializace komponent pˇri startu jednotky displeje . . . 30

4 Konfiguraˇcn´ı aplikace pro PC 32 4.1 Komunikaˇcn´ı protokol . . . 32

4.1.1 Transportn´ı protokol . . . 32

4.1.2 Aplikaˇcn´ı pˇr´ıkazy . . . 32

4.1.2.1 Pˇr´ıkaz pro ˇcten´ı extern´ı Flash pamˇeti . . . 33

4.1.2.2 Pˇr´ıkaz pro ˇcten´ı dat kan´al˚u . . . 33

4.1.2.3 Pˇr´ıkaz pro maz´an´ı flash pamˇeti . . . 34

4.1.2.4 Pˇr´ıkaz pro nastaven´ı adresy a d´elky dat pro z´apis dat do flash pamˇeti . . . 34

4.1.2.5 Pˇr´ıkaz pro pˇrenos dat do flash pamˇeti . . . 35

4.1.2.6 Negativn´ı odpovˇedi na pˇr´ıkazy . . . 35

4.2 Nastaven´ı komunikaˇcn´ıch a zobrazovac´ıch kan´al˚u . . . 36

5 Z´avˇer 39

Reference, pouˇzit´a literatura 41

Pˇr´ılohy 43

(10)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

A Pˇr´ılohy 44

A.1 Jednotka displeje . . . 44

(11)

2.1 Tabulka ˇcasov´an´ı synchronizaˇcn´ıch sign´al˚u displeje MCT070M6W800480LML.[5] 4

4.1 Transportn´ı protokol mezi aplikac´ı a jednotkou displeje . . . 32

4.2 Tabulka pˇr´ıkazu ReadFlashData . . . 33

4.3 Tabulka pˇr´ıkazu ReadChannelsData . . . 33

4.4 Tabulka pˇr´ıkazu DisplayControl–EraseChip . . . 34

4.5 Tabulka pˇr´ıkazu DisplayControl–ErasSubSector . . . 34

4.6 Tabulka pˇr´ıkazu RequestDownload . . . 35

4.7 Tabulka pˇr´ıkazu TransferData . . . 35

4.8 Tabulka struktury negativn´ı odpovˇedi . . . 36

4.9 Tabulka negativn´ı k´od˚u . . . 36

(12)

Seznam symbol˚ u a zkratek

DPS . . . Deska ploˇsn´ych spoj˚u.

LTDC . . . LCD–TFT display controller.

FMC . . . Flexible memory controller.

QSPI . . . Quad–SPI interface.

NMEA . . . National Marine Electronics Association.

RTC . . . Real –time clock.

HAL . . . Hardware abstraction layer.

AHB . . . Advanced High–performance Bus APB . . . Advanced Peripheral Bus

DMA . . . Direct memory access

(13)

Pˇredkl´adan´a pr´ace je zamˇeˇrena na realizaci aplikaˇcn´ıho softwaru pro jednotku dis- pleje pro elektromotok´aru. Hardware t´eto jednotky byl vytvoˇren Bc. Martinem Sovou v jeho diplomov´e pr´aci. Jednotka displeje je urˇcena pro zabudov´an´ı do elektrick´e mo- tok´ary vyv´ıjen´e na Fakultˇe elektrotechnick´e Z´apadoˇcesk´e univerzity v Plzni.

Ukolem jednotky je zobrazovat provozn´ı veliˇ´ ciny na grafick´em displeji a ukl´adat provozn´ı data. Jednotka tak´e umoˇzˇnuje sn´ım´an´ı polohy plynov´eho a brzdov´eho ped´alu.

D´ale sn´ım´a polohu pomoc´ı GPS pˇrij´ımaˇce, zrychlen´ı ve tˇrech os´ach pomoc´ı akcelero- metru a okoln´ı teplotu. Jednotka displeje tak´e umoˇzˇnuje pˇripojit XBee–Pro modul, pro bezdr´atovou komunikaci a odes´ıl´an´ı telemetrick´ych dat pˇri provozu elektromotok´ary.

Poˇzadavky na software byly takov´e, aby bylo moˇzn´e nastaven´ı obrazovek bez z´asahu do k´odu mikrokontrol´eru a aby zmˇenu nastaven´ı zvl´adl bˇeˇzn´y uˇzivatel. S ohle- dem na tento poˇzadavek byl vybr´an zp˚usob nastaven´ı displeje pomoc´ı kalibraˇcn´ıch hodnot um´ıstˇen´ych v extern´ı flash pamˇeti jednotky displeje. Kalibraˇcn´ı hodnoty jsou vytvoˇreny v PC aplikaci a pot´e nahr´any do pamˇeti jednotky. Dalˇs´ı alternativou by bylo zaveden´ı bootloaderu do mikrokontrol´eru a vytvoˇren´ı PC aplikace, kter´a by na z´akladˇe nastaven´ı proveden´ych uˇzivatelem, vkl´adala pˇredpˇripraven´e ˇc´asti k´odu do z´akladn´ıho k´odu jednotky a po kompilaci by se tento upraven´y k´od nahr´al do jednotky. Tento zp˚usob se vˇsak jevil jako velmi komplikovan´y a ˇcasovˇe n´aroˇcnˇejˇs´ı.

V Prvn´ı kapitole je pops´an HW jednotky displeje pro potˇreby inicializace jednot- liv´ych komponent mikrokontrol´eru. Ve druh´e kapitole je pops´ana inicializace kompo- nent a funkce, kter´e slouˇz´ı pro obsluhu displeje a ostatn´ıch periferi´ı. Ve tˇret´ı kapitole je pops´ana konfiguraˇcn´ı PC aplikace, transportn´ı protokol a pˇr´ıkazy pro ovl´ad´an´ı a nastaven´ı jednotky.

(14)

2 Hardware

Aplikaˇcn´ı software navrˇzen´y v t´eto diplomov´e pr´aci je urˇcen pro platformu jednotky dipleje, kterou vytvoˇril v r´amci sv´e diplomov´e pr´ace Martin Sova.[1] Tato kapitola se bude zab´yvat struˇcn´ym popisem pouˇzit´eho hardwaru, s ohledem pro potˇreby n´avrhu softwarov´eho vybaven´ı. Na obr´azku 2.1 je vyobrazeno v blokov´em sch´ematu propojen´ı mikrokontrol´eru se vˇsemi zaˇr´ızen´ımi a sbˇernicemi jednotky displeje.

Obr´azek 2.1:Blokov´e sch´ema periferi´ı pˇripojench k mikrokontrol´eru.[1]

(15)

2.1 Mikrokontrol´ er

Z´akladem jednotky displeje je mikrokontrol´er STM32F746IGT od firmy STMicro- electronics. Jedn´a se o ARMCortexRR M7 32 bitov´y mikrokontrol´er s maxim´aln´ı frekvenc´ı j´adra 216 MHz. Vnitˇrn´ı flash pamˇet’ mikrokontrol´eru je 1 MB a RAM pamˇet’

o velikosti 320 kB. K mikrokontorl´eru jsou pˇripojeny dva krystalov´e oscil´atory. Jeden s rezonanˇcn´ım kmitoˇctem 8 MHz pro j´adro a periferie mikrokontrol´eru. Druh´y oscil´ator s frekvenc´ı 32,768 kHz slouˇz´ı jako zdroj hodinov´eho sign´alu pro RTC periferii. Progra- mov´an´ı mikrokontrol´eru je moˇzn´e pomoc´ı rozhran´ı JTAG nebo SW [4]

2.2 Extern´ı SDRAM pamˇ et’

Mikrokontrol´er neobsahuje dostateˇcnˇe velkou RAM pamˇet’ pro uchov´an´ı str´anky displeje, proto je k mikrokontrol´eru pˇripojena extern´ı 64 Mb SDRAM pamˇet’ IS42S16400J.

Pro vykreslen´ı displeje s rozliˇsen´ım 800 x 480 px a barevn´e hloubce 16 bit˚u je potˇreba 768 kB RAM pamˇeti.[1] IS42S16400J je pˇripoje na k FMC periferii mikrokontrol´eru, d´ıky tomu je zajiˇstˇena maxim´aln´ı pˇr´ıstupov´a rychlost k pamˇeti.

2.3 Displej

Pro zobrazov´an´ı provozn´ıch hodnot slouˇz´ı sedmipalcov´y displej MIDAS

MCT070M6W800480LML s rozliˇsen´ım 800 x 480 px. Displej je pˇripojen na periferii LTDC mikrokontrol´eru, kter´a je urˇcena pro pˇr´ım´e ˇr´ızen´ı LCD panel˚u. V tabulce 2.1 je uvedeno ˇcasov´an´ı datov´ych sign´al˚u displeje. [5]

(16)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Item Symbol Min. Typ. Max. Unit Remark

Horizontal Display Area thd 800 DCLK

Dclk frequency fclk – 30 50 MHz

One horizontal line th 889 928 1143 DCLK

HS pulse width thpw 1 48 255 DCLK

HS blanking thb 88 DCLK

HS front porch thfp 1 40 255 DCLK

Vertical Display Area tvd 480 TH

VS period time tv 513 525 767 TH

VS pulse width tvpw 3 3 255 TH

VS blanking tvb 32 TH

VS front porch tvfp 1 13 255 TH

Tabulka 2.1: Tabulka ˇcasov´an´ı synchronizaˇcn´ıch sign´al˚u displeje MCT070M6W800480LML.[5]

2.4 XBee modul

Jednotka je osazena XBee/XBee–PROR R RF modulem pro bezdr´atovou komu- nikaciv p´asmu 2 4 GHz. Maxim´aln´ı dosah modulu ve voln´em prostˇred´ı je 750 m a maxim´aln´ı pˇrenosov´a rychlost je 250 kBaud. Komunikce XBee s mikrokontrol´erem je po sbˇernici UART. Pˇripojen´ı XBee k mikrokontorl´eru neumoˇzˇnuje harwarov´e ˇr´ızen´ı toku dat, ani zmˇenu vys´ılac´ıch parametr˚u (napˇr. pˇrenosov´e rychlosti). [9]

2.5 Extern´ı Flash pamˇ et’

Mikrokontrol´er neobsahuje EEPROM pamˇet’,proto je pro uchov´an´ı dat po vypnut´ı nap´ajen´ı pˇripojena extern´ı 128Mb flash pamˇet’ Micron N25Q128A typu serial NOR, kter´a je pˇripojena k mikrokontrol´eru pomoc´ı QSPI sbˇernice. Pamˇet’ lze mazat po sek- torech o velikosti 64 kB, subsektorech o velikosti 4 kB, nebo celou pamˇet’ najednou.Na

(17)

obr´azku 2.2 je tabulka s mapou pamˇeti.[2]

Obr´azek 2.2:Tabulka mapy extern´ı flash pamˇeti.[2]

2.6 Akcelerometr

Jednotka displeje je tak´e osazena 3–os´ym MEMS akcelerometrem LIS331HH. Akce- lerometr je pˇripojen k mikrokontrol´eru sbˇernic´ıI2C s maxim´aln´ı komunikaˇcn´ı rychlost´ı 400 kHz. Adresa akcelerometru na sbˇernici je 0011000. Maxim´aln´ı rozsah mˇeˇren´ı ak- celerometru je moˇzn´e nastavit na ± 6 g/±12 g/±24g. Maxim´aln´ı rychlost mˇeˇren´ı akcelerometru je 1 kHz. [6]

2.7 Teplotn´ı senzor

Jednotka obsahuje digit´aln´ı teplotn´ı senzor LM75BIM. Senzor komunikuje s mikro- kontrol´erem po sbˇerniciI2C, stejnˇe jako akcelerometr je schopen komunikovat rychlost´ı 400 kHz. Adresa teplomˇeru na sbˇernici je 1001101. Teplotn´ı senzor je schopen mˇeˇrit teploty od−55C do 100 C s pˇresnost´ı±2C.[7]

(18)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

2.8 GPS pˇ rij´ımaˇ c

Pro sledov´an´ı pozice vozidla je v jednotce nainstalov´an GPS pˇrij´ımaˇc Maestro A2235–H. GPS pˇrij´ımaˇc automaticky po zapnut´ı vys´ıl´a data o poloze no sbˇernici UART s pˇrenosovou rychlost´ı 4800 Baud a GPS protokolem NMEA. GPS zpr´avy jsou odes´ıl´any s frekvenc´ı 5 Hz. GPS pˇrij´ımaˇc nelze pomoc´ı UART komunikace nastavovat. Na obr´azku 2.3 je pˇr´ıklad dek´odov´an´ı GPGGA vˇety NMEA protokolu.[8]

Obr´azek 2.3: Pˇr´ıklad NMEA GPGGA vˇety. |Pˇrevzato z [10]|

2.9 Analogov´ e vstupy

Na analogov´e vstupy jsou pˇrivedeny sign´aly ze senzor˚u polohy plynov´eho a brz- dov´eho ped´alu. Protoˇze tyto sign´aly jsou proudov´e je jednotka displeje vybavena pˇrevodn´ıky proud–napˇet´ı AD8211. V´ystupy pˇrevodn´ıku proud–napˇet´ı jsou pˇrivedeny na vstupy AD pˇrevodn´ıku mikrokontrol´eru.

2.10 Digit´ aln´ı vstupy a v´ ystupy

Jednotka displeje m´a 8 digit´aln´ıch vstup˚u, kter´e jsou pˇrivedeny pˇres Schmitt˚uv klopn´y obvod na piny mikrokontrol´eru. Na 5 z 8 vstup˚u jsou pˇripojena tlaˇc´ıtka um´ıstˇen´a

(19)

pˇr´ımo na desce ploˇsn´eho spoje jednotky displeje. Zb´yvaj´ıc´ı tˇri vstupy jsou vyvedeny na konektor. Jednotka displeje je vybavena 8 digit´aln´ımi v´ystupy, kter´e jsou urˇcen´e pro ovl´ad´an´ı LED diod pomoc´ı tranzistorov´eho pole ULN2803A.

(20)

3 Aplikaˇ cn´ı SW pro jednotku displeje

Software byl vytvoˇren programovac´ım prostˇred´ı Attolic TrueSTUDIO for STM32.

3.1 Konfigurace mikrokontrol´ eru

Z´akladn´ı konfigurace mikrokontrol´eru byla provedena pomoc´ı programu STM32CubeMX.

STM32CubeMX slouˇz´ı pro grafick´e nastaven´ı mikrokontrol´eru a jeho periferi´ı s vyuˇzit´ım HAL vrstvy, kter´a umoˇzˇnuje maxim´aln´ı pˇrenositelnost program˚u pˇres portfolio mikro- kontrol´er˚u STM32.[11]

Nastaven´ı vstupnˇe v´ystupn´ıch port˚u bylo provedeno na z´akladˇe tabulky v pˇr´ıloze 2 v diplomov´e pr´aci Martina Sovy.[1]

3.1.1 Nastaven´ı rozvodu hodinov´ eho sign´ alu

Na obr´azku 3.2 je vidˇet nastaven´ı rozvodu hodinov´eho sign´alu mikrokontrol´eru.

Zdrojem hodinov´eho sign´alu je krystalov´y rezon´ator s frekvenc´ı 8 MHz. Tento sign´al je pˇriveden pˇres pˇreddˇeliˇcku do f´azov´ych z´avˇes˚u, kde je frekvence vyn´asobena na hodnotu 216 MHz. Tento kmitoˇcet je zaveden do j´adra mikrokontrol´eru a slouˇz´ı jako hodinov´y sign´al pro AHB sbˇernici. Tak´e jsou z nˇej odvozeny frekvence pro sbˇernice APB1 a APB2. Kdy sbˇernice APB1 je taktov´ana frekvenc´ı 54 MHz a sbˇernice APB2 bˇeˇz´ı na

(21)

Obr´azek 3.1: Z´akladn´ı nastaven´ı mikrokontrol´eru v programu STM32CubeMX

frekvenci 108 MHz. F´azov´y z´avˇes PLLSAI1 je nastaven tak, aby generoval hodinov´y sign´al s frekvenc´ı 35 MHz pro periferii LTDC. Pro periferie UART4, UART5 a I2C1 je zdrojem hodinov´aho sign´alu zvolen hodinov´y sign´al sbˇernice APB1 s hodnotou 54 MHz.

Hodinov´y sign´al pro USB periferii je z´ısk´an podˇelen´ım kmitoˇctu j´adra na hodnotu 48 MHz. Zdrojem hodinov´eho sign´alu pro periferii RTC je krystalov´y rezon´ator s frekvenc´ı 32.768 kHz.

3.1.2 Nastaven´ı LTDC periferie

Nastaven´ı synchronizaˇcn´ıch parametr˚u LTDC periferie probˇehlo podle tabulky 2.1.

kde horizontal synchronization width je nastavena na 48 hodinov´ych pulz˚u. Horizontal front porch je nastaven na 40 hodinov´ych pulz˚u. Active width je nastavena na 800 hodi- nov´ych pulz˚u. Hodnota horizontal back porch je z´ısk´ana jako Horizontalbackporch= Horizontalblanking−Horizontalpulsewidth, coˇz je 88−48 = 40 hodinov´ych pulz˚u.

Vertical synchronization heigth je nastavena na 3 ˇr´adky. Parametr Vertical front porch je nastavena na 13 ˇr´adek. Active Heigth je nastavena na 480 ˇr´adek. Hodnota Vertical back porch je z´ısk´ana jakoV erticalbackporch=V erticalblanking−V erticalpulsewidth,

(22)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Obr´azek 3.2: Nastaven´ı rozvodu hodinov´eho sign´alu v programu STM32CubeMX

coˇz je 32−3 = 29 hodinov´ych pulz˚u. Nastaven´ı synchronizaˇcn´ı parametr˚u je zobrazeno na obr´azku 3.3 a). K´od pro inicializaci periferie je generov´an programem STM32CubeMX.

(23)

(a) Nastaven´ı vertik´aln´ı a horizont´aln´ı synchronizace LTDC periferie v programu STM32CubeMX

(b) Nastaven´ı vrstev displeje v programu STM32CubeMX

Obr´azek 3.3: Nastaven´ı LTDC periferie v programu STM32CubeMX

3.1.3 Nastaven´ı FMC periferie

K FMC periferii je pˇripojena extern´ı 64 Mbit SDRAM pamˇet. Pro adresu sloupce je pouˇzito 8 bit˚u a pro adresu ˇr´adl˚u 12 bit˚u. CAS latency byla nastavena na 2 hodinov´e cykly. SDRAM common clock a SDRAM common read pipe delay jsou nastaveny na 2 hodinov´e cykly. ˇCasov´y parametr Load mode register to active delay je nastaven na 2 hodinov´e cykly, parametr Exit self–Refresh delay na 7 hodinov´ych cykl˚u, para- metr Self–refresh time je nastaven na 4 hodinov´e cykly, parametr SDRAM common row cycle delay je nastaven na hodnotu 7 hodinov´ych cykl˚u, parametr Write recovery time je nastaven na 3 hodinov´e cykly, parametr SDRAM common row delay m´a hod- notu 2 hodinov´ych cykl˚u, parametr Row to column delay je nastavena na hodnotu 2 hodinov´ych cykl˚u. Cel´e nastaven´ı je na obr´azku 3.4.[3]

(24)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Obr´azek 3.4: Nastaven´ı Quad–SPI periferie v programu STM32CubeMX

3.1.4 Nastaven´ı QUADSPI periferie

Na periferii Quad–SPI je pˇripojena flash pamˇet’ Micron. Flash pamˇet’ je schopn´a pracovat s maxim´aln´ı frekvenc´ı 108 MHz, proto mus´ı b´yt pˇreddˇeliˇcka Quad–SPI peri- ferie nastavena na hodnotu 1. Pˇri tomto nastaven´ı je frekvence sbˇernice AHB dˇelena 2. Flash size je nastavena na hodnotu 23, to odpov´ıd´a hodnotˇe 24 bit˚u. ˇC´ast nastaven´ı byla pˇrevzata z [12]. Nastaven´ı vzorkovac´ıho posuvu je o polovinu hodinov´eho cyklu.

D´elka chip selectu je 2 hodinov´e cykly. Clock mode je nastaven na low. Nastaven´ı Quad–SPI periferie je v programu STM32CubeMX je na obr´azku 3.5.

(25)

Obr´azek 3.5: Nastaven´ı Quad–SPI periferie v programu STM32CubeMX

3.1.5 Nastaven´ı UART periferi´ı

3.1.5.1 UART4 periferie

Periferie UART4 je pˇripojena k XBeePro modulu. Pˇrenosov´a rychlost je nastavena na 9600 Baud, d´elka dat je 8 bit, bez parity a jeden start bit. Periferie umoˇzˇnuje vys´ıl´an´ı i pˇrij´ım´an´ı dat. Pro pˇr´ıjem je nastaveno ˇsestn´acti n´asobn´e pˇrevzorkov´an´ı. Nastaven´ı je vidˇet na obr´azku 3.6 a).

3.1.5.2 UART5 periferie

Periferie UART5 je pˇripojena k GPS pˇrij´ımaˇci. Pˇrenosov´a rychlost je nastavena na 4800 Baud, d´elka dat je 8 bit, bez parity a jeden start bit. Periferie umoˇzˇnuje jak vys´ılat tak pˇrij´ımat data. Pro pˇr´ıjem je nastaveno ˇsestn´acti n´asobn´e pˇrevzorkov´an´ı.

(26)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Nastaven´ı je vidˇet na obr´azku 3.6 b).

(a) Nastaven´ı periferie UART4 v programu STM32CubeMX

(b) Nastaven´ı periferie UART5 v programu STM32CubeMX

Obr´azek 3.6: Nastaven´ı UART periferi´ı v programu STM32CubeMX

3.1.6 Nastaven´ı I

2

C periferie

Nastaven´ıI2Cvych´az´ı z poˇzadavk˚u pro komunikaci s teplotn´ım senzorem a akcele- rometrem. I kdyˇz jsou oba senzory schopn´e komunikovat rychlost´ı aˇz 400 kHz, je pouˇzita komunikaˇcn´ı rychlost jen 250 kHz. Dalˇs´ımi nastaven´ymi parametry jsou rychlost vze- stupn´e a sestupn´e hrany, jenˇz jsou nastaveny na 25 ns. Hodnoty rychlosti vzestupn´e a sestupn´e hrany jsou nastaveny podle datasheetu akcelerometru.[6] Na obr´azku 3.7 je nastaven´ıI2C periferie v programu STM32CubeMX.

3.1.7 Nastaven´ı CAN periferie

CAN periferie je nastavena tak, aby rychlost CAN sbˇernice byla 500 kBaud. Bit segment 1 je nastaven na 5 ˇcasov´ych kvant, bit segment 2 je nastaven na 7 ˇcasov´ych kvant a resynchronyzaˇcn´ı skok na 3 ˇcasov´a kvanta. CAN periferie m´a hodinov´y sign´al odvozen od sbˇernice APB1 (54 MHz). Potˇrebn´a velikost ˇcasov´eho kvanta pro rychlost

(27)

Obr´azek 3.7: Nastaven´ıI2C periferie v programu STM32CubeMX

sbˇernice 500 kBaud s uveden´ymi velikostmi bit segment˚u 1 a 2 je 166.66 ns, k tomu je potˇreba nastavit pˇreddˇeliˇcku CAN periferie na hodnotu 9. D´ale je nastaveno auto- matick´e odpojen´ı od sbˇernice v pˇr´ıpadˇe chyb na sbˇernici. Cel´e nastaven´ı v programu STM32CubeMX je na obr´azku 3.8.

3.1.8 Nastaven´ı USB periferie

USB periferie je nastavena na rychlost Full Speed 12 MBit/s a maxim´aln´ı veli- kost paketu je nastavena na 64 Bajt˚u. Nastaven´ı periferie je na obr´azku 3.9 a). Pro snadnˇejˇs´ı ovl´ad´an´ı byla pro USB periferii pˇrid´ana vrstva middlewaru, kter´a je schopn´a pˇrednastavit USB tak, ˇze se tv´aˇr´ı jako virtu´aln´ı COM port, Mass storage nebo dalˇs´ı zaˇr´ızen´ı. Pro ´uˇcely jednotky displeje byl vybr´an virtu´aln´ı COM port. Jeho nastaven´ı je na obr´azku refobr˙USB˙cube b).

(28)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Obr´azek 3.8: Nastaven´ı CAN periferie v programu STM32CubeMX

(a) Nastaven´ı periferie USB v programu STM32CubeMX

(b) Nastaven´ı USB middleware vrstvy v programu STM32CubeMX

Obr´azek 3.9: Nastaven´ı USB periferi´ı v programu STM32CubeMX

(29)

3.1.9 Nastaven´ı ADC periferie

AD pˇrevodn´ık je nastaven na maxim´aln´ı rozliˇsen´ı 12 bit. Jsou pouˇzity 4 kan´aly pˇrevodn´ıku (0 –3). Konverze kan´al˚u je nastavena tak, aby se neust´ale opakovala a v´ysledky pˇrevodu jednotliv´ych kan´al˚u jsou pˇren´aˇseny pomoc´ı DMA kan´alu. Start pˇrevodu AD pˇrevodn´ıku je pomoc´ı softwaru. Na obr´azku 3.10 je vyobrazeno nastaven´ı AD pˇrevodn´ıku v programu STM32CubeMX.

Obr´azek 3.10: Nastaven´ı ADC periferie v programu STM32CubeMX

(30)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

3.1.10 Nastaven´ı RTC periferie

Pro periferii RTC byl nastaven 24 hodinov´y form´at ˇcasu a hodnoty asynchronn´ı a synchronn´ı pˇreddˇeliˇcky jsou nastaveny na 127 a 255. To zajist´ı spoleˇcnˇe s pouˇzit´ım hodinov´eho sign´alu z krystalov´eho rezon´atoru s frekvenc´ı 32.768 kHz, ˇze se sekundov´y registr bude inkrementovat s frekvenc´ı 1 Hz. K´odov´an´ı ˇcasu bylo zvoleno bin´arn´ı. Hod- noty data a ˇcasu bude nastavovat aplikace, proto nejsou v inicializaci nastaveny. Cel´e nastaven´ı je na obr´azku 3.11.

Obr´azek 3.11: Nastaven´ı RTC periferie v programu STM32CubeMX

3.1.11 Nastaven´ı IWDG periferie

IWSDG je nastaven tak, aby resetoval mikrokontrol´er v pˇr´ıpadˇe, ˇze nebude hod- nota jeho ˇc´ıtaˇce obnovena kaˇzdou sekundu.Zdrojem hodinov´eho sign´alu pro IWDG je vnitˇrn´ı 32 kHz rezon´ator mikrokontrol´eru, proto je nastavena pˇreddˇeliˇcka IWDG ˇc´ıtaˇce na 8 a parametr IWDG douwn–counter reload value na 4095. Nastaven´ı v programu STM32CubeMX je na obr´azku??.

(31)

Obr´azek 3.12: Nastaven´ı IWDG periferie v programu STM32CubeMX

3.1.12 Nastaven´ı TIMx periferi´ı

Casovaˇˇ ce mikrokontrol´eru slouˇz´ı jako ˇcasov´e z´akladny pro vykon´av´an´ı obsluˇzn´ych podprogram˚u. Pro tuto ˇcinnost byly nakonfigurov´any ˇcasovaˇce TIM1 aˇz TIM5. ˇCasovaˇc TIM1 m´a nastavenou pˇreddˇeliˇcku na 21600 a reload register na 100, d´ıky tomu dojde k vyvol´an´ı interuptu kaˇzd´ych 10 ms. ˇCasovaˇce TIM2, TIM3, TIM4 a TIM5 maj´ı nasta- venou pˇreddˇeliˇcku na 10800. Hodnota reload registru pro TIM2 je 5000, coˇz dopov´ıd´a 500 ms, pro TIM3 je 500, coˇz odpov´ıd´a 50 ms. TIM4 m´a nastaven reload register na 1000, to odpov´ıd´a 100 ms a TIM5 m´a reload register nastaven na 10000, takˇze k jeho pˇreteˇcen´ı dojde kaˇzdou 1 sekundu. Nastaven´ı vˇsech ˇcasovaˇcu je na obr´azku 3.13

3.1.13 Nastaven´ı GPIO pin˚ u

GPIO piny, kter´e nespadaj´ı k ˇz´adn´e z pˇredeˇsl´ych periferi´ı, jsou nastaveny podle obr´azku 3.14 podle jejich smyslu na vstupn´ı nebo v´ystupn´ı.

(32)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

(a) Nastaven´ı TIM1 periferie v programu STM32CubeMX

(b) Nastaven´ı TIM2 periferie v programu STM32CubeMX

(c) Nastaven´ı TIM3 periferie v programu STM32CubeMX

(d) Nastaven´ı TIM4 periferie v programu STM32CubeMX

(e) Nastaven´ı TIM5 periferie v programu STM32CubeMX

Obr´azek 3.13: Nastaven´ı TIMx periferi´ı v programu STM32CubeMX

(33)

Obr´azek 3.14: Nastaven´ı GPIO pin˚u v programu STM32CubeMX

3.2 Knihovna pro ovl´ ad´ an´ı displeje

Pro vykreslov´an´ı znak˚u na displej byla vytvoˇrena knihovna ”LCD.h”a ”LCD.c”.

Fonty pro vykreslov´an´ı textu a dalˇs´ıch znak˚u jsou uloˇzeny v souborech ”fonts.h”a

”fonts.c”. Fonty pouˇzit´e v DP byly staˇzeny z webov´e str´anky [13]. Jedn´a se o fonty:

GroteskBold16x32, GroteskBold24x48, GroteskBold32x64, arial˙bold a Various˙Symbols˙32x32.

Program pˇristupuje k font˚um skrze strukturu tFont. Struktura je uloˇzena v souboru

”fonts.h”Struktura fontu vypad´a takto:

1 typedef struct _tFont

2 {

3 uint8_t *table;

4 uint16_t Width;

5 uint16_t Height;

6

7 } sFONT;

Strukrura tFont obsahuje ˇs´ıˇrku a v´yˇsku dan´eho fontu v pixelech a pointer na pole hodnot fontu. Data font˚u jsou uloˇzeny v souboru ”fonts.c”. Pro vykreslov´an´ı na displej

(34)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

byly vytvoˇreny n´asleduj´ıc´ı funkce:

1 void LCD_SetTextColor(uint16_t Color);

2 void LCD_SetBackColor(uint16_t Color);

3 void LCD_SetFont(sFONT *fonts);

4 void LCD_ClearALL(void);

5 void LCD_Draw_HorizontalLine(uint16_t x_Start, uint16_t y_Start, uint16_t Length, uint16_t Width, uint16_t Color);

6 void LCD_Draw_VerticalLine(uint16_t x_Start, uint16_t y_Start, uint16_t Length, uint16_t Width, uint16_t Color);

7 void LCD_Draw_Rectangle(uint16_t x_Start, uint16_t y_Start,uint16_t Width, uint16_t Height, uint16_t WidthOfLine,

8 uint16_t Color);

9 void LCD_Draw_FilledRectangle(uint16_t x_Start, uint16_t y_Start,uint16_t Width, uint16_t Height, uint16_t Color);

10 void LCD_Draw_VerticalBar(VerticalBar *VertBar);

11 void LCD_Draw_VerticalBarZero(VerticalBarZero *VertBar);

12 void LCD_Draw_Char(uint16_t Xpos, uint16_t Ypos, uint8_t *c);

13 void LCD_Display_Char(uint16_t Y, uint16_t X, uint8_t Ascii);

14 void LCD_Display_String(uint16_t x, uint16_t y, uint8_t *ptr, uint16_t LengthOfString);

15 void LCD_Display_Number(uint16_t x, uint16_t y, float Number, NumberOfDecimalPlace DecimalPlace);

16 void LCD_Display_ChannelLabel(ChannelLabel *LabelStruct);

17 void LCD_Display_UniversalPage(uint8_t UniPage);

18 void LCD_Display_Page(int8_t Page);

19 void LCD_GetDigits(uint32_t Number, uint8_t Digits[5] );

Udaje o pixelech displeje jsou uloˇ´ zeny s barevnou hloubkou 16 bit, kdy 5bit rozsah m´a ˇcerven´a a modr´a barva m´a rozsah 6bit. FunkceLCD_SetTextColor nastav´ı barvu textu. FunkceLCD_SetBackColor nastav´ı barvu pozad´ı. FunkceLCD_SetFont nastav´ı font, kter´ym se bude vykreslovat znaky na displej. FunkceLCD_ClearALL vymaˇze obsah displeje. Pouˇzije pˇritom barvu nastavenou funkc´ıLCD_SetBackColor.

Funkce, kter´e kresl´ı na displej jsou oznaˇceny pˇredponou LCD_Draw. Pro vykres- len´ı vodorovn´e ˇc´ary byla vytvoˇrena funkce LCD_Draw_HorizontalLine, pro kreslen´ı svisl´e ˇc´aryLCD_Draw_VerticalLine, pro kreslen´ı obd´eln´ıku LCD_Draw_Rectangle, vy- plnˇen´eho obd´eln´ıkuLCD_Draw_FilledRectangle, vertik´aln´ıho baruLCD_Draw_VerticalBar a vertik´aln´ıho baru se stˇredovou hodnotouLCD_Draw_VerticalBarZero.

3.2.1 Funkce LCD Draw HorizontalLine

Funkce LCD_Draw_HorizontalLine m´a vstupn´ı parametry x_Start a y_Start, kter´e obsahuj´ı souˇradnice lev´eho horn´ıho rohu ˇc´ary v pixelech od lev´eho horn´ıho rohu displeje, dalˇs´ım parametrem je Length, ten obsahuje d´elku ˇc´ary v pixelech, parametr Width obsahuje ˇs´ıˇrku ˇc´ary v pixelech a parametr Color obsahuje barvu ˇc´ary. Vˇsechny parametry jsou vysvˇetleny na obr´azku 3.15 a).

(35)

3.2.2 Funkce LCD Draw VerticalLine

FunkceLCD_Draw_VerticalLinem´a vstupn´ı parametryx_Startay_Start, kter´e obsahuj´ı souˇradnice lev´eho horn´ıho rohu ˇc´ary v pixelech od lev´eho horn´ıho rohu dis- pleje, dalˇs´ım parametrem je Length, ten obsahuje d´elku ˇc´ary v pixelech, parametr Width obsahuje ˇs´ıˇrku ˇc´ary v pixelech a parametr Color obsahuje barvu ˇc´ary. Vˇsechny parametry jsou vysvˇetleny na obr´azku 3.15 b).

(a) Parametry funkce LCD Draw HorizontalLine (b) Parametry funkce LCD Draw VerticalLine

Obr´azek 3.15: Parametry funkce LCD Draw HorizontalLine a LCD Draw VerticalLine

3.2.3 Funkce LCD Draw Rectangle

Funkce LCD_Draw_Rectangle m´a vstupn´ı parametry x_Start a y_Start, kter´e obsahuj´ı souˇradnice lev´eho horn´ıho rohu obd´eln´ıku v pixelech od lev´eho horn´ıho rohu displeje, dalˇs´ım parametrem je Width, ten obsahuje ˇs´ıˇrku obd´eln´ıku v pixelech, para- metr Height obsahuje v´yˇsku obd´eln´ıku v pixelech, parametr WidthOfLine obsahuje ˇs´ıˇrku ˇc´ary obd´eln´ıku a parametrColor obsahuje barvu obd´eln´ıku. Vˇsechny parametry jsou vysvˇetleny na obr´azku 3.16 a).

(36)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

3.2.4 Funkce LCD Draw FilledRectangle

Funkce LCD_Draw_FilledRectangle m´a vstupn´ı parametry x_Start a y_Start, kter´e obsahuj´ı souˇradnice lev´eho horn´ıho rohu obd´eln´ıku v pixelech od lev´eho horn´ıho rohu displeje, dalˇs´ım parametrem je Width, ten obsahuje ˇs´ıˇrku obd´eln´ıku v pixelech, parametr Height obsahuje v´yˇsku obd´eln´ıku v pixelech a parametr Color obsahuje barvu obd´eln´ıku. Vˇsechny parametry jsou vysvˇetleny na obr´azku 3.16 b).

(a) Parametry funkce LCD Draw Rectangle (b) Parametry funkce LCD Draw FilledRectangle

Obr´azek 3.16: Parametry funkc´ı LCD Draw Rectangle a LCD Draw FilledRectangle

3.2.5 Funkce LCD Draw VerticalBar

FunkceLCD_Draw_VerticalBarm´a jako vstupn´ı parametr strukturuVerticalBar.

Tato struktura obsahuje poloˇzky X a Y, kter´e obsahuj´ı pozici lev´eho horn´ıho rohu vertik´aln´ıho baru od lev´eho horn´ıho rohu displeje v pixelech. Dalˇs´ımi poloˇzkami jsou Widt a Height. Poloˇzka Width obsahuje ˇs´ıˇrku baru v pixelech a poloˇzka Height ob- sahuje v´yˇsku baru v pixelech. Poloˇzka ColorOfBar obsahuje barvu aktivn´ı ˇc´asti baru.

Dalˇs´ımi poloˇzkami jsouWidthOfMarginaColorOfMargin. Prvn´ı z nich obsahuje ˇs´ıˇrku ohraniˇcen´ı baru a druh´a barvu tohoto ohraniˇcen´ı. Poloˇzky MinaMaxobsahuj´ı hodnotu minima a maxima vertik´aln´ıho baru. Posledn´ı poloˇzkou je Value, kter´a obsahuje hod- notu pro vykreslen´ı aktivn´ı ˇc´asti vertik´aln´ıho baru. Jednotliv´e poloˇzky jsou vyobrazeny na obr´azku 3.17 a).

(37)

1 typedef struct

2 {

3 uint16_t X;

4 uint16_t Y;

5 uint16_t Width;

6 uint16_t Height;

7 uint16_t WidthOfMargin;

8 uint16_t ColorOfMargin;

9 uint16_t ColorOfBar;

10 float Min;

11 float Max;

12 float Value;

13

14 } VerticalBar, *pVerticalBar;

(a) Parametry funkce LCD Draw VerticalBar (b) Parametry funkce LCD Draw VerticalBarZero

Obr´azek 3.17: Parametry funkc´ı LCD Draw VerticalBar a LCD Draw VerticalBarZero

3.2.6 Funkce LCD Draw VerticalBarZero

Funkce LCD_Draw_VerticalBarZero m´a jako vstupn´ı parametr strukturu

VerticalBarZero. Tato struktura obsahuje poloˇzkyX aY, kter´e obsahuj´ı pozici lev´eho horn´ıho rohu vertik´aln´ıho baru od lev´eho horn´ıho rohu displeje v pixelech. Dalˇs´ımi poloˇzkami jsouWidtaHeight. PoloˇzkaWidthobsahuje ˇs´ıˇrku baru v pixelech a poloˇzka Height obsahuje v´yˇsku baru v pixelech. Poloˇzka ColorOfBar obsahuje barvu aktivn´ı ˇc´asti baru. Dalˇs´ımi poloˇzkami jsou WidthOfMargin a ColorOfMargin. Prvn´ı z nich obsahuje ˇs´ıˇrku ohraniˇcen´ı baru a druh´a barvu tohoto ohraniˇcen´ı. Poloˇzky Min a Max obsahuj´ı hodnotu minima a maxima vertik´aln´ıho baru. PoloˇzkaZeroobsahuje velikost stˇredn´ı hodnoty vertik´aln´ıho baru. Posledn´ı poloˇzkou jeValue, kter´a obsahuje hodnotu

(38)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

pro vykreslen´ı aktivn´ı ˇc´asti vertik´aln´ıho baru. Jednotliv´e poloˇzky jsou vyobrazeny na obr´azku 3.17 b).

1 typedef struct

2 {

3 uint16_t X;

4 uint16_t Y;

5 uint16_t Width;

6 uint16_t Height;

7 uint16_t WidthOfMargin;

8 uint16_t ColorOfMargin;

9 uint16_t ColorOfBar;

10 float Min;

11 float Zero;

12 float Max;

13 float Value;

14

15 } VerticalBarZero, *pVerticalBarZero;

3.2.7 Funkce LCD Draw Char

Funkce LCD_Draw_Char slouˇz´ı pro vykreslen´ı znaku. Vstupn´ı parametry funkce LCD_Draw_CharjsouXpos,Yposa*c. Parametry Xpos,Yposodkazuj´ı na pozici lev´eho horn´ıho rohu znaku od lev´eho horn´ıho okraje displeje. Parametr*cje ukazatel na znak, kter´y m´a b´yt vykreslen. Jednotliv´e parametry jsou vyobrazeny na obr´azku 3.18.

Obr´azek 3.18: Parametry funkce LCD–DrawChar

3.2.8 Funkce LCD Display Char

Funkce LCD_Display_Charvykresluje pomoc´ı funkce LCD_Draw_Char znak fontu, kter´y je nastaven v glob´aln´ı promˇenn´e LCD_Currentfonts. Vstupn´ı parametry funkce LCD_Display_CharjsouX,YaAscii. ParametryX,Yodkazuj´ı na pozici lev´eho horn´ıho rohu znaku od lev´eho horn´ıho okraje displeje. ParametrAsciije Ascii hodnota znaku, kter´y m´a b´yt vykreslen.

(39)

3.2.9 Funkce LCD Display String

Funkce LCD_Display_String vykresluje skupinu znak˚u pomoc´ı funkce

LCD_Display_Char. Jej´ı vstupn´ı parametry jsou X,Yodkazuj´ı na pozici lev´eho horn´ıho rohu prvn´ıho znaku od lev´eho horn´ıho okraje displeje. Parametr *ptr je ukazatel na pole znaku, kter´e m´a b´yt vykresleno a parametr LengthOfString obsahuje poˇcet znak˚u, kter´e maj´ı b´yt vykresleny.

3.2.10 Funkce LCD GetDigits

Funkce LCD_GetDigits slouˇz´ı pro z´ısk´an´ı digit˚u ˇc´ısla. Jej´ı vstupn´ı parametr je Number, kter´y obsahuje ˇc´ıslo, jehoˇz digity chceme z´ıskat a parametr Digits[5], do kter´eho se budou ukl´adat jednotliv´e digity. Kdy pozice 0 v poli Digits odpov´ıd´a de- setitis´ıc˚um a pozice 5 jednotk´am.

3.2.11 Funkce LCD Display Number

Funkce LCD_Display_Number vykresluje na displej ˇc´ıselnou hodnotu. Jej´ı vstupn´ı parametry jsou x, y, Number aDecimalPlace. Parametry x a y obsahuj´ı pozici lev´eho horn´ıho rohu prvn´ıho znaku zobrazovan´eho ˇc´ısla od lev´eho horn´ıho rohu displeje v pixe- lech. ParametrNumberobsahuje hodnotu zobrazovan´eho ˇc´ısla a parametrDecimalPlace obsahuje poˇcet desetinn´ych m´ıst, na kter´e m´a b´yt ˇc´ıslo zobrazeno. Poˇcet desetinn´ych m´ıst m˚uˇze b´yt volen od 0 do 3, kdy 0 znamen´a, ˇze ˇc´ıslu nebudou zobrazena desetinn´a m´ısta a 3 znamen´a, ˇze bude zobrazeno s rozliˇsen´ım na tis´ıciny.

(40)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

3.2.12 Funkce LCD Display Page

FunkceLCD_Display_Pageslouˇz´ı pro pˇrep´ın´an´ı obrazovek displeje. Jej´ım vstupn´ım parametrem je Page. Pokud m´a tento parametr hodnotu 1 zobraz´ı se na displeji n´asleduj´ıc´ı str´anka. Pokud m´a hodnotu−1 zobraz´ı se pˇredchoz´ı str´anka. V pˇr´ıpadˇe, ˇze je parametr nulov´y je vykreslena souˇcasn´a str´anka znovu.

Funkce LCD_Display_UniversalPage slouˇz´ı pro vykreslen´ı obrazovky, kter´a byla oznaˇcena jako ,,Univerz´aln´ı”. Tato obrazovka umoˇzˇnuje zobrazit aˇz 9 hodnot a je- jich popis pomoc´ı funkce LCD_Display_ChannelLabel. V pˇr´ıloze A.1 je fotografie jednotky displeje vykresluj´ıc´ı ,,Univerz´aln´ı”obrazovku. V horn´ı ˇc´asti obrazovky jsou vyps´any stavy pro komunikaci s PC aplikac´ı. Prvn´ı ˇc´ıslo vyjadˇruje pˇripravenost jed- notky pˇrijmout pˇr´ıkaz, dalˇs´ı znaky oznamuj´ı chyby pˇri pˇr´ıjmu nebo vys´ıl´an´ı.

Funkce LCD_Display_ChannelLabel vykresluje na displej z´akladn´ı prvek pro zob- razen´ı dat na ,,Univerz´aln´ı”obrazovce displeje.

Obr´azek 3.19: Vyobrazen´ı vykreslen´ı funkce LCD Display ChannelLabel

3.3 Knihovna pro ovl´ ad´ an´ı akcelerometru

Pro ovl´ad´an´ı akcelerometru byly vytvoˇreny funkce: InitAccelerometer,

SetFullScale,SetRegister,ReadRegister,ReadAccelerationXYZ,GetAccelerationXYZ.

FunkceInitAccelerometeraktivuje sn´ım´an´ı akcelerace v ose x,y,z a nastav´ı reˇzim ak- celerometru na normal mode s frekvenc´ı v´ystupn´ıch dat 100 Hz. D´ale funkce nastav´ı ma- xim´aln´ı rozsah akcelerometru na ±6 g. Funkce SetFullScalemˇen´ı maxim´aln´ı rozsah

(41)

akcelerometru bud’ na± 6 g/±12 g/±24g.Funkce SetRegisternastav´ı registr akcele- rometru na poˇzadovanou hodnotu. Funkce ReadRegistervyˇcte hodnotu registru akce- lerometru. FunkceReadAccelerationXYZ vyˇcte registry akcelerometru, kter´e obsahuj´ı akceleraci. Funkce GetAccelerationXYZ vyˇcte pomoc´ı funkce ReadAccelerationXYZ registry akcelerometru a podle nastaven´eho maxim´aln´ıho rozsahu akcelerometru, pˇrepoˇcte

´

udaje registr˚u na re´aln´e hodnoty akcelerace. Prototypy vˇsech funkc´ı jsou uvedeny zde:

1 uint8_t SetFullScale(uint8_t FullScale);

2 uint8_t InitAccelerometer(void);

3 uint8_t SetRegister(uint8_t RegisterAddress, uint8_t RegValue);

4 uint8_t ReadRegister(uint8_t RegisterAddress);

5 uint8_t ReadAccelerationXYZ(int16_t *AccelerationX, int16_t *AccelerationY, int16_t *AccelerationZ);

6 uint8_t GetAccelerationXYZ(float *AccelerationX, float *AccelerationY, float *AccelerationZ);

3.4 Knihovna pro ovl´ ad´ an´ı teplomˇ eru

Teplotn´ı senzor nevyˇzaduje ˇz´adnou inicializaci, proto je moˇzn´e ihned vyˇc´ıst teplotu pomoc´ı funkceGetRawTemperatureneboGetTemperature. FunkceGetRawTemperature vrac´ı teplotu vyˇctenou z teplotn´ıho sn´ımaˇce v datov´em typu int16 t nebo v datov´em typu float v pˇr´ıpadˇe funkceGetTemperature. Teplotn´ı senzor je moˇzn´e pro ´usporu ener- gie pˇrepnout do low power m´odu pomoc´ı funkce TemperatureSensor_Shutdown\verb a funkce TemperatureSensor_WakeUp pˇrepne teplotn´ı senzor do norm´aln´ıho stavu.

Prototypy funkc´ı jsou uvedeny zde:

1 int16_t GetRawTemperature(void);

2 uint8_t TemperatureSensor_Shutdown(void);

3 uint8_t TemperatureSensor_WakeUp(void);

4 float GetTemperature(void);

3.5 Knihovna pro ovl´ ad´ an´ı ADC

Pro zapnut´ı A/D pˇrevodn´ıku je potˇreba zavolat funkci Pedals_Init_and_Start, kter´a m´a jako vstupn´ı parametry pointer na data z pˇrevodn´ıku a poˇcet dat. Funkce zapne A/D pˇrevodn´ık a nastav´ı DMA pˇrenos z A/D pˇrevodn´ıku do promˇenn´e, na kterou ukazuje pointer.

(42)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

3.6 Postup inicializace komponent pˇ ri startu jed- notky displeje

Inicializace periferii mikrokontrol´eru prob´ıh´a podle v´yvojov´eho diagramu na obr´azku 3.20. Je nezbytn´e, aby pˇred inicializac´ı periferie LTDC, kter´a zajiˇst’uje ovl´ad´an´ı dis- pleje, byla inicializov´ana SDRAM pamˇet’, protoˇze pamˇet’ obsahuje data pro vykreslen´ı displeje.

Funkce Channels_Init zajiˇst’uje vyˇcten´ı kalibraˇcn´ıch dat z extern´ı flash pamˇeti a jejich zaˇrazen´ı do pˇr´ısluˇsn´ych glob´aln´ıch promˇenn´ych, kter´e slouˇz´ı jako zdroj dat pro vykreslov´an´ı na displej a nastaven´ı filtraˇcn´ıch registr˚u CAN sbˇernice. To je provedeno ve funkciCAN_filter_Init.

(43)

Obr´azek 3.20: V´yvojov´y diagram inicializace jednotky displeje

(44)

4 Konfiguraˇ cn´ı aplikace pro PC

4.1 Komunikaˇ cn´ı protokol

4.1.1 Transportn´ı protokol

Pro komunikaci mezi PC aplikac´ı a jednotkou displeje je vyuˇzit transportn´ı pro- tokol na sbˇernici UART. Zaˇc´atek zpr´avy transportn´ıho protokolu je uvozen bajtem s hodnotou 0x55. Dalˇs´ım bajtem je d´elka dat ve zpr´avˇe, kter´a mohou b´yt dlouh´a od 0 do 255. Po bajtu s d´elkou zpr´avy n´asleduj´ı data a pot´e n´asleduje bajt s kontroln´ım souˇctem, kter´y se prov´ad´ı pˇres vˇsechna data. Transportn´ı protokol je zn´azornˇen v ta- bulce 4.1.

Start D´elka dat Data Kontroln´ı souˇcet

byte byte 0–255 byte byte

0x55 xx xx ... xx xx

Tabulka 4.1: Transportn´ı protokol mezi aplikac´ı a jednotkou displeje

4.1.2 Aplikaˇ cn´ı pˇ r´ıkazy

Pro ovl´ad´an´ı displeje podporuje jednotka displeje nˇekolik pˇr´ıkaz˚u (Servis˚u), pˇres rozhran´ı UART pomoc´ı transportn´ıho protokolu. Pˇr´ıkazy se rozezn´avaj´ı podle prvn´ıho

(45)

bajtu v datech transportn´ıho protokolu. Pokud je pˇr´ıkaz posl´an spr´avnˇe, je odpovˇed’

jednotky kladn´a. Kladn´a odpovˇed’ je o 0x40 vˇetˇs´ı neˇz hodnota poslan´eho pˇr´ıkazu.

4.1.2.1 Pˇr´ıkaz pro ˇcten´ı extern´ı Flash pamˇeti

Pro vyˇcten´ı dat z extern´ı flash pamˇeti byl vytvoˇren pˇr´ıkaz ReadFlashData. Tento pˇr´ıkaz se skl´ad´a ze sekvence bajt˚u, kter´e jsou v tabulce 4.2.

Byte N´azev Hodnota

0 Service 0x23

1 Subservice 0

2 LengthOfData 6

3 – 6 Address 0 – 0xFFFFFF

7 – 8 Length 0 – 128

Tabulka 4.2: Tabulka pˇr´ıkazu ReadFlashData

4.1.2.2 Pˇr´ıkaz pro ˇcten´ı dat kan´al˚u

Pro vyˇcten´ı hodnot kan´al˚u byl vytvoˇren pˇr´ıkaz ReadChannelsData. Tento pˇr´ıkaz se skl´ad´a ze sekvence bajt˚u, kter´e jsou v tabulce 4.3.

Byte N´azev Hodnota

0 Service 0x22

1 ChannelNumber 0–255

Tabulka 4.3: Tabulka pˇr´ıkazu ReadChannelsData

(46)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

4.1.2.3 Pˇr´ıkaz pro maz´an´ı flash pamˇeti

Pro smaz´an´ı cel´e extern´ı flash pamˇeti byl vytvoˇren pˇr´ıkazDisplayControl-EraseChip.

Tento pˇr´ıkaz se skl´ad´a ze sekvence bajt˚u, kter´e jsou v tabulce 4.4.

Byte N´azev Hodnota

0 Service 0x31

1 Subservice 1

2 Subsubservice 0

Tabulka 4.4: Tabulka pˇr´ıkazu DisplayControl–EraseChip

Pro smaz´an´ı extern´ı flash pamˇeti po subsektorech byl vytvoˇren pˇr´ıkaz

DisplayControl-EraseSubSector. Tento pˇr´ıkaz se skl´ad´a ze sekvence bajt˚u, kter´e jsou v tabulce 4.5.

Byte N´azev Hodnota

0 Service 0x31

1 Subservice 2

2–3 SubSectorNumber 0–4095

Tabulka 4.5: Tabulka pˇr´ıkazu DisplayControl–ErasSubSector

4.1.2.4 Pˇr´ıkaz pro nastaven´ı adresy a d´elky dat pro z´apis dat do flash pamˇeti

Pro nastaven´ı adresy a d´elky dat pro programov´an´ı extern´ı flash pamˇeti byl vy- tvoˇren pˇr´ıkaz RequestDownload. Tento pˇr´ıkaz se skl´ad´a ze sekvence bajt˚u, kter´e jsou v tabulce 4.6.

(47)

Byte N´azev Hodnota

0 Service 0x34

1 Subservice 0

2 Number of Address and Length bytes 0x24

3–6 Address 0 –0xFFFFFF

7–8 Length 0–0x253

Tabulka 4.6: Tabulka pˇr´ıkazu RequestDownload

4.1.2.5 Pˇr´ıkaz pro pˇrenos dat do flash pamˇeti

Pro odesl´an´ı dat pro programov´an´ı extern´ı flash pamˇeti byl vytvoˇren pˇr´ıkaz TransferData. Tento pˇr´ıkaz se skl´ad´a ze sekvence bajt˚u, kter´e jsou v tabulce 4.7. Data jsou programov´ana na adresu, kter´a byla pˇredt´ım odesl´ana pomoc´ı pˇr´ıkazu

RequestDownload.

Byte N´azev Hodnota

0 Service 0x36

1 Subservice 0

2–255 Data 0x00–0xff Tabulka 4.7: Tabulka pˇr´ıkazu TransferData

4.1.2.6 Negativn´ı odpovˇedi na pˇr´ıkazy

Negativn´ı odpovˇed’ na pˇr´ıkaz jednotka odeˇsle v pˇr´ıpadˇe, ˇze byl pˇr´ıkaz ˇspatnˇe zad´an nebo nen´ı podporov´an. Negativn´ı odpovˇed’ m´a vˇzdy prvn´ı bajt s hodnotou 0x7F. Druh´y bajt nese hodnotu pˇr´ıkazu, na kter´y odpov´ıd´a a tˇret´ı bajt obsahuje k´od, kter´y odka- zuje na chybu, kter´a nastala.V´yznam jednotliv´ych Negativn´ıch k´od˚u je v tabulce 4.9.

Struktura negativn´ı odpovˇedi je v tabulce 4.8.

(48)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Byte N´azev Hodnota

0 Negative 0x7F

1 Service 0–255

2 Negative code 0x00–0xff

Tabulka 4.8: Tabulka struktury negativn´ı odpovˇedi

Hodnota V´yznam

0x13 ˇSpatn´a d´elka servisu 0x31 Spatn´ˇ y rozsah vstupn´ıch dat 0x22 ˇSpatn´a sekvence pˇr´ıkaz˚u 0x7E Nepodporovan´y subservis 0x7F Nepodporovan´y servis 0x80 Spatn´ˇ y kontroln´ı souˇcet Tabulka 4.9: Tabulka negativn´ı k´od˚u

4.2 Nastaven´ı komunikaˇ cn´ıch a zobrazovac´ıch kan´ al˚ u

Pro komunikaci s jednotkou displeje a jej´ı konfiguraci slouˇz´ı PC aplikace. V jej´ı horn´ı ˇc´asti je panel pro nastaven´ı COM portu a pˇrenosov´e rychlosti, jak je vidˇet na obr´azku 4.1. Na obr´azku je vidˇet z´aloˇzka Trace, kter´a umoˇzˇnuje uˇzivateli pos´ılat jed- notce pˇr´ıkazy ruˇcnˇe a z´aroveˇn vypisuje odpovˇedi v hexadecim´aln´ım a dekadick´em tvaru.

Druh´a z´aloˇzka s n´azvem Channels slouˇz´ı pro nastaven´ı jednotliv´ych kan´al˚u displeje.

Z´aloˇzka je na obr´azku 4.2. Pro vloˇzen´ı nov´eho kan´alu slouˇz´ı prav´a ˇc´ast aplikace, kde se vypln´ı vˇsechny potˇrebn´e parametry. Prvn´ım parametrem je Channel ID, kter´y odkazuje na um´ıstˇen´ı kan´alu na jednotliv´ych obrazovk´ach displeje, kdy Channel ID 0 aˇz 8 jsou um´ıstˇeny na jedn´e obrazovce viz obr´azek 4.3. Dalˇs´ı kan´aly jsou na dalˇs´ıch obrazovk´ach po dev´ıti. Dalˇs´ım parametrem je v´ybˇer zdroje dat, kter´a bude kan´al zobrazovat. Zdro- jem dat m˚uˇze b´yt CAN sbˇernice (External) nebo jeden ze sn´ımaˇc˚u um´ıstˇen´ych na jednotce displeje (Internal).

(49)

Obr´azek 4.1: Aplikace pro komunikaci a nastaven´ı displeje Trace z´aloˇzka

V pˇr´ıpadˇe volby External, mus´ı uˇzivatel vyplnit CAN ID, form´at, ve kter´em jsou data vys´ıl´ana a Start bit, kter´y odkazuje na pozici bajt˚u v CAN zpr´avˇe. Dalˇs´ımi para- metry jsou n´azev kan´alu, jednotky (nepovinn´e), n´asobitel, ofset, minim´aln´ı a maxim´aln´ı hodnota a form´at, v jak´em se bude hodnota zobrazovat.

V pˇr´ıpadˇe volby Internal, jsou parametry vyplnˇeny automaticky. Uˇzivateli nen´ı umoˇznˇeno nastavit CAN ID, Start bit a form´at, ve kter´em jsou data vys´ıl´ana. Ostatn´ı parametry jsou pˇredvyplnˇeny, ale uˇzivatel je m˚uˇze mˇenit. Tˇemito parametry jsou N´azev kan´alu, jednotky (nepovin´e), n´asobitel, ofset, minim´aln´ı a maxim´aln´ı hodnota a form´at, ve kter´em se bude hodnota zobrazovat.

Pˇridan´e kan´aly se zobrazuj´ı v lev´e ˇc´asti aplikace. Pokud v seznamu vybereme nˇekter´y z kan´al˚u a zm´aˇckneme tlaˇc´ıtko Remove, kan´al bude smaz´an. Pro smaz´an´ı vˇsech kan´al˚u slouˇz´ı tlaˇc´ıtko Clear ALL. Pro uloˇzen´ı nastaven´ych kan´al˚u slouˇz´ı tlaˇc´ıtko Save, kter´e otevˇre dialogov´e okno, do kter´eho uˇzivatel zad´a n´azev souboru. Takto uloˇzen´e kan´aly mohou b´yt opˇetovnˇe naˇcteny pˇres tlaˇc´ıtko Load. Pro odesl´an´ı nastaven´ı do jed- notky displeje slouˇz´ı tlaˇc´ıtko Transmit a pro smaz´an´ı st´avaj´ıc´ıho nastaven´ı v jednotce tlaˇc´ıtko Erase. Operase Transmit a Erase trv´a dlouho, uˇzivatel mus´ı b´yt trpˇeliv´y.

(50)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Obr´azek 4.2: Aplikace pro komunikaci a nastaven´ı displeje Channels z´aloˇzka

Obr´azek 4.3: Uk´azka rozloˇzen´ı kan´al˚u na Univerz´aln´ım obrazovce displeje

(51)

C´ılem t´eto diplomov´e pr´ace bylo vytvoˇrit aplikaˇcn´ı software pro jednotku displeje elektromotok´ary. Software m´a za ´ukol pˇrehlednˇe zobrazovat hodnoty a stavy na obra- zovce, umoˇznit nastavov´an´ı parametr˚u vozidla, komunikovat na sbˇernici CAN, pomoc´ı XBee modulu a USB a vyˇc´ıtat informace ze senzor˚u pozice plynov´eho a brzdov´eho ped´alu a data z akcelerometru, teplotn´ıho senzoru a GPS pˇrij´ımaˇce. Software je uˇcen pro hardware navrˇzen´y Bc. Martinem Sovou v jeho diplomov´e pr´aci [1]

Aplikaˇcn´ı software postupnˇe inicializuje vˇsechny potˇrebn´e periferie mikrokontrol´eru STM32F746IGT. Po inicializaci periferi´ı mikrokontrol´eru n´asleduje inicializace akce- lerometru a teplotn´ıho sn´ımaˇce. Pot´e se spust´ı pˇrevod A/D pˇrevodn´ıku a n´asleduje vyˇcten´ı kalibraˇcn´ıch dat z extern´ı flash pamˇeti jednotky displeje a nastaven´ı filtr˚u pro pˇr´ıjem zpr´av na sbˇernici CAN.

Nastaven´ı zobrazen´ı hodnot je ˇr´ızeno pomoc´ı kan´al˚u. Kan´aly obsahuj´ı informace o zdroji dat a o dalˇs´ıch parametrech, potˇrebn´ych k zobrazen´ı hodnoty na displej. Zdro- jem dat pro kan´al m˚uˇze b´yt sbˇernice CAN nebo hodnota nˇekter´eho sn´ımaˇce jednotky displeje. V pˇr´ıpadˇe, ˇze je zdrojem CAN sbˇernice kan´al obsahuje CAN ID zpr´avy, ve kter´em je hodnota vys´ıl´ana, d´elku dat a pozici prvn´ıho bit ve zpr´avˇe. Dalˇs´ımi parame- try kan´alu jsou n´azev, jednotky, ve kter´ych bude hodnota zobrazena, poˇcet desetinn´ych m´ıst na kter´e m´a b´yt hodnota zobrazena a minimum a maximum, kter´eho m˚uˇze hod- nota kan´alu dos´ahnout . Posledn´ımi parametry jsou parametry pro ´upravu hodnoty.

Jedn´a se o n´asobitel a offset. Ty slouˇz´ı pro pˇrevod hodnoty pˇrijat´e z CAN sbˇernice na jej´ı fyzik´aln´ı veliˇcinu. Pozice kan´al˚u na obrazovk´ach jsou pevn´e.

(52)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

Pro nastaven´ı tˇechto kan´alu slouˇz´ı PC aplikace, kter´a hl´ıd´a zad´an´ı vˇsech potˇrebn´ych parametr˚u a jejich hodnot. D´ale umoˇzˇnuje uloˇzen´ı a naˇcten´ı jiˇz vytvoˇren´ych konfigurac´ı a nahr´an´ı a smaz´an´ı konfigurace z jednotky displeje. PC aplikace a jednotka displeje komunikuj´ı pˇres XBee modul, pomoc´ı transportn´ıho protokolu popsan´eho v t´eto pr´aci.

Aplikace pro obsluhu potˇrebn´ych ´ukon˚u jako je maz´an´ı a flashov´an´ı pamˇeti vyuˇz´ıv´a sady pˇr´ıkaz˚u.

Software bohuˇzel nepodporuje nastavov´an´ı parametr˚u vozidla, komunikaci pˇres USB a dek´odov´an´ı zpr´av z GPS modulu..

(53)

[1] Sova MartinJednotka displeje pro elektromotok´aru Plzeˇn, 2016. Diplomov´a pr´ace.

Z´apadoˇcesk´a univerzita. Fakulta elektrotechnick´a. Katedra aplikovan´e elektro- niky a telekomunikac´ı. Vedouc´ı pr´ace: Ing. Elis Ludˇek, Dostupn´e z: http:

//hdl.handle.net/11025/23014

[2] Micron Serial NOR Flash Memory N25Q128A: Datasheet. Micron [on- line]. [cit. 15.5.2019]. Dostupn´e z: https://www.micron.com/resource\OT1\

textendashdetails/4c4af943\OT1\textendash8a6b\OT1\textendash4a29\

OT1\textendashb124\OT1\textendash08b345151576

[3] ISSI SYNCHRONOUS DYNAMIC RAM 64–MBIT: Datasheet IS42S16400J Integrated Silicon Solutions Inc. [online]. [cit. 15.5.2019]. Dostupn´e z: http:

//www.issi.com/WW/pdf/42\OT1\textendash45S16400J.pdf

[4] STM32F75xxx and STM32F74xxx advanced ARM–based 32–bit MCUs: Re-R ference manual. ST Microelectronics [online]. [cit. 15.5.2019]. Dostupn´e z:http:

//www2.st.com/resource/en/reference_manual/dm00124865.pdf

[5] Display LCD–TFT 7”: Datasheet MCT070M6W800480LML.Midas [online]. [cit.

15.5.2019]. Dostupn´e z: http://www.midasdisplays.com/products/4\OT1\

textendash10\OT1\textendash14.page

[6] MEMS digital output motion sensor ultra low–power high full–scale 3–axes

“nano” accelerometer: LIS331HH Datasheet. ST Microelectronics [online]. [cit.

(54)

Aplikaˇcn´ı SW pro zobrazovac´ı jednotku elektrovozidla Martin Beran 2019

15.5.2019]. Dostupn´e z: http://www2.st.com/content/ccc/resource/

technical/document/datasheet/58/d2/32/92/1c/e3/43/fd/CD00250937.

pdf/files/CD00250937.pdf/jcr:content/translations/en.CD00250937.

pdf

[7] MLM75x Digital Temperature Sensor and Thermal Watchdog With Two–Wire Interface: Datasheet. Texas Instruments [online].[cit. 15.5.2019]. Dostupn´e z:

http://www.ti.com/lit/ds/symlink/lm75b.pdf

[8] GPS Receiver A2235–H: User’s Manual. Maestro–wireless [online]. [cit.

15.5.2019]. Dostupn´e z: http://www.maestro\OT1\textendashwireless.

com/a2235\OT1\textendashh\OT1\textendashtechnical\OT1\

textendashspecifications/

[9] XBee R /XBee–PRO R RF Modules: Product Manual. Digi International Inc [online]. [cit. 15.5.2019]. Dostupn´e z:https://www.sparkfun.com/datasheets/

Wireless/Zigbee/XBee\OT1\textendashDatasheet.pdf

[10] MART´INEK, Jan. GPS a komunikaˇcn´ı protokol NMEA – 3 (dek´odov´an´ı dat) In: http://www.abclinuxu.cz [online]. 10.10.2006 [cit. 15.5.2019]. Do- stupn´e z: http://www.abclinuxu.cz/clanky/ruzne/gps–a–komunikacni –proto- kol–nmea–3–dekodovani–dat

[11] STM32CubeMX In: https: // www. st. com [online]. [cit. 15.5.2019]. Do- stupn´e z: https://www.st.com/en/development\OT1\textendashtools/

stm32cubemx.html

[12] NOVIELLO, Carmine. stm32746g˙discovery˙qspi.c In: https://github.com [online]. 25.8.2016 [cit. 15.5.2019]. Dostupn´e z: https://github.com/

cnoviello/stm32\OT1\textendashdiscof7/blob/master/stm32\OT1\

textendashdiscof7\OT1\textendashlcddim/system/src/BSP/stm32746g_

discovery_qspi.c

(55)

[13] UTFT Fonts In: http://www.rinkydinkelectronics.com [online]. [cit.

15.5.2019]. Dostupn´e z: http://www.rinkydinkelectronics.com/r\OT1\

textendashfonts.php

(56)

A Pˇ r´ılohy

A.1 Jednotka displeje

Obr´azek A.1: Jednotka displeje, Univerz´aln´ı obrazovka

Odkazy

Související dokumenty

ˇ Retˇ ezce jsou ergodick´ e, maj´ı tedy jedin´ e stacion´ arn´ı rozdˇ elen´ı pravdˇ epodobnost´ı, ke kter´ emu konverguj´ı z libovoln´ eho poˇ c´ ateˇ cn´ıho stavu...

ˇ Retˇ ezce jsou ergodick´ e, maj´ı tedy jedin´ e stacion´ arn´ı rozdˇ elen´ı pravdˇ epodob- nost´ı, ke kter´ emu konverguj´ı z libovoln´ eho poˇ c´ ateˇ cn´ıho

Po vyzkouˇsen´ı si v ´yˇse zm´ınˇen ´ych funkc´ı, vytvoˇren´ı kr´atk´eho zkuˇsebn´ıho skriptu, kter ´y proˇsel ˇc´ast funkcionality programu a pˇri tom

Obt´ıˇ znost zad´ an´ı spoˇ c´ıv´ a v kombinaci nˇ ekolika faktor˚ u: navrˇ zen´ı a implemen- tace intuitivn´ıho uˇ zivatelsk´ eho rozhran´ı, kter´ e bude pˇ rehledn´

Tato ´uvodn´ı obrazovka 4.2 obsahuje n´azev aplikace, po tapnut´ı na tlaˇc´ıtko v lev´em horn´ım rohu se pˇrehraj´ı instrukce k t´eto obrazovce ve formˇe mlu- ven´eho

Jako hlavn´ı n´ aplˇ n pr´ ace byly vytvoˇ reny knihovn´ı funkce a testy v jazyce TCL, kter´ e slouˇ z´ı pro automatick´ e testov´ an´ı grafick´ eho rozhran´ı

V z´ avˇ eru se pr´ ace bude zab´ yvat tak´ e testov´ an´ım a moˇ znostmi nasazen´ı novˇ e vytvoˇ ren´ eho syst´ emu do produkˇ cn´ıho prostˇ red´ı....

Fyziologick´ e parametry byly mˇ eˇreny pomoc´ı modul´ arn´ıho biotelemetrick´ eho dohledov´ eho syst´ emu FlexiGuard, kter´ y byl vyvinut studenty FBMI ˇ CVUT. Aby bylo