Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rigol DG1000Z - Konstrukcija RAF fajla arbirtrane funcije digitalnong signala
#1
Ugrabio sam juce malo vremena da eksperimentisem malo sa svojim prvim generatorom f-ja koji mi je pao saka (DG1022Z) i pokusao da napravim *.RAF fajl koji bi predstavljao arbirtrarnu f-ju digitalnog signala (UART).

Pre nego nastavim, znam da je upotrebna vrednost ovoga mala, mozda i nikakva u praksi, ali cisto za edukativnu svrhu (bar meni) mislim da je koristno.

Dakle, za poruku "HELLO" koju zelim da predstavim arb f-jom prvo sto treba da uradimo je da transformisemo ovo u binarni oblik karakter po karakter.

HELLO = 01001000 01000101 01001100 01001100 01001111

Nakon ovoga, treba da odradimo tzv. little-endian formatiranje, dakle da less significant bit prebacimo na pocetak a most significant prebacimo na kraj, dakle prosto receno da invertujemo bitove u svakom od gornjih byte-ova.

Sto znaci dobijemo ovo:
00010010 10100010 00110010 00110010 11110010

E sad, treba da odradimo UART transformaciju:
- Dodamo start bit
- Nadovezemo gore dobivenim bitovima koji predstavljaju samu poruku (5-9 bita, ali se najcesce koriste 8)
- Opciono dodamo parity bitove (da ne komplikujem nisam ih dodavao u ovom primeru)
- Zavrsimo poruku adekvatnim stop bitom (1 ili 2 stop bita).

Dakle za primer gde imamo 8 bita za poruku, iskljucen parity bit i 2 stop bita onda dobijemo ovo:
00001001011 01010001011 00011001011 00011001011 01111001011

(Opet odvojeno za svako slovo iz grupe "H E L L O")

DG1022Z ima skalu od 0 do 16383 koliko sam video iz dokumentacije za peek to peek vrednosti (20v).

Znaci ako premapiramo sad ovo na napon onda dobijemo ovo:

0 vrednost na skali = -10V
8192 na skali = 0V
16383 = +10V

Za nas UART signal (TTL 5V) znaci mi treba da transformisemo 0 i 1 u njima adekvatne napone, znaci da koristimo 8192 kao binarnu 0 i 12287 kao binarnu 1, i posto treba da koristimo hex vrednosti za *.RAF fajl koji generisemo, to mu dodje dakle 0x2000 i 0x3000.

Znaci nas hex fajl na kraju izgleda ovako:
[Image: d6aa7db85d184d3f978a1c35e2b6297e.png]

20002000200020003000200020003000200030003000 20003000200030002000200020003000200030003000 20002000200030003000200020003000200030003000 20002000200030003000200020003000200030003000 20003000300030003000200020003000200030003000

(...nadam se da ce se videti ok formatiranje, odvojeno zbog preglednosti opet da svaka grupa predstavlja po jedan karakter "H E L L O")

I u teoriji isti princip za RS232 moze da se primeni samo se uzmu adekvatne vrednosti za napon koji zelimo.

E sad, ovako dobijen *.RAF fajl, prebacimo na FAT\FAT32 formatiran USB i mozemo da ucitamo ovu arbirtrarnu f-ju na samom uredjaju.

(...podesimo dodatno V High\Low level na koliko nam treba takodje i sl.)

Nakon sto je zakacen osciloskop i izabran npr. baud od 9600 na generatoru moramo da stavimo frekvenciju od 9600Hz.

E sad, ovaj deo je meni problematican, zbog malog sample rate-a signal koji se dobije nece imati digitalni (square) oblik.

Da bi dobio digitalni oblik, morali bi da gore dobivene 1 i 0 "dupliramo x puta" (koliki bit rate izaberemo) i onda bi dobili adekvatan oblik signala ("kvalitetniji" oblik koji bi osciloskop ili drugi instrument mogao da ocita).

Npr. evo sta se dobija u oba slucaja uporedo:

[Image: 3fe6eb0ef9c946cf89bef88d70f7f3f5.png]

PS, jos uvek sam newbie pa ako sam nesto ispustio ne zamerite Smile

Svaka preporuka dobrodosla Smile
Reply
#2
Da dovrsim samo gore pomenut scenario.

Dakle nakon sto sam povecao bitrate, i dalje sam imao problema pri ocitavanju. Otklonio sam gresku tako sto sam postavio "iddle" signal koji sam setovao na "high", tako da se jasno vidi kad naidje start bit (0). 

Nakon toga i sa povecanim bit rate-om uspeo sam da dobijem zeljeni signal preko ovako generisane arb. f-je.

 


(ovde sam koristio 1 stop bit za razliku od 2 u gornjem primeru ali ista stvar)

Hteo da okacim i *.RAF fajlove ali forum ne daje Smile

Imam pitanje vezano za ove dve zadnje slike. Ovo gde se vidi 9600 000 je setovano kad se ude u edit f-je. A ova druga vrednost stoji kad se izadje u glavni menu. 

Cemu sluzi ovaj drugi sample rate?

I da li je ovaj nacin kako sam resio jasnu identifikaciju start bit-a ok, ili ima neka bolja praksa za to?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)