Obsah:

Generátor funkcí: 12 kroků (s obrázky)
Generátor funkcí: 12 kroků (s obrázky)

Video: Generátor funkcí: 12 kroků (s obrázky)

Video: Generátor funkcí: 12 kroků (s obrázky)
Video: Tahle Nová Funkce mění ÚPLNĚ VŠECHNO! DaVinci Resolve 18.1 | CZ Tutorial 2024, Červenec
Anonim
Generátor funkcí
Generátor funkcí
Generátor funkcí
Generátor funkcí

Tento návod popisuje návrh generátoru funkcí na základě analogového integrovaného obvodu MAX038 Maxims

Generátor funkcí je velmi užitečným nástrojem pro elektroniky. Je potřebný pro ladění rezonančních obvodů, testování audio a video zařízení, navrhování analogových filtrů a pro mnoho dalších různých účelů.

Dnes existují dva hlavní typy generátorů funkcí; digitální, (DSP založené, DDS …), které jsou stále častěji používány a analogové, které byly původem.

Oba typy mají své výhody i nevýhody. Digitální generátory mohou generovat signály s velmi stabilní frekvencí, ale mají problémy s generováním velmi čistých sinusových signálů (což není problém pro analogový). Také generátory převážně rozšířených funkcí založené na přístupu DDS nemají tak velký rozsah generování frekvencí.

Již dlouho jsem chtěl navrhnout užitečný generátor funkcí, který by nějakým způsobem mohl kombinovat některé výhody obou typů (analogových i digitálních) generátorů. Rozhodl jsem se založit design na čipu Maxim MAX038*

* Poznámka - tento čip již Maxim nevyrábí a neprodává. Je to zastaralé. Stále je možné jej najít na eBay, Aliexpress a dalších stránkách pro elektronické součástky.

Existují také další čipy generátoru analogových funkcí (XR2206 od Exar, icl8038 od Intersil), ale měl jsem

jeden MAX038 k dispozici, a já jsem ho použil. Digitální funkce generátoru funkcí byly prováděny jedním čipem Atmega328. Jeho funkce jsou následující:

  • ovládá výběr frekvenčního rozsahu
  • ovládá typ signálu (sinusový, obdélníkový, trojúhelníkový, pilový)
  • měří amplitudu signálu
  • měří DC offset
  • měří frekvenci signálu
  • měří THD sinusového signálu ve zvukovém rozsahu (to ještě musí být implementováno)
  • zobrazuje všechny tyto informace na LCD displeji o velikosti 16x2.

Krok 1: Popis MAX038

Popis MAX038
Popis MAX038

Připojil jsem datový list MAX038. Zde jsou vidět nejdůležitější parametry čipu:

♦ Rozsah provozních frekvencí 0,1 Hz až 20 MHz

♦ Trojúhelníkové, pilovité, sinusové, čtvercové a pulzní průběhy

♦ Nezávislé úpravy frekvence a pracovního cyklu

♦ Rozsah kmitočtu 350 až 1

♦ 15% až 85% variabilní pracovní cyklus

♦ Výstupní vyrovnávací paměť s nízkou impedancí: 0,1Ω

♦ Drift teploty 200 ppm/° C

Dalším důležitým požadavkem je potřeba duálního napájení (± 5V). Výstupní amplituda je pevná (~ 2 VP-P s 0 V DC offsetem).

Na straně 8 datového listu je vidět blokové schéma čipu. Na straně 11 je vidět nejjednodušší obvod, který lze použít pro generování signálu sinusové vlny. Tento obvod byl vzat jako základ pro návrh generátoru funkcí.

Krok 2: Okruh…

Okruh…
Okruh…

Na obrázku je uveden obvod generátoru funkcí, který jsem vytvořil s nejvyšším možným rozlišením, aby bylo zaručeno, že každou hodnotu.device lze správně přečíst. Schémata vypadají docela složitě a abych lépe porozuměl, vysvětlím její hlavní části samostatně. Mnoho čtenářů mi mohlo vyčítat, že obvod je příliš nadbytečný. To je pravda. Nejprve můžete vidět, že obsahuje dva čipy MAX038. Důvodem je, že PCB podporuje oba typy balíků SO a DIP. Redundanci lze vidět také u některých funkcí -

