Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Si5351 + PIC16F1455 USB controller
Ukratko, ta verzija za PIC16F1455 je bas specificna, taj kontroler je izabran zato sto njemu ne treba kristalni oscilator da bi radio sa USB, skoro svi ostali kontroleri traze kristal koji dodatno pravi smetnje u RF spektru, zato je taj kristal preskocen i upotrebljen bas taj kontroler i to je bilo aktuelno pre 6-7 godina, to su bili "pionirski radovi" sa Si5351, niko to nije tada znao da postoji niti koristio, imao sam samo oficialnu dokumentaicju i mozda jos dva linka ... Smile

Sada to sve ima sa Arduino da se napravi, svaki moze da zavrsi posao, da li ce da ima LCD i rotary-enkoder stvar izbora.

[Image: attachment.php?aid=34941]


Attached Files Thumbnail(s)

Reply
Jeste,ima bezbroj tih projekta sa Arduino ali ipak je onako vise zanimljivo raditi.Izgleda da ce na kraju biti Ebay i malo cekanja.
Reply
Ovi ljubičasti moduli sa ebay rade provereno, a za male novce, još i SMA konektori stignu. Smile
Reply
Rade sigurno,nisu skupi pa cu da narucim nekoliko da ima za igranje.Neznam za ovaj Arduino nano,ima vidim sa atmega 168 atmega328 , st od toga uzeti,nisam nikad imao Arduino,verovatno nije isti program za oba pa sad ako nadjem neki projekat Arduino i si5351 da provereno radi onda taj Arduino.Ovaj nani izgleda da je najeftiniji a koliko vidim dosta ima projekata gde je upotrebljen.
Reply
Ja sam radio ovaj sa arduino nano:

https://pa0rwe.nl/?page_id=804
Reply
Video sam i ja i razmisljao sam da radim kako je na tom saitu.Verovatno i hocu samo posle praznika da kupim sta treba.
Reply
Ovo je extra zanimljivo, za dobijanje vrlo stabilne frekvencije može da se iskoristi direktno neki GPS modul, ovde u primeru iskorišćen U-blox NEO-6M i sa malo dodatne MCU elektronike može da se realizuje vrlo precizan merač frekvencije i napokon bez skupih OCXO oscilatora!

GPS modul kada se sinhronizuje sa satelitima na osnovu toga može da na jednom svom izlazu (1PPS izlaz) generiše bilo koje frekvencije u opsegu 1Hz do 10MHz i ta frekvencija je izuzetno stabilna i tačna i to se onda koristi kao vremenska baza (bilo za gejtovanje ili za clock) za MCU koji treba vrlo proste operacije da odradi oko brojanja i prikazivanja inpulsa/frekvencije gde interni HW od MCU tajmera (TIMx) generalno radi sav posao na HW nivou bez i jednog "zagubljenog" impulsa kod brojanja i računa.

Ova kombinacija radi odprilike 10x do 1000x bolje od bilo koje najbolje/najskuplje sprave (HP, Fluke i ekipa) koju možda imate u kući po pitanju tačnosti a napravljeno sa jednim GPS modulom + jednim MCU i u primeru koristili 8-Bit MCU, ja trenutno experimentišem sa STM32F429 32bit MCU i 32bit HW tajmerima ...
I moji prvi rezultati pokazuju da to radi neverovatno dobro.
Dodatno ima precizno vreme+datum, kome treba može da prikaže na displeju ...

GPS DISCIPLINOVAN MERAČ FREKVENCIJE!

Ako se tu doda i Si5351 i/ili AD9850 ili slično onda može da se dobije i GPS DISCIPLINOVAN SIGNAL GENERATOR!

Cela problematika oko toga se svodi samo da se dobiju tih stabilni i tačnih referetnih 10MHz, sve posle toga je onda mnogo manji problem.
Dok je GPS modul sinhronizovan sa satelitima sve je OK, kada nema signala e to je malkice problem da se "zapamti/održi" poslednja frekvencija, to je već druga tema i tu se opet mešaju OCXO-ovi kao "hold-over" sprave i to se onda zove GPS DISCIPLINOVAN OCXO ili skraćeno GPSOCXO .. Smile

Reply
Vidjao sam razne implementacije tih brojača/frekvencmetra ali ova varijanta sa STM32F4xx ima najoptimalniju strukturu internih tajmera za takve potrebe.

SW implementacije koje sam vidjao nisu ispratile sve najsitnije detalje a jedan vrlo bitan je vezan za vreme kada treba da se interni brojač resetuje, vremenski on bi trebao da se resetuje tačno na dogadjaj ulaznog triger signala (obično 1 sekunda) i pre nego što se restuje mora da se isčita i zapamati vrednost pa da se resetuje i to sve radi preko interapta, ima linija koja na kraju kaze TIM2->CNT=0.

