Bakalářská práce
České vysoké
učení technické v Praze
F3
Fakulta elektrotechnická Katedra mikroelektronikyGenerátor řídicího napětí pro tester odolnosti
Radovan Blažek
Vedoucí práce: Ing. Vít Záhlava, CSc.
Obor: Aplikovaná elektronika
Studijní program: Komunikace, multimédia a elektronika
ZADÁNÍ BAKALÁŘSKÉ PRÁCE
I. OSOBNÍ A STUDIJNÍ ÚDAJE
420268 Osobní číslo:
Radovan Jméno:
Blažek Příjmení:
Fakulta elektrotechnická Fakulta/ústav:
Zadávající katedra/ústav: Katedra mikroelektroniky Komunikace, multimédia a elektronika Studijní program:
Aplikovaná elektronika Studijní obor:
II. ÚDAJE K BAKALÁŘSKÉ PRÁCI
Název bakalářské práce:
Generátor řídicího napětí pro tester odolnosti
Název bakalářské práce anglicky:
Control Voltage Generator for the Immunity Tester
Pokyny pro vypracování:
1) Prostudujte problematiku testování součástek pro 48 V automobilové systémy.
2) Navrhněte obvodové elektrické schéma zapojení generátoru řízeného z PC.
3) Proveďte simulace klíčových částí obvodů.
4) Vytvořte potřebné programové vybavení řídicího obvodu.
5) Navrhněte desku plošného spoje a realizujte přípravek pro ověření funkčnosti.
Seznam doporučené literatury:
1) Horowitz, P.; Hill, W.: The Art of Electronics. Cambridge University Press, New York, 2015, ISBN 978-0-521-80926-9 2) Vobecký J., Záhlava V.: Elektronika - součástky a obvody, principy a příklady, Třetí rozšířené vydání, Grada Publishing, Praha 2005
3) Záhlava, V. : Návrh a konstrukce desek plošných spojů, BEN, Praha 2011 4) Katalogové a aplikační listy příslušných elektronických součástek
Jméno a pracoviště vedoucí(ho) bakalářské práce:
Ing. Vít Záhlava CSc., katedra mikroelektroniky FEL
Jméno a pracoviště druhé(ho) vedoucí(ho) nebo konzultanta(ky) bakalářské práce:
Termín odevzdání bakalářské práce: _____________
Datum zadání bakalářské práce: 07.02.2017 Platnost zadání bakalářské práce: 10.09.2018
___________________________
___________________________
___________________________
Podpis děkana(ky) Podpis vedoucí(ho) ústavu/katedry
Podpis vedoucí(ho) práce
III. PŘEVZETÍ ZADÁNÍ
Student bere na vědomí, že je povinen vypracovat bakalářskou práci samostatně, bez cizí pomoci, s výjimkou poskytnutých konzultací.
Seznam použité literatury, jiných pramenů a jmen konzultantů je třeba uvést v bakalářské práci.
.
Datum převzetí zadání Podpis studenta
Prohlášení
Prohlašuji, že jsem předloženou práci vy- pracoval samostatně a že jsem uvedl veš- keré použité informační zdroje v souladu s Metodickým pokynem o dodržování etic- kých principů při přípravě vysokoškol- ských závěrečných prací.
V Praze, 26. května 2017
Anotace
Tato práce se zabývá návrhem arbitrár- ního generátoru napětí ovládaného z PC pro generování neomezeně dlouhých prů- běhů. Nejdříve je vysvětlený účel takového zařízení a na to navazuje popis jednotli- vých funkčních součástí generátoru.
Klíčová slova:
Vedoucí práce: Ing. Vít Záhlava, CSc.
Annotation
This thesis is about the design of the arbi- trary waveform generator controlled from PC for generating continuous waveforms.
It discusses the purpose of such device and then describes all parts of the device in detail.
Keywords:
Title translation: Control Voltage Generator for the Immunity tester
Obsah
1 Úvod 1
2 Teorie 3
2.1 Způsob testování . . . 3
2.2 Vzorkovací teorém . . . 3
2.3 Interpolace . . . 4
2.4 Dostupná řešení . . . 5
3 Realizace přípravku pro ověření funkčnosti 7 3.1 USB Převodník . . . 7
3.2 FPGA . . . 8
3.2.1 Příjem dat . . . 9
3.2.2 Vyrovnávací paměť . . . 10
3.2.3 Zvýšení vzorkovací frekvence 10 3.2.4 Protokol . . . 10
3.2.5 Trigger . . . 11
3.2.6 Kalibrace . . . 11
3.3 Analogová část . . . 11
3.3.1 Měniče napětí . . . 11
3.3.2 DAC . . . 12
3.3.3 Rekonstrukční filtr . . . 12
3.3.4 Výstupní zesilovač . . . 13
3.3.5 Ochrana výstupu . . . 14
4 Program pro PC 15 5 Závěr 17 5.1 Parametry . . . 17
5.2 Mechanické zpracování . . . 17
Bibliografie 21
A Použitý software 23
B Seznam zkratek 25
C Kompletní schéma 27
Obrázky
2.1 Příklad průběhu napájecího napětí z normy LV148.[2] . . . 3 2.2 Originální signál. . . 4 2.3 Model výstupu z DAC při původní
vzorkovací frekvenci. . . 5 2.4 Signál proložený nulami. . . 5 2.5 Signál po vyfiltrování FIR filtrem. 5 3.1 Blokové schéma. . . 7 3.2 Blokové schéma logiky FPGA. . . . 8 3.3 Zjednodušený stavový diagram
příjmu dat . . . 9 3.4 Simulace logiky VHDL pro čtení
dat. . . 10 3.5 schéma zapojení boost měniče . . 12 3.6 schéma zapojení nábojové pumpy. 12 3.7 schéma zapojení DAC a
rekonstrukčního filtru. . . 13 3.8 schéma zapojení výstupního
zesilovače a výstupu. . . 14 4.1 Ovládací program pro generátor. 16 5.1 3D model osazeného plošného
spoje. . . 18 5.2 3D model krabičky s plošným
spojem. . . 18 5.3 Fotografie generátoru bez krytu. 18 5.4 Fotografie generátoru. . . 19
Tabulky
3.1 Formát dat . . . 10 3.2 Parametry AD9764 při 25◦C . . . 13 5.1 Parametry generátoru při 23◦C . 17
Kapitola 1
Úvod
Byl jsem postaven před úkol nakreslení průběhů pro arbitrární generátor podle normy VDA 320[1] pro testování součástí automobilů pro ST Micro- electronics. Současné řešení používalo arbitrární generátor s pamětí na 64 tisíc vzorků, který ovládá výstupní napětí výkonového zdroje. To není pro- blém pro generování relativně krátkých nebo periodických signálů. Když však potřebujeme průběh s délkou trvání v řádu minut, začne nás relativně malá pamět na vzorky omezovat. Generátor musí snížit vzorkovací frekvenci a to nám znemožní mít v rámci dlouhého průběhu rychleji se měnící úsek, jako je potřeba v normě VDA 320[1]. Nabízí se dvě možnosti jak to vyřešit: mno- hem větší paměť na vzorky nebo počítat vzorky postupně během generování signálu.
Dále je popsané řešení generátoru ovládaného programem v PC, který do generátoru posílá už vypočítané vzorky a generátor podle nich rovnou vytváří napětí na výstupu. Veškerá paměťová náročnost je tedy přenesena na PC.
Takové řešení netrpí problémem paměti na vzorky a je naprosto univerzální - je omezené jen programem v PC a možnostmi výkonového zdroje.
Hlavní důvod proč se tímto zabývat je však trochu jiný. Nastíněný problém je totiž vyřešitelný i běžným generátorem a to například použitím předpro- gramované funkce generátoru na jednu část průběhu a arbitrární průběh na druhou. Hlavní motivace pro návrh generátoru, kterým se zabývá tato práce, je jednoduchost a praktičnost použití.
Kapitola 2
Teorie
2.1 Způsob testování
Elektrické a elektronické součásti automobilů procházejí testy, které sestávají z aplikace průběhů napájecího napětí daných normou a sledování chování testované součásti. Průběhy jsou navrženy tak, aby simulovali chování palub- ního napětí při různých situacích. K vytvoření průběhu napájecího napětí lze použít zdroj ovládaný právě napětím z generátoru.
Jeden z testovacích průběhů z normy VDA 320[1] je vidět na obrázku 2.1.
Tento průběh je typickým příkladem, kde je problém s omezenou pamětí na vzorky. Obsahuje totiž harmonický signál s frekvencí 10 kHz a zároveň je více než 15 min (900 s) dlouhý. Pro generování harmonického průběhu s frekvencí 10 kHz je potřeba rychlost vzorkování minimálně 20 kS/s. Takže je potřeba více než 900 s·20 kS/s = 18 MS paměť.
Obrázek 2.1: Příklad průběhu napájecího napětí z normy LV148.[2]
2.2 Vzorkovací teorém
„Přesná rekonstrukce spojitého, frekvenčně omezeného signálu z jeho vzorků je možná tehdy, pokud byla vzorkovací frekvence vyšší než dvojnásobek nejvyšší harmonické složky vzorkovaného signálu.“[3] Pokud tedy chceme vygenerovat
2. Teorie
...
signál s harmonickými složkami o maximální frekvencí f, pak vzorkovací frekvence fs musí být větší než dvojnásobek f.fs >2f Vzorkovací teorém nám tedy udává jakou musíme mít minimální rychlost vzorkování generátoru.
2.3 Interpolace
Máme např. harmonický signál jako je na obrázku 2.2. Signál navzorkujeme a vzorky pošleme do D/A převodníku, pak výstup z převodníku má tvar přibližně jako po částech konstantní funkce, viz obrázek 2.3. V některých případech je potřeba, aby výstup odpovídal signálu, který jsme vzorkovali.
V takovém případě je nutné použít rekonstrukční filtr - dolní propust s mezní frekvencí rovnou polovině vzorkovací frekvence f0 = fs/2. Ideální dolní propust vyfiltruje všechny složky spektra s frekvencí větší než fs/2 a dostaneme původní signál.
Pokud byl při vzorkování signálu splněn vzorkovací teorém, pak je možné vzorkovaný signál ze vzorků přesně rekonstruovat. To znamená, že je možné i dopočítat hodnotu signálu kdekoliv v čase mezi vzorky. Lze to využít ke zvýšení počtu vzorků pro zvýšení rychlosti vzorkování. Což je výhodné, protože zvýšením rychlosti vzorkování se nám sníží nároky na rekonstrukční filtr - propustné pásmo zůstane stejné, ale filtrované pásmo se posune k vyšším frekvencím.
Interpolace se provede tak, že se mezi vzorky přidá určitý počet nulových vzorků a tento nový signál vyfiltrujeme dolní propustí. Kolik přidáme nul určuje kolikrát se zvýší rychlost vzorkování - jeden nulový vzorek zdvojnásobí množství vzorků, takže zvýší rychlost vzorkování dvakrát. Na filtr se kladou velké nároky, nicméně tentokrát je to filtr digitální. Digitální filtr sice v praxi také nebude ideální dolní propust, ale lze realizovat velice dobrý filtr za cenu pouze výpočetních prostředků. [4]
0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00
t [s] 1e 6
1.00 0.75 0.50 0.25 0.00 0.25 0.50 0.75 1.00
U [V]
(a) :Časový průběh.
0 1 2 3 4 5 6
f [Hz] 1e7
103 102 101 100
Amplituda [V]
(b) :Spektrum.
Obrázek 2.2: Originální signál.
...
2.4. Dostupná řešení0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00
t [s] 1e 6
1.00 0.75 0.50 0.25 0.00 0.25 0.50 0.75 1.00
U [V]
(a) :Časový průběh.
0 1 2 3 4 5 6
f [Hz] 1e7
103 102 101 100
Amplituda [V]
(b) :Spektrum.
Obrázek 2.3: Model výstupu z DAC při původní vzorkovací frekvenci.
0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00
t [s] 1e 6
1.00 0.75 0.50 0.25 0.00 0.25 0.50 0.75 1.00
U [V]
(a) :Časový průběh.
0 1 2 3 4 5 6
f [Hz] 1e7
103 102 101 100
Amplituda [V]
(b) :Spektrum.
Obrázek 2.4:Signál proložený nulami.
0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00
t [s] 1e 6
0.75 0.50 0.25 0.00 0.25 0.50 0.75
U [V]
(a) :Časový průběh.
0 1 2 3 4 5 6
f [Hz] 1e7
103 102 101 100
Amplituda [V]
(b) :Spektrum.
Obrázek 2.5: Signál po vyfiltrování FIR filtrem.
2.4 Dostupná řešení
Existuje několik dostupných řešení generátoru, které lze použít:
.
Běžný arbitrární generátor s velkou pamětí— Např. Keysight řada 33600a má možnost mít paměť o velikosti až 64 MS, což stačí pro většinu průběhů z normy VDA 320[1] až na frekvenční sweep
2. Teorie
...
do 200 kHz, který má trvat 2 min. To samozřejmě není problém, protože lze vygenerovat předprogramovanou funkcí, ale už je potřeba generá- tor ovládat jiným způsobem. Některé generátory lze naprogramovat i tak, aby generovali sekvenci několika předprogramovaných funkcí. To je výhodné do té doby, dokud není potřeba signál, který generátor neumí.
http://www.keysight.com/en/pc-2371707/33600a-series-waveform-generators- 80-120-mhz
.
Specializovaný generátor přímo určený pro tento typ testování— Např. AutoWave - programuje se sekvence předprogramovaných funkcí.
Stojí více než 500 tisíc korun.1
http://www.emtest.com/products/product/135120100000010146.php
.
Existující generátory k PC do USB— Často není jasné, jestli podporují nepřetržité generování signálu.
— Nemívají výstupní napětí v rozsahu do 10 V.
— Např. BitGen.
http://www.bitscope.com/product/DWG100/
Ukázaná řešení rozhodně lze použít, ale mohou být v určitých ohledech nepraktická, drahá nebo neuniverzální.
1https://www.vhodne-uverejneni.cz/index.php?m=xenorders&h=orderdocument&a=
download&document=1112182
Kapitola 3
Realizace přípravku pro ověření funkčnosti
Hlavní součásti generátoru jsou:
.
Převodník USB na paralelní sběrnici — Převádí data ze sběrnice USB na jednodušeji použitelnou paralelní sběrnici..
FPGA — Zajišťuje převod dat mezi USB převodníkem a D/A převodní- kem, vyrovnávací paměť a další ovládací logiku..
D/A převodník — Převádí data na elektrický proud..
Paralelní RC článek — Slouží jako převodník proudu na napětí a jako rekonstrukční filtr - dolní propust..
Výstupní zesilovač— Mění rozsah výstupního napětí na 0-10 V, snižuje výstupní odpor a zvyšuje maximální výstupní proud.Obrázek 3.1:Blokové schéma.
3.1 USB Převodník
Pro připojení generátoru k osobnímu počítači, bylo zvoleno široce rozšířené rozhraní pro periferie PC, USB. Jedna z možností jak implementovat sběrnici USB je externí transceiver a logika v FPGA. Existuje otevřená implementace USB 2.0 i USB 3.0 přímo pro Cyclone IV. Nicméně, jednodužším řešením je využít obvod FT2232H.
FT2232H je univerzální převodník ze sběrnice USB, který má několik módů ve kterých může fungovat. Pro naše účely je zajímavý mód "FT245
3. Realizace přípravku pro ověření funkčnosti
...
synchronous FIFO", ten ze všech dosahuje nejvyšších přenosových rychlostí.
Teoretická maximální rychlost přenosu je 40 MB/s. Data z USB jsou pak zpřístupněna na relativně jednoduché paralelní sběrnici s hodinovým signálem a signály pro řízení přenosu. Pro posílání dat do FT2232H z PC jsou od výrobce k dispozici knihovny pro několik programovacích jazyků. Existuje i open-source knihovna libftdi pro jazyk C.
3.2 FPGA
Obrázek 3.2:Blokové schéma logiky FPGA.
Napájecí větve pro FPGA jsou řešené lineárními regulátory napojenými na 5 V z USB. Cyclone IV potřebuje 1,2 V, 2,5 V a 3,3 V pro napájení IO Výkonová ztráta je zde přijatelná, protože FPGA spotřebovává málo proudu při množství použitých hradel a frekvenci překlápění maximálně 120 MHz.
Kapacita a množství blokovacích kondenzátorů bylo navrženo pomocí nástroje od výrobce FPGA.
Nároky na FPGA jsou relativně nízké, nicméně nelze použít CPLD kvůli tomu, že většina CPLD nemá dostatek RAM pro implementaci větší vyrov- návací paměti FIFO. Intel (Altera) Cyclone IV jsem zvolil z vyhovujících FPGA z praktických důvodů - předchozí zkušenost a měl jsem k dispozici všechny potřebné SW i HW nástroje pro práci s tímto FPGA. Další možností byl např. Lattice ICE40.
Modul vyrovnávací paměti a PLL byl vygenerován pomocí funkce ve vývo- jovém prostředí pro Intel FPGA, Quartus. Pro všechno ostatní byla použita vlastní implementace ve VHDL.
...
3.2. FPGA3.2.1 Příjem dat
Příjem dat v FPGA obstarává stavový automat. Automat generuje správně časované ovládací signály pro FT2232 a ve správný čas čte data. Změna stavu je synchronizována s hodinovým signálem.
FT2232H generuje hodinový signál o frekvenci 60 MHz a stavový signál RXF, naopak čte signály OE a RD. Všechny řídící signály jsou aktivní v nule. Přenos dat začíná tím, že FT2232 nastaví RXF do nuly. Takto obvod signalizuje, že má k dispozici data na předání. Potom můžeme nastavit OE do nuly, to způsobí nastavení prvního bytu dat na datovou sběrnici. Jakmile byte ze sběrnice přečteme, můžeme nastavit RD do nuly, tím potvrdíme přečtení bytu a obvod na sběrnici nastaví další byte. Přenos se může zastavit z naší strany nastavením RD na jedničku nebo ze strany FT2232 nastavením RXF na jedničku. Odesílání směrem do FT2232 a tím pádem do PC jsem neimplementoval.
Maximální rychlost přenosu se pohybuje okolo 27 MB/s.
Byla provedena simulace tohoto modulu, ale sloužila hlavně k ověření, jestli se vše chová podle očekávání než k ověření funkčnosti s FT2232. Datasheet a aplikační poznámka nebyly úplně jasné, takže nešlo napsat správný stimulační kód. Ladění jsem provedl pomocí funkce SignalTap - logického analyzátoru nahraného přímo do FPGA.
Idle RXF=1
OE low RD low
Read 1st byte
Read 2nd byte
Wait for FIFO RXF=0
FIFO full=0
FIFO full=1
FIFO full=1 FIFO full=0
Obrázek 3.3:Zjednodušený stavový diagram příjmu dat
3. Realizace přípravku pro ověření funkčnosti
...
Obrázek 3.4: Simulace logiky VHDL pro čtení dat.
3.2.2 Vyrovnávací paměť
Relativně velká vyrovnávací paměť typu FIFO First In - First Out první dovnitř - první ven neboli fronta je potřeba kvůli možné pomalé odezvě USB a operačního systému. USB přenáší data po paketech a má topologii sběrnice a běžné PC nemají operační systém reálného času, takže je možné, že se přenos dat na několik ms přeruší. V tento okamžik se začne FIFO vyprazdňovat a umožní nepřerušené generování dat než znovu začne přenos. Ve zvoleném FPGA šla vytvořit FIFO o maximální hloubce 16384 vzorků o šířce 14 bitů.
Tato velikost FIFO vystačí na překlenutí přibližně 16 ms výpadku při 1 MS/s, 3,2 ms při 5 MS/s a 1,6 ms při 10 MS/s.
3.2.3 Zvýšení vzorkovací frekvence
Zvýšení vzorkovací frekvence se provádí interpolací popsané v teoretické části.
V FPGA je implementováno jako jeden samostatný modul. Ve výchozím stavu je vypnutý.
U FIR filtru je důležité, aby úplně filtroval původní frekvenci vzorkování.
Pokud toto není splněno, pak při požadované stejnosměrné hodnotě je vý- stup filtru zvlněný. Úplného odfiltrování původní vzorkovací frekvence lze dosáhnout zařazením vhodného průměrovacího filtru za dolní propust.
3.2.4 Protokol
Data jsou přijímána po bytech a každé dva byty tvoří jeden 16-ti bitový word.
Word může být buď vzorek signálu nebo ovládací příkaz pro FPGA. Nejvyšší dva bity wordu udávají typ dat ve zbytku wordu. Klíč je vidět v tabulce 3.1.
V současnosti je implementovaný pouze jeden příkaz a to spuštění gene- rování neboli trigger: 0xFFFF. Pro větší flexibilitu zařízení by bylo možné implementovat další příkazy jako např. změna rychlosti vzorkování, smazání FIFO, uložení kalibrační hodnoty atd.
Bit 15 (MSB) Bit 14 Význam bitů 13-0
0 X Vzorek signálu
1 X Příkaz pro FPGA
Tabulka 3.1:Formát dat
...
3.3. Analogová část 3.2.5 TriggerGenerování se spustí automaticky pokud se zaplní vyrovnávací paměť FIFO.
Nebo pokud máme krátký signál, který má málo vzorků a tedy nenaplní FIFO nebo chceme nastavit určité stejnosměrné napětí na výstupu - pošleme data s napětím a startovací příkaz. Pokud je vyrovnávací paměť prázdná, startovací příkaz nemá žádný efekt.
Po vyprázdnění FIFO se generování automaticky zastaví a znovu se čeká na jednu ze spouštěcích podmínek.
3.2.6 Kalibrace
Největší chyba výstupního napětí je chyba zesílení, která je způsobená ne- přesnými hodnotami odporu a to hned na třech místech.
.
Nastavení proudu D/A převodníku.
Snímací rezistor proudu.
Nastavení zesílení výstupního zesilovačeTuto chybu lze eliminovat přímo v zapojení pomocí proměnného rezistoru, kterým se vyladí hodnota odporu v jednom nebo hned v několika jmenovaných místech v obvodu. Jiný přístup je zvolit takové hodnoty odporu rezistorů, aby v jakémkoliv případě byla chyba zesílení nulová nebo kladná (nikdy ne záporná) a potom můžeme provést kalibraci v softwaru pomocí rovnice y=kx. Rovnicí vypočítáme chybu a tu pak odečteme od požadované hodnoty výstupního napětí.
Další chybou je offset, který lze eliminovat v softwaru jeho prostým odečte- ním. Odečtení celé chyby offsetu je možné až pro hodnoty výstupního napětí vyšší než je hodnota offsetu. Jelikož je hodnota offsetu v řádu jednotek mV, tak nás toto nijak neomezuje. Nakonec tedy kalibrace probíhá pomocí celé rovnice přímky y=kx+q.
Generátor využívá pouze kalibraci v softwaru.
3.3 Analogová část
3.3.1 Měniče napětí
Zařízení je napájené z USB portu počítače, který poskytuje 5 V. Výstupní napětí, ale musí být až 10 V. To je důvod proč je potřeba měnič napětí.
Pro zvyšování napětí je možné použít buď nábojovou pumpu nebo měnič s cívkou. Nábojová pumpa by musela mít topologii ztrojovače napětí, což už je vhodné jen pro velmi malé výstupní proudy. Byl tedy použit měnič s cívkou - topologie zvyšovač (boost).
Další problém se týká výstupních napětí blízkých nule. Operační zesilovač, i když je typu RRIO (Rail-to-Rail Input Output), nedokáže na výstupu vytvořit 0 V, pokud je jeho záporná napájecí větev připojena také na 0 V.
3. Realizace přípravku pro ověření funkčnosti
...
Řešením je vytvořit pro zápornou napájecí větev záporné napájecí napětí minimálně několik stovek mV pod 0 V. Pro tento účel je ideální invertující nábojová pumpa.
Obrázek 3.5:schéma zapojení boost měniče
Obrázek 3.6: schéma zapojení nábojové pumpy.
3.3.2 DAC
D/A převodník je jedna z hlavních součástek celého zapojení, protože ovlivňuje několik zásadních parametrů generátoru. K těm nejdůležitějším parametrům patří maximální vzorkovací frekvence, stejnosměrná přesnost a zkreslení.
Některé parametry jsou uvedeny v tabulce 3.2. D/A převodník disponuje paralelním rozhraním pro přenos dat. Paralelní rozhraní oproti sériovému velice zjednodušuje komunikaci a snižuje potřebnou frekvenci překlápění výstupních pinů FPGA pro určitou vzorkovací frekvenci.
Počet bitů převodníku určuje jeho rozlišení. Rozhodl jsem se pro 14 bitů, pak je rozlišení přibližně 0,61 mV. U 16 bitů by bylo nutno změnit protokol za složitější, ale vylepšené rozlišení není potřeba. Bylo by možné použít 15-ti bitový převodník, ale 15-ti bitové D/A převodníky nejsou běžné.
3.3.3 Rekonstrukční filtr
Jelikož je přenosová rychlost přibližně 27 MB/s a na každý vzorek jsou potřeba 2 byty je maximální rychlost vzorkování 10 MS/s, s malou rezervou.
...
3.3. Analogová částNázev parametru Hodnota
Počet bitů 14 bitů
Nelinearita INL typicky 2,5 LSB
Nelinearita DNL typicky 1,5 LSB
Maximální vzorkovací frekvence 125 MS/s Tabulka 3.2: Parametry AD9764 při 25◦C
Obrázek 3.7:schéma zapojení DAC a rekonstrukčního filtru.
To odpovídá maximální frekvenci generovaného sinálu 5 MHz. Pokud tedy budeme chtít využívat 10 MS/s je ideální rekonstrukční filtr s mezní frekvencí 5 MHz.
Díky interpolaci je možné několikanásobně zvýšit vzorkovací frekvenci, takže i jednoduchý RC filtr znatelně tlumí nechtěné části spektra. Nicméně v cílové aplikaci není rekonstrukční filtr nutně potřeba.
Odpor je daný 49.9 Ω, kapacita se spočítá jako: C= f 1
c2πR
3.3.4 Výstupní zesilovač
Operační zesilovač je AD8067 od Analog Devices, je vyroben z části z FET tranzistorů a z části z bipolárních. FET tranzistory umožňují malé vstupní proudy a bipolární část je rychlá. Díky tomu má OZ malé vstupní proudy, ale velké GBP a velkou rychlost přeběhu.
Výstupní zesilovač je tvořen operačním zesilovačem v neinvertujícím zapo- jení. Zesílení má nastavené přibližně na 10. Mění napětí na výstupu filtru z rozsahu 0-1 V na rozsah 0-10 V.
3. Realizace přípravku pro ověření funkčnosti
...
Obrázek 3.8:schéma zapojení výstupního zesilovače a výstupu.
3.3.5 Ochrana výstupu
Výstup je chráněn proti připojení vyššího nebo záporného napětí jedno- směrnou TVS diodou s průrazným napětím v závěrném směru 12 V. Mezi výstupním zesilovačem a TVS diodou je zapojený rezistor s hodnotou 27 Ω.
TVS dioda má kapacitu přibližně 1 nF, takže se zmíněným rezistorem tvoří RC článek - dolní propust. Frekvence zlomu, se spočítá jako: fc= 2πRC1 . Po dosazení vychází přibližně 5,9 MHz.
Kapitola 4
Program pro PC
Program pro ovládání generátoru je principiálně velice jednoduchý. Přečte z disku nebo spočítá vzorek napětí, ten přepočítá na 14-ti bitové číslo vyjadřující napětí 0-10 V. 0 znamená 0 V a 16383 znamená 10 V. Větší množství těchto vzorků sdruží do pole, které přetypuje na pole bytů a předá funkci z knihovny na odeslání do FT2232.
Program pro testování při vývoji byl napsán v C. Pro ST Microelectronics je napsána aplikace v jazyce C# na míru jejich potřeb, viz obrázek 4.1.
Výhoda jazyka C# je v jednoduchosti vytváření grafického uživatelského prostředí programu a relativně jednoduchého vícevláknového programování.
Nevýhoda je možnost spuštění pouze pod OS Windows a nižší rychlost oproti kompilovaným jazykům. Vhodný by pravděpodobně byl jazyk Go. Je kompilovaný, vícevláknové programování je integrováno přímo do jazyka a lze ho použít s GUI knihovnou Qt.
4. Program pro PC
...
Obrázek 4.1:Ovládací program pro generátor.
Kapitola 5
Závěr
Zapojení generátoru se ukázalo jako funkční, bude používán v laboratoři ST Microelectronics pro testování jak je popsáno v teoretické části. Zásadní ladění bylo potřeba u přenosu dat z PC do FPGA a to jak na straně softwaru v PC, tak na straně FPGA. U softwaru v PC se musí vyloučit jakékoliv delší prodlevy mezi přenosy dat. Na straně FPGA se musela vyladit komunikace s FT2232, kde je přenos neustále přerušován.
Pro rychlost vzorkování 1 MS/s funguje přenos dat bezchybně, současná rychlost je dostačující, takže vyšší nebyly testovány.
5.1 Parametry
Generátor dosahuje potřebných parametrů pro syntézu jakéhokoliv signálu z normy VDA 320[1].
Název parametru Hodnota
DC přesnost ±1 mV
Vzorkovací frekvence min 1 MS/s Frekvenční rozsah DC - 5 MHz
Šum 11 mVp-p
Tabulka 5.1:Parametry generátoru při 23◦C
5.2 Mechanické zpracování
Osazený plošný spoj je usazen v krabičce z hliníkové slitiny, která poskytuje mechanickou ochranu zařízení. Krabička byla vymodelována v programu FreeCAD podle výkresu od prodejce. Model krabičky a osazeného plošného spoje byl použit pro návrh výřezů v čelních krytech pro usazení konektorů a světlovodů pro indikační LED diody.
5. Závěr
...
Obrázek 5.1:3D model osazeného plošného spoje.
Obrázek 5.2:3D model krabičky s plošným spojem.
Obrázek 5.3: Fotografie generátoru bez krytu.
...
5.2. Mechanické zpracováníObrázek 5.4: Fotografie generátoru.
Bibliografie
1. Electric And Electronic Components In Motor Vehicles 48 V On-Board Power Supply Requirements And Tests. 2014. Standard. Verband der Automobilindustrie (VDA).
2. LV 124 & LV 148 Electrical normative basics and practical challenges for vehicle components and systems. Berwyn, Pensylvánie, USA: Ame- tek, 2016. Dostupné také z: http://www.testforce.com/testforce_
files/Seminars/SpirentAutomotiveSeminar2016/SpirentAutomotiveLV124- LV148V.pdf.
3. WIKIPEDIE. Shannonův teorém — Wikipedie: Otevřená encyklopedie.
2017. Dostupné také z: https://cs.wikipedia.org/w/index.php?
title = Shannon % C5 % AFv _ teor % C3 % A9m & oldid = 14934219. [Online;
navštíveno 21. 05. 2017].
4. DSPGURU. Interpolation. 2017. Dostupné také z:https://dspguru.
com/dsp/faqs/multirate/interpolation/. [Online; navštíveno 21.
05. 2017].
5. HOROWITZ, Paul; HILL, Winfield. Art of electronics. Third edition.
New York: Cambridge University Press, 2015. ISBN 9780521809269.
6. Cyclone IV Device Handbook. 2016. Č. Cyclone IV.
7. FT2232H Dual High Speed USB to Multipurpose UART/FIFO IC Da- tasheet. 2016. Č. FT2232H. Dostupné také z: http://www.ftdichip.
com/Support/Documents/DataSheets/ICs/DS_FT2232D.pdf. Verze 2.5.
8. Application Note AN130 FT2232H Used in an FT245 Style Synchro- nous FIFO Mode. 2015. Č. FT2232H. Dostupné také z: http://www.
ftdichip . com / Support / Documents / AppNotes / AN _ 130 _ FT2232H _ Used_In_FT245%20Synchronous%20FIFO%20Mode.pdf. Verze 1.3.
9. High Gain Bandwidth Product, Precision Fast FETTM Op Amp. 2017.
Č. AD8067. Dostupné také z: http://www.analog.com/media/en/
technical-documentation/data-sheets/AD8067.pdf. Rev. B.
10. 14-Bit, 125 MSPS TxDACR D/A Converter. 2017. Č. AD9764. Do- stupné také z: http : / / www . analog . com / media / en / technical - documentation/data-sheets/AD9764.pdf. Rev. C.
Příloha A
Použitý software
Pro návrh desek plošných spojů byl použit program KiCAD. Matematické modelování signálového řetězce a návrh FIR filtru pro interpolaci bylo prove- deno v jazyce Python s využitím knihoven SciPy a NumPy. Program GHDL byl použit pro simulaci vybraných částí logiky pro FPGA. 3D model krabičky pro generátor je vytvořen ve FreeCADu. Pro vývoj logiky pro FPGA byl použit program Quartus Lite.
Veškerý použitý software s vyjímkou Quartus Lite je volně šiřitelný svo- bodný software s otevřeným zdrojovým kódem.
Příloha B
Seznam zkratek
USB Universal Serial Bus - bežné rozhraní počítače LED Light Emitting Diode - světlo vyzařující dioda TVS Transient Voltage Suppressor - ochrana proti přepětí HDL Hardware Description Language - jazyk pro popis HW OZ Operační zesilovač
FIFO First In First Out - druh uspořádání paměti
MS, kS Megasample, Kilosample - milion vzorků, tisíc vzorků
VHDL VHSIC Hardware Description Language - jeden z jazyků pro popis hardwaru
VHSIC Very High Speed Integrated Circuits
SW Software - programové vybavení počítače/program
HW Hardware - fyzické vybavení počítače/fyzicky existující součástka FPGA Field Programmable Gate Array - programovatelné hradlové pole LSB Least Significant Bit - nejméně významný bit
FIR Finite Impulse Response - konečná impulsní odezva
CPLD Complex Programmable Logic Device - komplexní programovatelný logický obvod
PC Personal Computer - osobní počítač
D/A, DAC Digital to Analog, Digital to Analog Converter - převodník čísla na analogovou veličinu
RC Resistor Capacitor - obvod s odporem a kondenzátorem
INL Integral nonlinearity - maximální chyba velikosti napětí po kalibraci přímkou
B. Seznam zkratek
...
DNL Differential nonlinearity - maximální chyba velikosti změny napětí odpovídající změně o jeden LSB (různá velikost schodů v přenosové charakteristice)
Příloha C
Kompletní schéma
1 2 3 4 5 6 7 8 9 10 11
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
File: USB_DAC.sch Sheet: / ST IO@1 1
IO@2 2 IO@3 3
GND@13 4
VCCINT@1 5
IO@4 6 IO@5 7 IO@6 8 NSTATUS 9
IO@7 10 TDO 20
IO@11 30 VCCIO3@1
40
IO@23 50
IO@31 60
IO@38 70
IO@46 80 CLK5 90
IO@8 11 NCE 21
IO@12 31
GND@3 41
IO@24 51 VCCINT@4
61
IO@39 71 VCCIO5
81
CLK4 91 DCLK 12
GND@14 22
IO@13 32
IO@18 42
IO@25 52 VCCIO4@2
62
IO@40 72
GND@7 82
CONF_DONE 92
IO@9 13 CLK1 23
IO@14 33
IO@19 43
IO@26 53
GND@6 63
IO@41 73
IO@47 83 VCCIO6
93
NCONFIG 14
CLK2 24
IO@15 34
IO@20 44
IO@27 54
IO@32 64
IO@42 74
IO@48 84 MSEL0 94 TDI 15
CLK3 25
VCCA1 35
VCCINT@3 45
IO@28 55
IO@33 65
IO@43 75
IO@49 85
GND@8 95
TCK 16 VCCIO2
26
GNDA1 36
IO@21 46 VCCIO4@1
56
IO@34 66
IO@44 76
IO@50 86 MSEL1 96 VCCIO1
17
GND@2 27
VCCD_PLL1 37
VCCIO3@2 47
GND@5 57
IO@35 67
IO@45 77
IO@51 87 MSEL2 97 TMS 18
IO@10 28
IO@16 38
GND@4 48
IO@29 58
IO@36 68 VCCINT@5
78
CLK7 88
IO@52 98
GND@1 19
VCCINT@2 29
IO@17 39
IO@22 49
IO@30 59
IO@37 69
GND@15 79
CLK6 89
IO@53 99 IO@54100
IO@60110
IO@67120 VCCIO8@1
130
GND@12 140
IO@55101
IO@61111
IO@68121
GND@11 131
IO@81141 VCCINT@6
102
IO@62112 VCCIO7@2
122
IO@75132
IO@82142 IO@56103
IO@63113
GND@10 123
IO@76133
IO@83143 IO@57104
IO@64114
IO@69124 VCCINT@8
134
IO@84144 IO@58105
IO@65115
IO@70125
IO@77135 145EXP
IO@59106 VCCINT@7
116
IO@71126
IO@78136 VCCA2
107 VCCIO7@1 117
IO@72127
IO@79137
GNDA2 108
GND@9 118
IO@73128
IO@80138 VCCD_PLL2
109
IO@66119
IO@74129 VCCIO8@2
139 U1 EP4CE6E22C8N
GND1
2 OSCI
3 OSCO VPHY4 GND5
6 REF 7 DM 8 DP
VPLL9AGND10 VCCIO20
ACBUS4 30
BDBUS2 40 VREGIN
50
PWREN 60
GND11
ADBUS4 21
VCCIO31
BDBUS3 41
GND51
EEDATA 61
VCORE12
ADBUS5 22
ACBUS5 32
VCCIO42
BCBUS1 52 EECLK
62
13 TEST
ADBUS6 23
ACBUS6 33
BDBUS4 43
BCBUS2 53 63 EECS
RESET 14
ADBUS7 24
ACBUS7 34
BDBUS5 44
BCBUS3 54 VCORE64GND15 GND25 GND35
BDBUS6 45
BCBUS4 55 ADBUS0 16
ACBUS0 26
SUSPEND 36 BDBUS7 46
VCCIO56
ADBUS1 17
ACBUS1 27 VCORE37 GND47
BCBUS5 57 ADBUS2 18
ACBUS2 28
BDBUS0 38
BCBUS0 48
BCBUS6 58 ADBUS3 19
ACBUS3 29
BDBUS1 39 VREGOUT
49
BCBUS7 59 U4
FT2232H
GND +1V2
GND1
VO2 3VI
U6 LD1117S12TR
GND1
VO2 3VI
U7 LD1117S25TR
GND1
VO2 3VI
U3 LD1117S33TR
VBUS1
D-2 D+3
GND4Shield5
P8 USB_B
GND
GND +5V
GND +5V
GND GND GND
+5V +1V2 +5V +2V5
+3V3
C20 10uF
C29 10uF
C33 10uF C15
10uF
C25 10uF
C32 10uF
GND GND GND GND GND GND
GND1
VO2 3VI
U8 LD1117S33TR +5V
GND C27 10uF C30
10uF
GND GND
+1V8
C21
3.3uF C22
100nF C26
100nF C28
100nF
GND C16 +1V8
100nF C17
100nF C18
100nF C19
100nF
GND
L1 Ferrite
L2 Ferrite
C14
100nF C13
4.7uF
C12
100nF C10
4.7uF
GND
R13 12k 1%
GND R12 10k
CS1 SCLK2 3DI 4DO
GND5 6ORG 7NC
VCC8
U9 93CxxC R17
2.2k C31
100nF GND R16 10k
R1410k
R1510k
Y1 12MHz C2318pF C24
18pFGND
12
D1 FT2232 R8 10k
+3V3
+2V5
FTDI_D0 FTDI_D1 FTDI_D2 FTDI_D3 FTDI_D4 FTDI_D5 FTDI_D6 FTDI_D7 FTDI_RXF#
FTDI_TXE#
FTDI_RD#
FTDI_WR#
FTDI_SIWUA FTDI_OE#
FTDI_D0 FTDI_D1 FTDI_D2 FTDI_D3 FTDI_D4 FTDI_D5 FTDI_D6 FTDI_D7 FTDI_RXF#
FTDI_TXE#
FTDI_RD#
FTDI_WR#
FTDI_SIWUA FTDI_OE#
FTDI_CLKOUT
FTDI_CLKOUT
1 2
3 4
5 6
7 8
9 10
P1 CONN_02X05
+2V5
GND R1
4.7k R2 4.7k
R3 4.7k TCK TDO TMS TDI
GND +2V5
TCK TDO TMS TDI
+2V5
GND GND
R610k
R4 10k
R5 10k
CLK2 CLK3 CLK4 CLK5 CLK6 CLK7
C8
100nF C7
100nF
GND GND
GND
GND +3V3
12
JP1 OpAmp Vdd
1
2
P6 BNC R11
Rout
GND R10
10k 1 2 3
P4 GND OUT C9
100nF
GND GND GND
R7 1k8
GND 1
2 3
P5 GND 3V3 +3V3
1 2 3
P9 GND 1V2 +1V2
1 2 3
P11 GND 2V5 +2V5
EPCS_ASDI EPCS_nCS
EPCS_DATA
+3V3
C1
100nF C2
100nF C3
100nF C4
100nF C5
100nF C6
100nF
GND
+3V3-FTDI
+3V3-FTDI +3V3-FTDI
+3V3-FTDI +3V3-FTDI
GND +3V3-FTDI
+1V8
+3V3-FTDI +3V3-FTDI +3V3-FTDI +3V3-FTDI
+3V3-FTDI
GND
+3V3-FTDI FT2232
Voltage regulators for FPGA
FPGA decoupling caps
+3V3-FTDI FPGA JTAG
L3 Ferrite
L4 Ferrite
C46 100nF
GND C36
100nF C37
100nF C38
100nF C39
100nF C40
100nF C41
100nF
GND +1V2
C34
100nF C35
100nF
C42
100nF C43
100nF
C44
100nF C45
100nF
GND +2V5
DAC_CLK DAC_Bit_0 DAC_Bit_1 DAC_Bit_2 DAC_Bit_3 DAC_Bit_4 DAC_Bit_5 DAC_Bit_6 DAC_Bit_7 DAC_Bit_8 DAC_Bit_9 DAC_Bit_10 DAC_Bit_11 DAC_Bit_12 DAC_Bit_13
DAC_CLK
DAC_Bit_0 DAC_Bit_1 DAC_Bit_2 DAC_Bit_3 DAC_Bit_4 DAC_Bit_5 DAC_Bit_6 DAC_Bit_7 DAC_Bit_8 DAC_Bit_9 DAC_Bit_10 DAC_Bit_11 DAC_Bit_12 DAC_Bit_13
1 CS
2 DATA Vcc 3
4 GND 5 ASDI
6 DCLK Vcc 7
Vcc 8 U10 EPCS-SOIC8 EPCS_DCLK
EPCS_DATA EPCS_nCS EPCS_ASDI EPCS_DCLK
GND
+3V3
C47
100nF
GND
D- D+
1 P3
CONN_01X01
1 P7
CONN_01X01
1 P10
CONN_01X01
1 P12
CONN_01X01
GND Mounting holes
FPGA configuration flash
DAC and amplifier
GND
+12V L5
10uH D3 D_Schottky
C49 10uF
GND L6 Ferrite
C50 1uF +5V
R25 1k5 R24 13k
GND
+12V D-
D+
1 2
F1 FUSE
GND D2 TVS
Bit_13 1
Bit_12 2
Bit_11 3
Bit_10 4
Bit_9 5
Bit_8 6
Bit_7 7
Bit_6 8
Bit_5 9
Bit_4 10
AGND20
Bit_3 11
IOUTB 21
Bit_2 12
IOUTA 22
Bit_1 13
COMP2 23
Bit_0 14
AVDD24
SLEEP 15 MODE 25
REFLO16
DGND26
REFIO 17
DVDD27
FS_ADJ 18 28CLK
COMP1 19
U2 AD9764
C51 100nF
C52
100nF
GND
12
D4 POWER R26 10k
GND
C53 10uF
GND Op-amp rails generation
R27 49.9R
R281k1
GND +5V
C48 680pF
GND +3V3
Iref = Uref / Rset = 1.2 V / 1.92 kOhms = 625 uA Ioutfs = 32 * Iref = 20 mA Uoutfs = 20 mA * 50 Ohms = 1 V
SW 1
GND 2
FB 3 4 EN 5 VIN
U11 MIC2288
GND
1 2
D5 STATUS
1 2
D6 CONFIG
R910kR18
10k
+3V3
+3V3
D7 13V TVS
GND
OUT 1 2 IN
C1- 3
GND4
5 C1+
U12 MAX871
GND C54 10uF
+5V
C11 10uF
C55 10uF
GND GND
-5V L7 Ferrite
C56 10uF
GND +3V3
R19 25R
R20 0R
GND
-5V 2 1 3
JP2 OpAmp Vss GND
C57 100nF
GND
DAC_Sleep
DAC_Sleep
+3V3
R21 2k
1
V-2
3+
4- V+5 U5
AD8067 R22
10k +3V3
12
D8 FPGA
R23 120R
GND