1) LED diody ukazují aktuální aktivní frekvenční rozsah, ale také se zobrazují na LCD;

2) LED diody se používají také k označení typu signálu, ale také LCD zobrazuje tyto informace

Konstrukce je provedena tímto způsobem, aby uživateli poskytla větší flexibilitu - v případě přání nemohl používat LCD nebo jednoduše může vynechat pájení LED. Pájel jsem je, abych mohl ladit funkčnost během fází návrhu.

Lze si také všimnout, že používám hodně opampů. Některé z nich lze bez problémů vynechat - zejména vyrovnávací paměti. V současné době nabízejí operační zesilovače samy o sobě velkou redundanci - v jednom balení najdete 2, 4 i 8 samostatných zesilovačů, a to za relativně nízkou cenu. Proč je nevyužít?

Nadbytečné jsou také filtrační kondenzátory - každý použitý analogový čip má vlastní kondenzátorovou banku (tantalové + keramické kondenzátory pro oba zdroje). Některé z nich lze také vynechat.

Krok 3: Vysvětlení obvodu - napájecí zdroj (1)

Vysvětlení obvodu - napájecí zdroj (1)
Vysvětlení obvodu - napájecí zdroj (1)

Jak jsem řekl, tento generátor vyžaduje duální napájení. Kladné napětí je vytvořeno použitím lineárního regulátoru napětí 7805. Záporná nabídka je generována čipem 7905. Střední bod odbočení transformátoru 2x6V je připojen ke společné zemi desky. Vygenerované napájecí zdroje - kladné i záporné jsou odděleny analogovým a digitálním zaklíněním. Dvě LED diody indikují přítomnost každého napájení.

Krok 4: Vysvětlení obvodu - řízení frekvenčního rozsahu (2)

Vysvětlení obvodu - řízení frekvenčního rozsahu (2)
Vysvětlení obvodu - řízení frekvenčního rozsahu (2)

K pokrytí velkého frekvenčního rozsahu je použita řada kondenzátorů s více kondenzátory. Kondenzátory mají různé hodnoty a definují různé frekvenční dílčí rozsahy. Při práci se používá pouze jeden z těchto kondenzátorů - jeho spodní deska je uzemněna tranzistorovým spínačem MOS. Kterou spodní desku kondenzátorů je třeba uzemnit, řídí Atmega328 pomocí demultiplexního čipu 74HC238. Jako přepínače MOS jsem použil tranzistory BSS123. Hlavním požadavkem tohoto přepínače je mít nízký Ron a co nejnižší odtokovou kapacitu. Digitální ovládání banky kondenzátorů lze vynechat - DPS obsahuje otvory pro pájení vodičů pro mechanický otočný spínač.

Krok 5: Vysvětlení obvodu - úprava frekvence (3)

Vysvětlení obvodu - úprava frekvence (3)
Vysvětlení obvodu - úprava frekvence (3)

Na obrázku jsou znázorněny obvody řízení frekvence a pracovního cyklu. Tam jsem použil standardní operační zesilovač LM358 (duální zesilovač v jednom balení). Použil jsem také duální 10K potenciometry.

Čip MAX038 generuje vnitřní referenční napětí 2,5 V, která se normálně používá jako reference pro všechna nastavení.

Toto napětí je aplikováno na invertující vstup IC8a a generuje zápornou referenční hodnotu napětí použitou pro DADJ (úprava pracovního cyklu). Obě napětí jsou aplikována na potenciometru pro DADJ, jehož střední odbočka je uložena do vyrovnávací paměti a aplikována na pin DADJ čipu MAX038. Propojku JP5 lze použít k deaktivaci funkce DADJ při připojení k zemi. Řízení frekvence "Course" se provádí změnou aktuálního zapuštěného / získaného v pinu MAX038 "IIN". Tento proud je definován odporem R41 a výstupním napětím operačního zesilovače, který ukládá střední odbočku potenciometru řízení frekvence kurzu. To vše lze nahradit jediným potenciometrem (v zapojení reostatu) mezi piny REF a IIN MAX038.