Takvo rešenje nije dobro jer zavisi od interupt latence + ima vremenski offset, nije sinhrono na HW nivou.

TIM2 može da se u toj priči poptuno drugačije "hendluje", to je 32bit tajmer i NE MORA DA SE RESETUJE, dovoljno je vezati HW pin samo na neki njegov Capture/Compare registar, na primer treći kanal TIM2->CCR3 i on "sempluje" vrednost tačno kad treba na HW nivou i tek onda trigeruje interapt rutinu da samo sračuna rezultat (vremenski ne-kritično), sve na svom mestu i ne zavisi od SW!
Postoji counter-overflow situacija (kad odbroji 4294967295 impulsa : ) koja se lako hendluje i opet nije vremenski kritična i ne utiče na rezultat.

PS: U mom primeru za 100Hz ulazni test signal je odbrojao 200 impulsa za jednu sekundu, taj brojač broji/inkrementuje na obe ivice ulaznog signala i zato je odbrojao 200 što i nije loše, dobije se dodatnih "1/2 count" rezolucije jer može da izbroji neparan broj impulsa za to vreme uzorkovanja od 1sec.

[Image: attachment.php?aid=39882]

[Image: attachment.php?aid=39883]


Attached Files Thumbnail(s)

Reply
Miki koja je max brzina komparatora u tom stm32, dali bi mogao da brzo uporedi dva napona - dva kondenzatora na 2.8MHz i da ih stm32 brzo isprazni open kolektorom, na sledecem tiku se opet napune, kompare, isprazne i tako u krug?
Reply
Može da radi svašta, generalno sav I/O je ograničen internom clock distribucijom ali računaj da radi sigurno do 50MHz sav digitalni I/O a može i brže ako ti zafali, analogni ulazi uključujući i komparatore su nešto sporiji ali su isti u nekoliko MHz opsegu.
Reply
(03-23-2023, 04:19 PM)mikikg Wrote: Ovo je extra zanimljivo, za dobijanje vrlo stabilne frekvencije može da se iskoristi direktno neki GPS modul, ovde u primeru iskorišćen U-blox NEO-6M i sa malo dodatne MCU elektronike može da se realizuje vrlo precizan merač frekvencije i napokon bez skupih OCXO oscilatora!

GPS modul kada se sinhronizuje sa satelitima na osnovu toga može da na jednom svom izlazu (1PPS izlaz) generiše bilo koje frekvencije u opsegu 1Hz do 10MHz i ta frekvencija je izuzetno stabilna i tačna i to se onda koristi kao vremenska baza (bilo za gejtovanje ili za clock) za MCU koji treba vrlo proste operacije da odradi oko brojanja i prikazivanja inpulsa/frekvencije gde interni HW od MCU tajmera (TIMx) generalno radi sav posao na HW nivou bez i jednog "zagubljenog" impulsa kod brojanja i računa.
 
Miki, nisam znao za ovo do sad. Mislio sam da je na ovom izlazu samo 1PPS. Kako se selektuje zeljena frekvencija na ovom izlazu, verovatno podesavanjem nekih internih registara u modulu, datasheet je veoma oskudan.

Ranije su postojali moduli koji su osim 1PPS mogli da generisu i 50KHz pa se ta frekvencija koristila za generisanje (PLL-om) neke druge npr 10MHz.
Novac je sredstvo a ne cilj.
Reply
https://content.u-blox.com/sites/default...005%29.pdf

Quote:1.7.2 Timepulse and frequency reference
NEO-6T comes with a timepulse output which can be configured from 0.25 Hz up to 10 MHz. The timepulse can
either be used for time synchronization (i.e. 1 pulse per second) or as a reference frequency in the MHz range. A
timepulse in the MHz range provides excellent long-term frequency accuracy and stability.
Reply
(03-24-2023, 02:32 PM)progster Wrote: https://content.u-blox.com/sites/default...005%29.pdf

Quote:1.7.2 Timepulse and frequency reference
NEO-6T comes with a timepulse output which can be configured from 0.25 Hz up to 10 MHz. The timepulse can
either be used for time synchronization (i.e. 1 pulse per second) or as a reference frequency in the MHz range. A
timepulse in the MHz range provides excellent long-term frequency accuracy and stability.

