Siglent etusivulle linkki     SDG1000X sekalaisia ohjeita.

Siglent tuotevalikoimassa SDG1032X sekä SDG1062X Funktio/ARB signaaligeneraattorit edustavat suorituskyvyltään erinomaista perustasoa. Mallit ovat 2 kanavaisia, taajuusalueet 30MHz ja 60MHz. 150MSa/s ja 14 bit.


SDG1000X sarjan vapaiden aaltomuotojen (Arb, Arbitrary waveforms) muodostamisen ohjeita.

Luonnollisestikin käyttöohjeissa on ohjeita ja samoin EasyWave ohjelman osalta on valmistajan ohjeita enkä varsinaisesti puutu niihin. Joskus kuitenkin saattaa olla tarvetta editoida aaltomuotoja tai tehdä jotain muulla tavalla kuin esimerkiksi EasyWave ohjelmaa apuna käyttäen tai sen rinnalla.

Tässä mallissa Arb muistin pituus on kiinteä, aina.  Sen pituus on 16384  Muuttunut FW versiosta x.x.x.33R1 alkaen.

Nyt SDG1000X sarjassa on myös ns "TrueArb" tekniikka joka aiemmin oli SDG2000X mallissa ensimmäisen kerran Siglent laitteissa.

Käytettävissä on nyt kaksi toimintatapaa: DDS tai TrueArb.

TrueArb moodissa Arb muistin pituus voi olla vapaasti 2 - 16384 muistipaikkaa (1 muistipaikka sisältää yhden jännitearvon). Lisäksi tässä toimintamoodissa muistin samplenopeus on käyttäjän aseteltavissa, max 30Msample/s (eli muistipaikkojen askellusnopeus)
(tässä moodissa ei koskaan hypitä muistipaikkojen yli vaan jokainen viedään DA muuntimelle ja ulostuloon)
Mikäli laitteessi ei vielä ole TrueArb toimintamoodia päivitä uusimpaan FW versioon eli tämä ominaisuus tulee myös jo aiemmin hankittuihin laitteisiin koska kaikissa on siihen valmius. .

