Opet moram da se pohvalim :) Iako sam imao sa ZMSDR jako dobre rezultate, videliste / citali, zamisliste da sam sad sa istim HW dobio jos bolje :)
Posto radim paralelno na razvoju sa novim kontrolerom PIC16F1455 umesto dosadasnjeg PIC18F13K50 (i PIC18F14K50), morao sam da se debelo udubim u upravljanje Si5351 oscilaora, nahvatao sam par tolko sitnih bagova da je to bruka.
Pazte, JEDAN JEDINI BIT u nekim tamo registrima za ovaj Si5351 mi je pravio clock-jitter koji ja nisam primetio sve do sad (mislio sam da je do osciloskopa prilikom merenja) i kada sam to popravio dobio sam daleko "cistiji" prijem, bez flekica i linica (to je u nekim uzasno niskim nivoima inace bilo, uglavnom ispod shuma etra) i sad na bilo kom bandu gde mi prijemna antena nije bas toliko dobra pa imam slabije ulazne signale, to je sve sad nestalo i odmah se odrazilo na ukupni kvalitet prijema.
Jos jedan bug koji sam nahvatao je bio vise iritirajuci nego sto je uticao na prijem, radio se o pojavi da sam imao nekakv "krc-puc" kada se menja frekvencija glavnog oscilatora. Tacnije, greskom sam setovao tamo neki registar za resetvoanje internog PLL-a kod menjanja frekvencije sto je pravilo kratak prekid u radu oscilatora. Ovo inace ne mogu da nahvatam osciloskopom, skoro nemoguce za trigerovanje osciloskopa ali sam ga cuo u prakticnom radu. Detaljnom analizom dokumentacije za Si5351 sa shvatio da to u odredjenim uslovima ne mora da se radi i da postoji tkz "glitch free frequency change". Dakle sad sam dobio tako fino menjanje frekvencije u ogromnom opsegu kao da se radi o analognom VFO ili nekim VFO iz "pravih" stanica, nema nikakvih nezeljenih pojava. Ovde je Si5351 debelo "ushio" Si570 koji ne moze u tako shirokom opsegu da menja frekvenciju bez reseta internog PLL-a (pa se isto dobiju prekidi i "krc-puc") ;)
A inace prelazim na nov kontroler PIC16F1455 (jedan od najnovih iz njihove serije) koji za razlisku od svih ostalih serija NE ZAHTEVA poseban kristalni oscilator za svoj rad kada je USB u pitanju i kontrolom USB komunikacije na internom HW nivou, dakle nije "prostacka" fora koju ste mozda negde vidjali sa tkz "bit-bang" pristupom, pravi HW protokol je u pitanju, evo cela tema
ovde. Pitate se kakve to veze ima, pa ima dosta veze, taj njegov oscilator koliko god se ja trudio da se izolujem od njega, njegove osilacije i harmonici mi ulecu u prijemnik i opet mi prave neke linice i flekice u prijemu. Ovaj problem se javlja kada se radi sa malim plocicama (PCB) gde je sve to nagurano jedno uz drugo i na to sve sa jednoslojnom stampom i prakticno nemam gde niti kako da pobegnem (da se fizicki udaljim i izolujem) od njega. Dakle nema tog kristala/oscilaora, nema smetnji, a i jedan kristal manje u celoj konstrukciji :)
Vidite da je ovde najveca "frka" sa upravljackim procesorom i PLL-om, skoro da nema veze vise sa analogijom (to je sve vec manje-vise poznato i razradjeno) i zato to mozda predstavlja malo problem ljudima iz RF sveta koji bi hteli da tako nesto prave (cuh bas nesto na 3.725MHz da bi hteli da prave SDR al ne mogu da se izbore za digitalojom). Znaci muka bas, da ne pricam da sam morao nov Microchip PK3 programator da nabavim zbog ovog novog PIC-a, pa problem sa kompajlerima, razvojnim alatima, nedostatak osnovnih biblioteka poput I2C za ovaj nov PIC pa sam i to morao da pisem i na to sve jos driver za PC kao prica za sebe. Pazte dokle je to islo, jedini trenutno neki "koristan" Open Source C/C++ code za ovaj Si5351 je od nekakvih
kernel drajvera za linux pa sam i to morao da skontam kako bih pohvatao samo principe kako se to sve radi :)
Bas oko ovog drajvera za PC sam isto napravio jedan ogroman napredak tako sto sam ga prakticno skroz preskocio :) Ceo taj upravljacki sklop (USB<>PIC<>PLL) mi sad radi bez drajvera za sistem jer sam presao u tkz USB CDC mode, tj standardni mod kao za USB tastature ili miseve gde nije neophodan drajver za OS i sa tim sklopom "pricam" kao da je recimo nekakav modem u pitanju, npr iz komandne linije (linux, win) mogu da mu se salju upravljacki podaci ili preko modemskih aplikacija poput HyperTerminal, predivno ;)
U sustini nisam morao to sve da radim, ali sam "obecao" da ce sav izvorni code, ukljucujuci i za PIC, biti u nekom trenutku dostupan (za razliku od mnogih koji to ne odkrivaju ni pod razno!) posto sam sad napokon presao na kompletnu Open Source postavku sa besplatnim Microchip XC8 PIC kompajlerima umesto dosadanjeg MicroE C kompajlera koji kosta podosta, bilo bi glupo forsirati nekog iako ima source code da MORA da koristi te placene kompajlere. Ovo dodatno otvara mogucnost da se i jos neki developeri ukljuce u razvoj firmware-a za ovaj PIC/PLL pa i sam SDR uredjaj.
Trenutno se vrtim oko nekih matematickih "racionalnih aproksimacija" kod deljenja koju su neophodne za racun frekvencije ovih PLL-ova a to sve za postizanje jos boljih perfomansi (jos manji clock-jitter)!!!. Eh dokle je to otislo a krenuo sam sa antenama i transformatorcicima :)
Dakle uvek moze bolje, samo treba da se bas dobro udubi u problematiku. Zato vam prenosim te neke sitne detalje da znate ko hoce nesto slicno da pravi.
Evo i praktican primer uhvacen na brzinu zasto su potrebna sva ova sitna poboljsanja, a jedan BIT (nije ni bajt) bio sporan :). Evo jedan DX sa 20m (stanica W1MKA, Boston/Massachusetts/USA, ulete posle i K9BI) sa mojom antenom (secate se, glupava inverted V sa uzasnim SWR na ovom bandu). Vidite gde je shum, na nekih -102dB ... Nije to namerno spusteno na tako mali nivo, jednostavno tako mi antena radi i treba da se prag shuma prijemnika maksimalno spusti kao bi culi veoma slabe signale. Sa onim RTL-SDR i ovom antenom ovo nebi moglo uopste da se cuje jer mu je shum samog prijemnika sa najboljom kombinacijom RF predpojacanja iznad nivoa ove stanice (a na sve ovo jos gomila njegovih problema bas za ovaj 20m band gde mu prolupava interni DDS, pisao sam o tome)!!!
BTW: Upravo pada kisa, tacnije "provala oblaka" i dobro grmi/seva a prikljucenm mi SDR na antenu :) Dakle, napravio sam ga tako da mu ni to ne moze nista (naravno do neke granice), neka ga da vidim bas dal ce da mu se nesto desi (bas me briga i ako crkne, napravicu drugi) ali me interesuje koliko je to otporno ... :) Caka je inace unikatna, bez varnicara i tinjalica, samo jedna diodica i kondenzator ali u malo specificnom spoju, nije takva ni kod RTL-SDR niti sam je video takvu kod Tase ;)
Update: Prodje grmljavnina, SDR-u se nista nije desilo, dakle imam "proof-of-concept" ;)
[Ovu poruku je menjao mikikg dana 23.05.2013. u 05:50 GMT+1]