Sve se konfiguriše preko konekcije sa samim modulom. 
Najčešće tu postoji UART seriska komunikacija (zavisi od modela, može da ima SPI, I2C ili USB) i preko toga se sa AT komandama komunicira sa modulom.
To podešavanje se u suštini treba uradi jednom i dok je modul pod napajanjem ili pod backup-baterijom on tu konfiguraciju čuva, nema EEPROM da to permanetno zapamti.
Reply
Kako je dobar ovaj STM32F429 kontroler, tajmeri/counteri su vrhunski, evo dodao sam još jedan treći TIM3 16bit samo da mi radi HW kao preskaler sa tačno 1:1000000 (1:1M) i sa tim dobijem na primer sa 10MHz ulaznom frekvencijom tačno 0.1 sekundu impulse za triger/gate koji tako hardwerski spolja spojim u glavni TIM2 brojač za frekvenciju! Naravno isto tako pravim i 1sec i 10sec gate signal.
Poptpuno externo HW rešena logika za brojanje i gejt.
Testirao sam odnose za deljenje (TIM3) preko Fluke sa A/B ulazima i pokaže tačno 1000000 uvek, nevezano za izabrane frekvencije, odnos je uvek fiksan i ne greši nikad, koliko imam decimala na instrumentu sve do zadnje nule prikaže tačno i ne mrda odatle nikako, ni za jedan count u bezbroj prolaza za merenje ...

Ima još 11 slobodnih HW tajmera u ovom IC Smile

[Image: attachment.php?aid=39887]


Attached Files Thumbnail(s)

Reply
(03-24-2023, 02:32 PM)progster Wrote: https://content.u-blox.com/sites/default...005%29.pdf

Quote:1.7.2 Timepulse and frequency reference
NEO-6T comes with a timepulse output which can be configured from 0.25 Hz up to 10 MHz. The timepulse can
either be used for time synchronization (i.e. 1 pulse per second) or as a reference frequency in the MHz range. A
timepulse in the MHz range provides excellent long-term frequency accuracy and stability.

Hvala progster, promaklo mi ovo.
Novac je sredstvo a ne cilj.
Reply
Spominjao sam ovaj signal generator, zanimljiva spravica ali na primer sa njom kada sam stavio da na jednom kanalu generiše 1Hz (gate signal) a na drugom 1MHz (test signal) i to doveo u Fluke sa funkcijom merenja odnosa A/B, na žalost nije pokazao tačno 1000000 nego 1000084 što je onako baš problematična stvar jer se taj uredjaj pokreće iz istog izvora za CLOCK i trebao bi da pokaže tačan odnos kao što bi to uradio SMT32 ali na žalost nije tako i neko je tu zabrljao SW ...
STM32 takve stvari radi na HW nivou bez greške.

[Image: attachment.php?aid=39888]


Attached Files Thumbnail(s)

Reply
[Image: attachment.php?aid=39898]

Hehe, ovo mora da vam pokažem, pre mnogo godina na oglasima sam kupio neku gomilu oscilatora, raznih frekvencija i sve sam ih proverio i izmerio po frekvenciji, svi ispravni i svaki je manje-više odstupao od svoje naznačene frekvencije, onako cela gomila ali praktično mi nije ništa od toga pasovalo za PLL-ove jer su svi bili sa nekom greškom i tako stojalo u ladici godinama  ...

Opet se nešto podsetio tih oscilatora i samo me je jedna jedina stvar interesovala, ako slučajno neki od tih kockica ima iskorišćenu i 4. nožicu na tom kućištu!!!
Kod svih tih kockica raspored priključnih pinova je isti, i za veće/manje kućište i svi oscilatori moraju da koriste makar 3 nožice, (GND, +Vcc i OUT).
I tako sam krenuo u potragu za 4. nožicom Smile
Uzeo lepo instrument i premerio Ohm-metrom svaki pojedinačan modul izmedju GND i 4. izvoda, i krene Sanvwa da pokazuje "ništa" (>50MOhm), sledeći isto ništa, ništa, ništa ...

Iz cele te gomile pojavio se JEDAN koji je imao "nešto", pokazivao je neku otposnost oko 1-2MOhm. Ahaaa, tu si se sakrio, ti si taj izabrani?! Smile
I definitivno je to bio taj koji sam ustvari specifično i tražio, i još da je neke fine nazivne frekvencije kako bi onda tek bilo zanimljivo.
Okrenem da pogledam na njemu piše 27.000MHz, hmmm, pa to je prelepo, pa tebe tražim!!!