DDS moodissa laite toimii kuten ennenkin. Kiinteä 16384  muistipaikkaa ja kiinteä askellusnopeus 150Msa/s (150 miljoonaa askelta sekunnissa)
(tässä moodissa tarpeen mukaan hypitään  muistipaikkojen yli ja jotkin yksityiskohdat voidaan näin ohittaa sekä lisäksi joudutaan taajuuden säilyttämiseksi tekemään yhden askelluksen (kellojakson) mittaisia eteen taa hyppyjä josta seuraa kellojakson mittaista aikajitteriä (6,67ns)
Tämä on normaalia (ja välttämätöntä) siis aina perinteisllä DDS generaattoreilla joissa kiinteä muistin pituus ja askellustaajuus.

 

Seuraava teksti on kirjoitettu aikana jolloin oli van DDS moodi käytettävissä ja se sopii siihen edelleenkin.
(Lisään/täydennän/muokkaan  myöhemmin tekstiä TrueArb osalta)

DDS toimintamuoto joka on edelleen ennallaan ja oli ennen FW versio 33R1 ainoa toimintatapa.

Kussakin muistipaikassa on yksi jännitearvo.
Muistia askelletaan muistipaikka kerrallaan ja kulloisenkin muistipaikan arvo ohjataan DA muuntimelle ja ulos (tietenkin sitten skaalattuna arvoon jonka käyttäjä on asettanut lähtötasoksi kussakin käyttötilanteessa)

Olet myös huomannut että laitteen yksi mainittu ominaisuus on: 150MSa/s.
Se on myös nopeus jota Arb muistin askelluksessa ei voida ylittää. Se on laitteen rakennetta.
Sen sijaan hitaammin toki voidaan Arb muistia askeltaa.

Nyt sitten on erittäin tärkeää ymmärtää mitä tarkoittaa kun asetamme Arb taajuudeksi esimerkiksi 1kHz (1000Hz).
Se tarkoittaa sitä että yksi Arb jakso (se yksi 16384kpl muistipaikkoja) "pyyhkäistään" eli askelletaan 1000 kertaa sekunnissa.
Jos siellä Arb muistissa olisi esimerkiksi kaksi jaksoa siniaaltoa saisimme ulos 2kHz siniaaltoa.

Arb muistia on mahdollista askeltaa maksimissaan 150MSa/s. 1 Sa (sample, näyte) on siis yksi muistipaikka.
150MSa/s nopeudella yksi askel on 6 2/3 ns. (6,666... ns). Tällä nopeudella ehditään jokainen muistipaikka käydä läpi ja ajaa se DA muuntimelle. Kun muistipaikkoja on 16384 kuluu siihen aikaa 109226,66... ns. Tosin sanottuna Arb taajuus 9155,2734375 kHz on masimi Arb taajuus jolla jokainen muistipaikka ehditään käymään läpi. Tuota suuremmilla taajuuksilla on alettava hyppiä yli. Alemmilla taajuuksilla taas on alettava lisätä kellojaksoja "sinne tänne" askelluksessa jotta säilytetään taajuus. Perehtymättä tarkemmin tuohon säätelyyn voi vaan todeta että muutamaa taajuutta lukuunottamatta syntyy Arb jakson sisään eri paikkoihin 6,66ns hyppyjä ja siksi datalehdelläkin sanotaan että jitteri on 6,66ns.  Tämä on normaalia kaikissa kiinteän muistipituuden ja kiinteän kellotaajuuden DDS Arb generaattoreissa. Tämä on hyvä tiedostaa ja ottaa huomioon kun muodostaa Arb aaltomuotoja.
Jos teet esimerkiksi aaltomuodon jossa olisi yksi yhden askelen mittainen impulssi ja jos haluat että se impulssi myös näkyy joka arb jaksolla et voi ylittää tuota noin kHz Arb taajuutta. Itseasiassa sekin on liian lyhyt koska 6,66ns mittainen pulssi ei ehdi nousta ja laskea tuossa ajassa täyteen arvoonsa koska laitteen Arb aaltomuodon nousu ja laskuaika rajoittaa sitä. Jos asettaisit Arb taajuudeksi 6MHz niin 150/6=25 eli koko Arb muisti on loikittava 25 hypyllä vaikka siellä onkin 16384 askelta. Toisaalta jos Arb muistissa olisi nyt 1 jakso siniaaltoa saisimme ulos ihan normaalia 6MHz siniaaltoa vaikka osa paikoista onkin hypitty yli. Sen mahdollistavat suodattimet joilla aikaansaadaan hiukan samaa kuin oskilloskoopilla kun muutamasta näytteestä muodostetaan Sin(x)/x interpoloinnilla siniaaltoa.

Perehtymättä tarkoin yksityiskohtiin on hyvä ymmärtää että rajoituksia siis on jolloin ei tarvi ihmetelllä missä on vika jos ulos ei aina tulekaan sitä millaista aaltomuotoa on joko piirtänyt EasyWave ohjelmalla tai tuottanut muilla tavoin. EasyWave ohjelmassa voi vapaasti piirtää halutun aaltomuodon mutta sen voi myös muodostaa matemaattisella tavalla. Esim kirjoittamalla sinne 10*Sin(2*x) saa aaltomuodon jossa on kaksi sinijaksoa ja huipusta huippuun 10. (tuo huipusta huippuun arvo on sitten todellisuudessa se mitä asetat SDG lähtötasoksi, jos asetat 1Vpp niin se on -0.5V - 0.5V mikäli offset oli 0.)

Onko muita tapoja kuin tuottaa aaltomuoto EasyWave ohjelmalla ja mikä on tiedostomuoto?
Kyllä on. Tiedostomuoto on .CSV
EasyWave ohjelma tuottaa .CSV tiedoston (esim wave1.csv) jonka voi siirtää suoraan generaattoriin tai tallentaa USB tikulle ja ladata USB tikulta generaattoriin.

SDG1000X lukee sen tekstimuotoisen .csv tiedoston ja konvertoi sen muistiinsa aaltomuoto dataksi.

Mikäli haluaa itse tuottaa/editoida tuollaisen aaltomuoto tekstitiedoston sen käy helposti jopa vaikka tavallisella windosin nopepad ohjelmalla. Kunhan muistat että tiedostopäätteeksi asetat .csv etkä .txt.
Toki tuollaisella tiedostolla on oltava tietty muoto. Tiedossani on että on ainakin kaksi muotoa jonka SDG1000X ymmärtää.
Muoto jossa jokainen aaltomuodon askel on datapari jossa on  aika,jännite  ja toinen jossa on pelkkä jännite
Näitä rivejä tulee olla tasan 16384. Molemmissa vaihtoehdoissa tiedoston alkuosa (headeri) on erilainen ja headerin on oltava allaolevan muotoinen. amp, offset, frequency ja phase sen mukaan kuin on asetettu EasyWave käytettäessä..

aika,jännite datapareilla ja oletusrvoina myös taajuus ja muut seikat, jotka kuitenkin joka tapauksessa asetetaan kaikki sitten käyttöön sopiviksi tarvittaessa laitteen etupaneelista kyseista Arb käytettäessä.
Seuraavissa esimerkeissä [CR][LF] ovat kontrollimerkkejä joita esim notepad ei näytä mutta esim notepad++ näyttää. Ne ovat CR sekä LF jotka syntyvät rivin loppuun kun esim nopepadissa painaa normaalia enteriä (kursori palaa alkuun (CR) ja rivi vaihtuu (LF)). Hexana siellä tiedostossa siis on noiden kohdalla CR =0D ja LF=0A )