Krok 6: Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC … (4)

Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)
Vysvětlení obvodu - řízení amplitudy, generování signálu SYNC… (4)

Jak je uvedeno v datovém listu, výstupní signál pf MAX038 má amplitudu ~ 1 V se stejnosměrným napětím rovným zemnímu potenciálu.

Chtěl jsem mít možnost ovládat amplitudu signálu a být schopen definovat DC offset sám. Jako další funkci jsem chtěl mít signál SYNC s úrovněmi CMOS paralelně s výstupním signálem. Standardně čip MAX038 generuje takový signál, ale v datovém listu jsem četl, že pokud je tato funkce povolena (co znamená - DV+ pin připojen k 5V), lze na výstupním analogovém signálu pozorovat některé špičky (šum). je to tak čisté, jak je to možné, a z tohoto důvodu jsem generoval signál SYNC externě. Deska plošných spojů je vyrobena tak, že pin DV+ lze snadno přemostit k hlavnímu napájení. Pin SYNC je veden do konektoru BNC - musí být připájen pouze odpor 50 Ohmů. V tomto případě lze obvody generování signálu SYNC vynechat. Zde, jak vidíte, používám také duální potenciometry, ale nejsou zapojeny paralelně. Důvodem je to, že amplitudu měřím relativně. Atmega328 ADC snímá napětí ve středním bodě jednoho potenciometru a na základě této hodnoty se vypočítá amplituda signálu. Tato metoda samozřejmě není příliš přesná (spoléhá na shodu obou sekcí potenciometru, což se ne vždy vyskytuje), ale pro mé aplikace je dostatečně přesná. V tomto obvodu pracuje IC2A jako vyrovnávací paměť napětí. IC4A také. Operátor IC2B funguje jako součtový zesilovač - vytváří výstupní signál funkčního generátoru jako součet ofsetového napětí a hlavního signálu s upravenou amplitudou. Dělič napětí R15. R17 generuje vhodný napěťový signál pro měření offsetu hlavního signálu DC. Je snímán Atmega328 ADC. Operátor IC4B funguje jako komparátor - řídí invertor generace SYNC realizovaný dvěma tranzistory MOS (BSS123 a BSS84). U6 (THS4281 - Texas Instruments) posouvá výstupní signál generovaný MAX038 DC o 2,5 V a 1,5krát jej zesiluje. Takto generovaný signál je snímán AVR ADC a dále zpracován algoritmem FFT. V této části jsem použil vysoce kvalitní železniční a železniční zesilovače s šířkou pásma 130 MHz (TI - LMH6619).

Aby bylo snadné pochopit, jak přesně generování signálu SYNC funguje, přidávám několik obrázků simulací obvodu LTSpice. Na třetím obrázku: modrý signál je ofsetové napětí (vstup IC2B). Zelený je výstupní signál s upravenou amplitudou. Červený je výstupní signál funkčního generátoru, azurová křivka je signál SYNC.

Krok 7: Návrh DPS

Design DPS
Design DPS

K návrhu DPS jsem použil „Eagle“. PCB jsem objednal na "PCBway". Výroba desek jim zabrala pouhé čtyři dny a jejich dodání týden. Jejich kvalita je vysoká a cena je extrémně nízká. Zaplatil jsem pouze 13 USD za 10 PCB!

Kromě toho jsem mohl objednat různě barevné PCB bez zvýšení ceny. Vybral jsem žluté:-).

Připojuji gerber soubory podle návrhových pravidel „PCBway“.

Krok 8: Pájení

Image
Image
Pájení
Pájení
Pájení
Pájení

Nejprve jsem připájel zařízení obvodů napájecího zdroje..

Po testování napájecího bloku jsem připájel čip Atmega328 s jeho podpůrnými zařízeními: křemenným krystalem, kondenzátory, filtračními čepičkami a konektorem ISP. Jak vidíte, mám propojku v napájecím vedení čipu AVR. Když programuji čip přes ISP, odpojím ho. K tomu používám programátor USBtiny.

