Rádioamatér neraz potrebuje pri meraní využiť aj generátor rôznych priebehov. (Pekný a silný signál mu síce vie zabezpečiť aj vysielač, ale pre prácu s rádovo desiatkami mV by to bolo nepraktické 🙂 a hlavne nežiadúce…).

Niekedy takéto generátory bývajú súčasťou napr. i osciloskopov. Ich cena však týmto doplnkom výrazne stúpa. Preto mi generátor doteraz chýbal. Naskytla sa mi však príležitosť v podobe zľavového kupónu, ktorý som na pár dní obdržal v známom zásielkovom obchode na ďalekom východe.
Najskôr som zvážil cenovú reláciu, potom postupne prešiel blogy a rozhodol som sa pre model FY3224S z rady FY3200S s max frekvenciou 24MHz. Tento model už dostatočne zlacnel, a i keď sú v ponuke i modely s vyššími max. frekvenciami, objednal som tento.
K tomuto modelu nájdete plno informácií na nasledujúcich odkazoch, preto tu parametre ani nebudem zbytočne opakovane spomínať…
https://github.com/tardate/LittleArduinoProjects/tree/master/Equipment/FY3200S
http://kiedontaa.blogspot.sk/2017/09/feeltech-fy3224s-reverse-engineering.html
Po nútenej zastávke zásielky na colnici som ho doma rozbalil a hneď poriadne vyskúšal. Nesklamal, robí presne to čo má.
No – robil. Už na druhý deň namiesto sínusovky vytváral podľa osciloskopu tvary ako pohoria v Maďarsku – roztiahnuté, s malou amplitúdou…
Ach jaj, predsa je to len Čína. Nezostalo tak nič iné, len ho rozobrať. I tak som sa na to chystal, keďže od výroby má jeden problém, a to úroveň zemného potenciálu. Je to dané spínaným zdrojom, napájacím káblom typu flexo šňúra, bez ochranného vodiča. (všetko je to pekne rozpísané na vyššie uvedených blogoch). Ja som nameral potenciál kostry generátora vyše 85V voči ochrannému kolíku v zásuvke.
Po rozobraní bolo hneď jasné, kde je príčina prečo generátor negeneroval, čo má – po včerajšom „zahriatí“ sa zaktivovali chemické prvky z pozostatkov spájkovania:


Nasledovalo niekoľkonásobné opláchnutie izoporpylom, až kým plošný spoj nezostal čistý.

Hneď popritom som prerobil aj prívod 230V – na klasický kábel aj s ochranným vodičom, ktorý som prepojil so zemou generátora. Po zapojení som však zažil nemilé prekvapenie – potenciál sa nezmenil, stále bol tých 85V. A to som zapojil nepoužitý, zo sáčku vybalený nový kábel od nejakého zariadenia… Po jeho zmeraní som len musel skonštatovať, že bohužiaľ i také, bez zapojeného ochranného vodiča sa dodávajú. Na toto chcem všetkých upozorniť!!! Prekvapenia však pokračovali – ani druhý kábel nefungoval. Pre istotu vôbec. Ten bol zase niekde prerušený… Proste Bad Day.
S tretím káblom to už ale všetko fungovalo, ako má. A tie dva skončili od zlosti rozkúskované na 10cm kúsky.
Keď už bol generátor otvorený, hneď som previedol aj ďalšiu úpravu. Aj keď je FY pripravený na komunikáciu s PC pomocou USB rozhrania (je tam prevodník USB-TTL RS232), chcel som aby ho bolo možné riadiť prostredníctvom sériovej linky priamo v úrovni TTL – napríklad rovno z Arduina. K tomuto stačí prerušiť vodiče z generátora vedúce do prevodníku USB a pripojiť k nim externý konektor so signálmi TX, RX (CEZ ODPORY 330 Ohm – na obrázkoch sú v čiernych bužírkach) a GND.
Popis komunikačného protokolu s generátorom cez RS2323 – umožňuje ho plne ovládať:
FY3200S DDS Protocol EN -DRAFT-



Potom už je možné využívať nezávisle oba kanály (a k tomu ešte TTL výstupy napr. na synchronizáciu):
Okrem nezávislého generovania dvoch signálov umožňuje tento generátor ovládať druhým z nich riadenie triggera, ktorý spúšťa prvý napríklad tak, že ten po spustení vygeneruje 5 – až niekoľko tisíc periód…
Že má aj čítač frekvencie resp. počítadlo impulzov, to je jasné po prečítaní technických špecifikácií…
Ku komplexnému ovládaniu z PC slúži program dodaný priamo v balení:
Niekoľko vlastných priebehov je možné cez PC nahrať do generátora. A tu je jedna z vecí, ktorá mi dovolila nazvať tento článok – 50MHz. Stačí medzi vlastné priebehy zadať sínusovku rovno s dvojnásobnom periódou a výsledok je:

Ono rozumne (t.j. bez nejakej výraznej zmeny amplitúdy) je tento generátor použiteľný do cca 20MHz, pokiaľ je ale treba generovať vyššie frekvencie a len v malom rozsahu, tento nedostatok nie je taký výrazný. Pre toho kto má chuť piplať sa s tým viac, je možnosť vymeniť koncové operačné zosilňovače, upraviť napájanie… Alebo opačne, hneď kúpiť s väčšou max. frekvencoiu 😀
Na záver ešte pridám jednu fintu, pokiaľ by mu nesedela nastavená frekvencia s odmeranou a tak by potreboval skalibrovanie:
1. Turn off the function generator.
2. Press and hold „Parm“ and the left arrow together, then turn on and continue to hold for two seconds.
3. Press the blue knob/button to save
4. Press „Parm“ button
Ako využiť tento generátor?
Napríklad na prvom obrázku je uvedené vf meranie antény pomocou arduina (to riadi nastavenie frekvencie, prípadne i amplitdy signálu, následne na to odmeria výstupy na spätnoväzobnom mostíku pomocou logaritmických detektorov atď…) – o tom niekedy inokedy.
Teraz len ukážka programu v Arduine, ktorý riadi meranie a postupne všetky výsledky pošle do PC na spracovanie:
#include <stdio.h> char cmd[16]; int mag, ph; float magf, phf; float volt; void setup() { Serial.begin(9600); Serial1.begin(9600); analogReference(EXTERNAL); Serial.print("\n"); Serial1.flush(); for (int i = 50; i < 2400; i++) { sprintf(cmd, "bf%0d000000\n", i); Serial1.print(cmd); Serial.println(); Serial.print(i * 10); //pre kontrolu na konzolu Serial.print("\t"); delay(5); for (int j = 1 ; j < 6; j++) { volt = (j * 0.1); Serial1.print("ba"); Serial1.print(volt); Serial1.print("\n"); Serial.print(volt); Serial.print("\t"); delay(20); mag = analogRead(0); ph = analogRead(1); Serial.print(mag); Serial.print("\t"); Serial.print(ph); Serial.print("\t"); magf = mag * 1.800 / 1023; phf = ph * 1.800 / 1023; Serial.print(magf); Serial.print("\t"); Serial.print(phf); Serial.print("\t"); } } Serial1.print("ba0\n"); } void loop() { }
73 Vlado