Tapa 1.

data length,16384[CR][LF]
frequency,1000.000000000[CR][LF]
amp,20.000000000[CR][LF]
offset,0.000000000[CR][LF]
phase,0.000000000[CR][LF]
[CR][LF]
[CR][LF]
[CR][LF]
[CR][LF]
[CR][LF]
[CR][LF]
[CR][LF]
xpos,value[CR][LF]
0.000000e+000,0.00000[CR][LF]
6.103516e-008,0.03835[CR][LF]
1.220703e-007,0.07670[CR][LF]

Ylläoleva  jatkuisi siten että xpos,value rivin jälkeen noita datapari rivejä olisi yhteensä 16384 täsmälleen. Jokainen rivi on yksi muistipaikka joka siis sisältää jännitearvon. (käsittääkseni tuosta xpos arvosta SDG1000X ei välitä mutta pilkkua ennen pitää olla arvo ja pilkun jälkeen sen rivin jännitearvo.)
"phase" rivin jälkeen on 7kpl enter painalluksia. Hexana siellä tiedostossa siis on noiden kohdalla CR =0D ja LF=0A )

Kirjoittamista voi helpottaa (jos siis on tekemässä aaltomuotoja käisin tai jollaoin softanpätkällä.
xpos arvona voi käyttää vaikka juopksevaa paljasta kokonaislukua (ei se siitä oikeasti välitä) mutta aina xpos ja value välissä erottimena tulee olla pilkku eikä mikään muu.

(Huomautus, esimerkki siis on normaali kiintemittainen DDS moodiin sopiva. TrueArb moodissa on tilanne toinen.
Jos haluat että askelia on 5 kirjoitat data length, 16384 sijaan 5 ja sitten niitä datarivejä pitää olla myös tasan 5.
Huomaa että TrueArb moodissa askelten välisiä muutoksia ei interpoloida vaan ne toteutetaan sellasenaan eli "True")

Luonnollisesti kun laite sitten askeltaa sitä aaltomuotoa se alkaa ensimmäisestä askeleesta ja päättyy viimeiseen. No nyt sanot että siinähän vain 16383 aikaväliä. Niin onkin. Mutta kun se hyppää sieltä viimeiseltä askelelta ensimmäiselle on se yksi samanlainen aske kuin kaikki muutkin. Huomioi siis aaltomuotoa tehdessä että ensimmäinen ja viimeinen myös sopivat yhteen sen mukaan millaista aaltomuotoa teet.

Mieti siis jatkuvaa aaltomuotoaajateltaessa ikään kuin saumattomasti olisi peräkkäin noita 16834 askeleen pötköjä niin että viimeisen ja seuraavan ensimmäisen väli on täsmälleen sama kuin kaikki muutkin askelet. 50% kanttiaallon voi tehdä niin että aloitetaan +1 ja puoleen väliin saakka se, sitten puolivälissä arvoksi vaihtuu -1 ja on sitä loppuun saakka. Nyt jos asettaisimme Arb taajuudeksi esim 5MHz saisimme ulos 5MHz kanttia. Aaltomuodon siis ei ole pakko tietenkään alkaa nollasta.


Tässä on pari esimerkkiä ja niitä vastaavat tiedostot voit ladata ja siirtää sellaisenaan USB tikulle ja siirtää halutessasi generaattorille. (tai muokata niitä)

Ajan saatossa tätä on tarkoitus täydentää resurssien salliessa.


 

 



 

    --»  Ylös -- Up

   --» Arb / Funktiogeneraattorit

   --» Etusivulle - Home