Caka sa 4. pinom je mnogo prosta, ako ima neku otpornost prema GND definitivno onda taj pin ima neku funkciju i generalno može da ima samo jednu od dve funkcije, ili je taj PIN za Enable/Disable (ON/OFF) oscilatora ili je druga mnogo zanimljivija funkcija koja služi za TRIMOVANJE oscilatora!!!
I tako sam našao iz cele te gomile samo jedan oscilator koji može da se preko dodatnog 4. pina trimuje na nazivnu frekvenciju i to se najčešće radi naponski, dovede se spoljni napon u opsegu 0 do 5V i to trimuje oscilator sa na primer +/-20ppm.

I tako sam dobio komponentu ustvari koja mi je falila za kombinaciju sa AD780 o kome sam pisao oko preciznog regulatora temperature.

Napokon sam fizički "spojio/pričvrstio/stegnuo" tj termički spregnuo izabrani Oscilator (XO) + AD780 tako da sam dobio "podgrevanje" oscilatora sa vrlo stabilnom temperaturom koja je generalno preduslov da se smanji temperaturni drift tj uticaj temperature okoline kako bi na kraju oscilator radio u super finim termalnim uslovima što je preduslov za "super-stabilnu" izlaznu frekvenciju.

I kako radi takva kockicka kada se precizno temepraturno stabiliše u nekoj termički izolovanoj kutici? Smile 

Pa na primer ovako, pošto je neohodan i vrlo stabilan napon za trimovanje samog oscilatora, uzeo sam ustvari najbolji stabilan napon koji imam (u kući) sa same te reference, tih 2.5V je stabilno u 5. decimalu (pisao o tome u temi) tako da je to leglo samo tako bar za probu kao "trim napon" oscilatora tako da sam mogao da imam neke vrlo stabilne uslove kako bi mogao da to sve probam (tačan trim napon i tačna frekvencija će doći na svoje mesto kad završim) i konkretna merenja oscilatora ispada ovako sa 10 sekundi uzorkovanjem i prikazom na 9 cifri, samo da vidite koliko je to stabilno:

26996850.0 Hz  <== recimo da je to referetna frekvencija za poredjenje, svakih 10 sekundi
26996850.0 <== 0ppm
26996849.9 <== 0.00370ppm 
26996850.0 <== 0ppm
26996850.0 <== 0ppm
26996850.0 <== 0ppm
26996850.0 <== 0ppm
26996854.9 <== 0.00370ppm
26996854.9 <== 0.00370ppm
26996850.0 <== 0ppm
26996850.0 <== 0ppm
26996854.9 <== 0.00370ppm
26996854.9 <== 0.00370ppm
26996854.8 <== 0.00740ppm
26996854.8 <== 0.00740ppm
26996854.9 <== 0.00370ppm
...

Dakle taj oscialtor sad radi stabilno sa na primer +/-0.2Hz tj. +/-0.0074ppm tj. +/-7.4ppb!
Oscilator izvadjen iz "furde", ne znam tačno za koliko je bio taj oscilator specificiran, recimo da je bio +/-10ppm, dobio sam +/-0.0074ppm što je verovali ili ne 1300x BOLJA stabilnost generisane frekvencije!

Tako stabilno verovatno bi radili i svi ovi ostali oscilatori sa fotke, samo eto zatekao mi se model koji mogu i na kraju da natrimujem na tačno 270000000.0Hz i to ide u Si5351 ... Smile

Da zaključim, srž cele ideje je temperaturno stabilisana naponska referenca AD780 koja se podgreva sa tranzistorom i na to je termalno spregnut oscilator, to je kluč da se dobije stabilan napon + stabilna frekvencija.


Attached Files Thumbnail(s)

Reply
Ovo je super! Ovako podesen bi trebao da ima i phase jako dobar? Mogao bi jedan forumski za audio na 24.576MHz ! Smile
Reply
@mikikg, i taj skroz gore lijevo, što im pristup trimeru (rupa na kucistu) bi trebalo da se moze utrimovati na nazivnu frekvenciju.
Takodje mu pin 1 naponski drzi frekvenciju VCXO.-
pOz
P.S. odoh u "školu"-proucavati manual od original kineza DSO-FNIRSI 1014D. Samo sam provjerio da radi.-
Reply
@emiSAr
Naravno da mi je poznat i taj VCXO, zato sam ga izdvojio tu u ćoše, frekvencija mu je nezgodna, to je iz nekog radio uredjaja.

Hmm, ovo me je tek sad sve podsetilo, pa ja već imam "ozbiljan" oscilator koji treba samo da se ovako super-fino podgreva, i to ne samo oscilator nego super-mega low-jitter programibilni PLL + Oscilator ili u narodu poznatiji kao Silicon Labs Si570!
Auhhh, pa to je tek dobitna kombinacija!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)