Vítejte v holubníku

Stránky celkem spokojeného důchodce

Všechny články

Prohlížení po kategoriích, viz menu...

Generátor DDS řízený Arduinem

Na toto téma je na netu obrovské množství článků. Pro mne to znamenalo (a ještě pořád znamená), že se seznámím s těmito oblastmi:

  • seznámím se s přímou digitální syntézou (DDS)
  • seznámím se s programováním mikrokontrolérů prakticky
  • zdokonalím se v programováním v jazyce C++
  • vznikne užitečný výrobek :-)

Nejsem profesionální programátor. Kód jsem psal, to ano, dokonce i velmi intenzivně, ale jen ze záliby, nebo v zaměstnání "na vedlejší úvazek". Ve Visual Basic scriptu, v souvislosti s nástupem internetu a přístupu do databází přes webovské rozhraní. Céčku a jemu podobným jazykům jsem se zatím vyhýbal, ani nevím proč. Přišel čas to změnit...

Arduino

Při vyslovení tohoto slova mohu slyšet rozličné názory. Od zatracení po nadšení, tak ho lze charakterizovat.Pro mne možnost, jak si to všechno vyzkoušet. Omezení, dané vlastnostmi, mi nevadí, o to více se mohu věnovat psaní kódu.

Není to má první zkušenost s mikrokontroléry, již jsem zprovoznil radiopřijímač na bázi  modulu RDA5807M. Hrálo to exelentně, jen jsem nebyl schopen vyřešit jakési obezličky v kódu příslušného mikrokotroléru. Záležitost jsem tedy odložil a nyní je vhodná příležitost se k programování vrátit.

Prvotní úvahy

Probíral jsem se netem a narazil na tento projekt [1], který se mi zalíbil hlavně tím, že kód byl takový hodně jednoduchý a pro mne tudíž přehledný :-). 

Co mne chvilku mátlo, byl fakt, že v článku se zaměňují čipy AD9851 vs AD9850, protože každý má trochu jiné řízení a jiný frekvenční rozsah. Totální chaos pak nastane při objednávání. Je to tím, že se samozřejmě vyrábí kompletní modul, včetně krystalu a příslušného výstupního filtru pod jménem hc-sr08. Ten může být osazen oběma typy IC, tedy při objednání je třeba být opatrný.

Celková koncepce a zapojení

Je víceméně klasické. [TO-DO SCHEMA] Arduino nano, modul hc-sr08, dvouřádkový displej, rotační enkodér, 4 tlačítka, jsou v různých barvách. Dalším dílčím problémem je výstupní filtr, hezky se o tom píše například v [2] a [3], včetně vysvětlení, proč amplituda k vyšším kmitočtům klesá. Moc hezky je ovládání vyřešeno v [4], ale hrabat se v assembleru na to fakt nemám, ale jako inspirace moc pěkné.

Vyšel jsem tedy z [1], a sketch velmi silně modifikoval:

  • infotexty pro displej převedl do polí a pomocí PROGMEM zmenšil obsazení dynamické paměti
  • při proladění je možné kromě konstantního kroku mezi sousedními kmitočty použít krok relativní (v procentech), nebo vybírat z předem definovaných kmitočtů - např. třetinooktávové kmitočty pro akustická měření apod.
  • poslední nastavení (rozsah a použitá frekvence) se ukládá do paměti (interval řádově minuty, lze změnit), po zapnutí se přednastaví tato hodnota
  • je možné předdefinovat, který krok a jaká velikost se použije pro dané kmitočtové pásmo - např. pro střední vlny krok 9kHz (platí pro Evropu, v USA krok 10kHz)

Zde je na místě říci, že nejsem radioamatér, nicméně rád poslouchám jak na pásmech komerčních, tak radioamatérských a tento přístroj chci použít pro experimenty s přijímači, kdy je zdroj přesného stabilního kmitočtu s výhodou.

Poznatky ze stavby

Na tomto místě se sluší podotknout, že jsem netušil, jaký běh na dlouhou trať to bude! Jistě, nevěnuji tomu všechen svůj volný čas, ale stejně...

 

 

 

 

[1] - Arduino Uno controlled AD9851 DDS VFO HF signal generator for VLF 136KHz to 4m band. By Alastair GW0AJU

[2] - Optimizing Arduino and the AD9851 DDS signal generator

[3] - New filter (50 ohms) on AD985x module to normalize output over the whole frequency range

[4] - PIC Controller Interface for an AD9850/AD9851 DDS Synthesizer

Komentáře
Grafický výstup Zvukový výstup
Vložte antiSPAMový kód VELKÝMI PÍSMENY!
nach oben