Jako další krok jsem připájel de-mux čip 74HC238, LED indikující frekvenční rozsah. Do čipu Atmega jsem nahrál malý program Arduino, který testoval multiplexování. (viz video pod odkazem výše)

Krok 9: Pájení…

Pájení…
Pájení…
Pájení…
Pájení…
Pájení…
Pájení…

Jako další krok jsem připájel operační zesilovače pracující v režimu DC (LM358) a potenciometry pro nastavení frekvence a DADJ a zkontroloval všechny jejich funkce.

Dále jsem připájel přepínače BSS123, kondenzátory určující frekvenci a čip MAX039. Testoval jsem funkční generátor snímající signál na výstupu nativního čipového signálu. (Můžete vidět můj starý sovětský, vyrobený v roce 1986, stále pracující osciloskop v akci:-))

Krok 10: Více pájení…

Více pájení…
Více pájení…
Více pájení…
Více pájení…
Více pájení…
Více pájení…

Poté jsem připájel zásuvku pro LCD displej a otestoval ji pomocí náčrtu „Hello world“.

Pájel jsem ostatní zbývající operační zesilovače, kondenzátory, potenciometry a konektory BNC.

Krok 11: Software

Image
Image
Software
Software

Pro vytvoření firmwaru Atmega328 jsem použil Arduino IDE.

Pro měření frekvence jsem použil knihovnu „FreqCounter“. Soubor skici a použitá knihovna jsou k dispozici ke stažení. Vytvořil jsem speciální symboly, které představují aktuálně používaný režim (sinusový, obdélníkový, trojúhelníkový).

Na výše uvedeném obrázku jsou vidět informace zobrazené na LCD:

  • Frekvence F = xxxxxxxx v Hz
  • Frekvenční rozsah Rx
  • Amplituda v mV A = xxxx
  • Ofset v mV 0 = xxxx
  • typ signálu x

Generátor funkcí má vpředu na levé straně dvě tlačítka - slouží ke změně frekvenčního rozsahu (krok nahoru - krok dolů). Vpravo od nich je posuvný přepínač pro ovládání režimu, poté zleva doprava sledujte potenciometr pro ovládání frekvence (kurz, jemný, DADJ), amplitudy a offsetu. V blízkosti potenciometru pro nastavení offsetu je umístěn přepínač sloužící k komutaci mezi pevným offsetem 2,5 V DC a laděným.

V kódu ZIP v souboru „Generator.ino“jsem našel malou chybu - symboly pro tvary sinusových a trojúhelníkových vln byly prohozeny. V jediném připojeném souboru „Generator.ino“je chyba opravena.

Krok 12: Hotovo…

Image
Image

Jako poslední krok mám v úmyslu implementovat další funkci - měření THD zvukového frekvenčního sinusového signálu v reálném čase pomocí FFT. To je nutné, protože pracovní cyklus sinusového signálu se může lišit od 50%, což může být způsobeno nesouladem vnitřních čipů a jinými důvody a mohlo by dojít k harmonickému zkreslení. Pracovní cyklus lze upravit potenciometrem, ale bez pozorování signálu na osciloskopu nebo spektrálním analyzátoru není možné jemně oříznout jeho tvar. Problém by mohl vyřešit výpočet THD na základě algoritmu FFT. Výsledek výpočtů THD se zobrazí na LCD v pravém horním prázdném prostoru.

Na videu je vidět spektrum generovaného sinusovým signálem MAX038. Spektrální analyzátor je založen na desce Arduino UNO + 2,4 TFT štít. Spektrální analyzátor využívá knihovnu SpltRadex Arduino vyvinutou Anatolym Kuzmenkem k provádění FFT v reálném čase.

Stále jsem se nerozhodl - použít tuto knihovnu nebo použít knihovnu FHT vytvořenou Musiclabs.

Mám v úmyslu použít informace převzaté z měření kmitočtu k výpočtu správného vzorkovacího okna a pozastavit používání dalších oken během výpočtů FFT. Potřebuji jen najít nějaký volný čas, aby se to stalo. Doufám, že brzy budu mít nějaké výsledky …

Doporučuje: