Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Si5351 + PIC16F1455 USB controller
Nisam gledao posebno neke fabričke, imam pasivne keremačke i mam jednu aktivnu sa pre-amp u sebi, isto fabrička, tako mi je stiglo za neke probe.

Ono što je interesatno je da sam sa nanoVNA napravio "minijatuni dipol", pokazivao sam to, dva mala kratka parčeta žice od po 5-6cm dužine zaletovana na SMA konektor i to je GPS antena, natrimovana tačno na potrebnu frekvenciju i nekim 50Ohm koaksialcem sprovedana blizu prozora ili izvučena van da "gleda u nebo".

To radi, za neku nijansu lošije od keramičke antene ali su sada ti GPS prijemnici sumanuto osetljivi tako da ne osećaju tu razliku, dovoljno je da se to postovi blizu prozora ili van i tada ima odličan prijem i brzo se modul sinhrunizuje sa satelitima.

Kada modul ne može da se sinhonizuje iz bilo kog razloga, tj kada "nije zaključan" sa frekvencijaom sa satelita, tada modul na svom PPS izlazu daje nezaključanu frekvenciju i isto obrnuto kada je sinhronizovan i "jeste zaključan" onda daje drugu frekvenciju na PPS izlazu.

Zato imaj tamo u programu dve izlazne frekvencije da se postave, zaključana i ne-zaključana (locked/unlocked) jer je to jedan od mehanizama da se signalizira da uredjaj jeste/nije sinhronizovan i postavlja se obično tako da zaključana/sinhronizovana frekvencija bude ta koja nam treba (500Hz ili 10Mhz kako kome pasuje) i druga ne-zaključana je neka totalno različita i takva da može lako da se detektuje razlika jedne/druge frekvencije, recimo na 1Hz i to bi mogao da vidiš kao blink na LED od PPS, kada je 500Hz to se vidi kao stalno upaljena LED i tako može da se prosto vizuelno razlikuje.


[Image: attachment.php?aid=40886]
Reply
Ok,
Programiraj onda 500Hz/1Hz Big Grin
Reply
Naručio sam aktivnu antenu .Pitanje  glasi dali je napajanje antene uključeno ili mora da se i to programira?
Reply
Ovo je super,moram nabaviti ovaj GPS.

Ja imam SIM18 GPS ali njegov  TIMEMARK OUTPUT PIN je izgleda fixan impuls od 200mS ne vidim da moze da se menja
Reply
Haha, setio sam se kako može da se iskoristi GPS modul i da se izvuče tačno vreme ili datum a da se prikaže na 7seg na Borinom frekvencmetru bez prepravki (osim one vremenske baze) ? Smile

Simpatična caka, taj 7seg su samo cifre, prikazuje šta stigne na ulaz, sad kako to ko interpretira, 234505 neko bi pomislio Hz na primer ali kao trenutno (UTC) vreme "23 : 45 : 05", ili možda kraći format 2345 kao "23:45".  

Isto tako i datum na primer 200923 kao "20 Sep 2023" može da se prikaže samo je caka da se stvarno njemu dovede ta frekvencija a ona može da se preko PLL tačno sintetizuje jer će sam PLL da bude ustvari povezan na neku referetnu frekvenciju, u ovom slučaju 10MHz i tako dolazimo do Si5351 koji to radi bez problema, može bukvalno da "piše po displeju" tj da generiše takve frekvencije i da to radi potpuno tačno i sinhrono.

"Pisač na 7seg frekvencmetar" koji radi preko GPS, hehe, može i kod mene na Fluke to da prikazuje ili bilo koji drugi frekvencmetar koji je tačan po GPS!  Smile

I da, IR komande mogu da se uvedu, 1, 2, 3 ... dodelimo im funkcije ....
Reply
Photo 
[Image: attachment.php?aid=43526][Image: attachment.php?aid=43525][Image: attachment.php?aid=43524]Stigao od Mikija test GPS modul pa se danas malo radilo na translatoru.Zamisao je da se iz podnožja izvadi CD4060 koji sa kristalom daje 500Hz a ubaci ova adapter pločica i to bi bila modifikacija.Tako se lako može porediti original i modifikacija.

.png   Level translator sch.png (Size: 8,13 KB / Downloads: 172)

.png   Level translator brd.png (Size: 9,35 KB / Downloads: 169)

.jpg   IMG_20240926_154021.jpg (Size: 710,7 KB / Downloads: 163)
Reply
Obično se praktikuje da ima prekidač sa internu i externu vremensku bazu, zgodno je da ima interna za neku brzu probu, GPS treba da se "zaleti", ako ga dugo ne uključujes isprazni mu se ona mala baterica ili kondenzator ne znam šta je i onda pogubi parametre o satelitima pa mora da se sačeka sledeći put možda i par minuta dok ne udje u sinhronizaciju.

Stavljaju CR2025/32 baterije za taj backup kod GPS kome je to bitno.

Sad kada nema sinhronizacije izlazi 4Hz, blinka LED tom brzinom pa se vidi razlika, tako smo pričali.

Dok se to ne sinhronizuje može uredjaj da radi sa internom bazom, zato je zgodan prekidač, 500Hz signal, ništa strašno, neki tanak koaksialac do/od prekidača i to bi bilo to.

PS: Može da se napravi sa NE555 vremenac koji može da komparira te dve izlazne frekvencije, može da "prepozna" 4Hz ili 500Hz i da aktivira jedno malo signalno relejče (kao iz atenuatora) i automatski da prebaci na GPS kad proradi i da se vrati na internu ako nije sinhronizovan! Wink
Takodje može umesto releja da se upotrebi CMOS kapija da to isto odradi da prebacuje sa jedne na drugu liniju clock/bazu, šta god ti je zgodnije.

PS2: Trebao sam da stavim umesto 4Hz da bude izlaz tačno 5Hz, to bi bila "experimentalna frekvencija", tj pričali smo da je to baza za 100 sekundno uzorkovanje, 50Hz bi bilo za 10 sekundi, sada ti je 500Hz za 1 sekundu, promenom baze dobiješ po decimalno mesto u rezultatu. Sad kako bi to moglo automatski da se prepoznaje malo teže, svakako bi trebao neki mali MCU da priča sa GPS pa on da obezbedi sve ostalo što treba od signala i indikacije stanja.

[Image: attachment.php?aid=43527]


Attached Files
.jpg   monostable-multivibrator-circuit-768x581.jpg (Size: 54,77 KB / Downloads: 106)
Reply
Ovo je minimalistička varijanta sa malim PIC 8-PIN MCU, to sve radi što treba, ima 5 LED i 1 taster i ulaze/izlaze.
Imaju GPS moduli koji na sebi imaju TCXO, malkice su skuplji tako da uz ovakav jedan PIC taj brojac bi radio sa TCXO kada je nesinhronizovan i preko GPS kada jeste.
Minimalno sve, kao NE555 da smo stavili a zavrsili smo kompletnu logiku.
Imam te PIC-ove zato sam njega izabrao, GPT napravi ceo prgram, samu se kaže "Rekao nam Miki da napišeš progam po ovoj tablici za Borin frekvencmetar sa GPS"  Cool

[Image: attachment.php?aid=43528]

Detalji po funkcionalnosti:
  1. Ulaz frekvencije (RA5):
    • Kada je ulazna frekvencija 10 kHz, sistem prepoznaje da je GPS sinhronizovan (locked).
    • Kada je ulazna frekvencija 20 kHz, sistem prepoznaje da je GPS nesinhronizovan (unlocked), ali i dalje funkcioniše normalno, generišući vremenske baze i signalizirajući nesinhronizovano stanje putem RA3.
  2. Izlaz frekvencije (RA4):
    • Sistem generiše sledeće frekvencije na osnovu izabrane vremenske baze:
      • 5 kHz
      • 500 Hz
      • 50 Hz
      • 5 Hz
  3. Sync LED (RA3):
    • RA3 kontroliše Sync LED:
      • Kada je GPS frekvencija 10 kHz (locked), LED svetli.
      • Kada je frekvencija 20 kHz (unlocked), LED može blinkati ili svetliti drugačije kako bi signalizovala nesinhronizovano stanje.
  4. Kontrola LED dioda (RA1 i RA2):
    • RA2 kontroliše dve LED diode koje prikazuju stanja za vremenske baze 0.1 s (10 Hz) i 1 s (1 Hz).
    • RA1 kontroliše preostale dve LED diode koje prikazuju stanja za vremenske baze 10 s (0.1 Hz) i 100 s(0.01 Hz).
  5. Taster za promenu baze (RA0):
    • Ovaj pin se koristi za jedan taster kojim ciklično menjaš između vremenskih baza.
    • Pritiskom na taster menja se baza, a odgovarajuće LED diode na RA1 i RA2 prikazuju trenutno stanje.


Code:
#include <xc.h>

// Konfiguracija fjuza
#pragma config FOSC = INTOSC    // Interni oscilator
#pragma config WDTE = OFF       // Watchdog Timer Off
#pragma config PWRTE = OFF      // Power-up Timer Disable
#pragma config MCLRE = ON       // Master Clear Enable
#pragma config CP = OFF         // Code Protection Off
#pragma config BOREN = OFF      // Brown-out Reset Disable
#pragma config CLKOUTEN = OFF   // CLKOUT Function Disable
#pragma config WRT = OFF        // Flash Memory Self-Write Protection Off
#pragma config PLLEN = OFF      // PLL Disable
#pragma config STVREN = OFF     // Stack Overflow/Underflow Reset Disable

// Definicija frekvencija i baze
#define BASE_5KHZ 0
#define BASE_500HZ 1
#define BASE_50HZ 2
#define BASE_5HZ 3

unsigned char current_base = BASE_5KHZ;  // Trenutna baza (default 5kHz)

// Funkcija za inicijalizaciju tajmera i ulaznih/izlaznih pinova
void init_pic() {
    // Interni oscilator na 4MHz
    OSCCON = 0x6A;
   
    // Konfiguracija I/O pinova
    TRISA = 0xFF;  // RA5 kao ulaz (GPS frekvencija), RA4 kao izlaz frekvencije, RA3 kao izlaz za Sync LED
    ANSELA = 0x00; // Digitalni režim za sve pinove
   
    // Postavljanje izlaznih pinova za LED diode i frekvenciju
    TRISA0 = 1;  // RA0 kao ulaz za taster
    TRISA1 = 0;  // RA1 kao izlaz za dve LED diode (1s i 10s)
    TRISA2 = 0;  // RA2 kao izlaz za dve LED diode (0.1s i 100s)
    TRISA3 = 0;  // RA3 kao izlaz za Sync LED
    TRISA4 = 0;  // RA4 kao izlaz za frekvenciju
    TRISA5 = 1;  // RA5 kao ulaz za GPS
   
    // Timer1 konfiguracija za deljenje frekvencije
    T1CON = 0x31;  // 16-bitni tajmer, predelilac 1:8
    TMR1 = 0;      // Resetovanje Timer1

    // Konfiguracija Timer2 za generisanje PWM (ukoliko je potrebno)
    T2CON = 0x04;  // Postavljanje predelilaca i uključenje tajmera
    PR2 = 249;     // Postavljanje vrednosti za postizanje željene frekvencije

    // Interrupt za taster
    OPTION_REGbits.nWPUEN = 0;  // Dozvoli weak pull-up
    WPUAbits.WPUA0 = 1;         // Pull-up za taster na RA0
    INTCONbits.INTF = 0;        // Resetovanje interapt flaga
    INTCONbits.INTE = 1;        // Dozvoli eksterni interrupt
    INTCONbits.GIE = 1;         // Dozvoli globalne prekide
}

// Funkcija za promenu vremenske baze
void change_base() {
    // Promena baze u ciklusima
    current_base++;
    if (current_base > BASE_5HZ) {
        current_base = BASE_5KHZ;
    }
}

// Funkcija za generisanje izlazne frekvencije na RA4
void set_frequency_output() {
    switch (current_base) {
        case BASE_5KHZ:
            // Postavi Timer1 za generisanje 5kHz na RA4
            T1CONbits.TMR1ON = 1;  // Uključi Timer1
            LATAbits.LATA4 = 1;
            __delay_ms(1);         // Kratak impuls
            LATAbits.LATA4 = 0;
            break;
        case BASE_500HZ:
            // Postavi Timer1 za 500Hz
            T1CONbits.TMR1ON = 1;
            LATAbits.LATA4 = 1;
            __delay_ms(10);
            LATAbits.LATA4 = 0;
            break;
        case BASE_50HZ:
            // Postavi Timer1 za 50Hz
            T1CONbits.TMR1ON = 1;
            LATAbits.LATA4 = 1;
            __delay_ms(100);
            LATAbits.LATA4 = 0;
            break;
        case BASE_5HZ:
            // Postavi Timer1 za 5Hz
            T1CONbits.TMR1ON = 1;
            LATAbits.LATA4 = 1;
            __delay_ms(1000);
            LATAbits.LATA4 = 0;
            break;
    }
}

// Funkcija za detekciju GPS frekvencije i kontrolu Sync LED-a
void check_gps_signal() {
    // Prebrojavanje impulsa na RA5 (10kHz ili 20kHz)
    if (PORTAbits.RA5 == 1) {
        // GPS frekvencija je prisutna
        LATAbits.LATA3 = 1;  // Upali Sync LED
    } else {
        LATAbits.LATA3 = 0;  // Ugasi Sync LED
    }
}

// Funkcija za kontrolu LED-ova vremenske baze
void update_leds() {
    // Kontrola LED-a na RA1 i RA2 na osnovu trenutne baze
    switch (current_base) {
        case BASE_5KHZ:
            LATAbits.LATA2 = 1;  // LED za 0.1s
            LATAbits.LATA1 = 0;
            break;
        case BASE_500HZ:
            LATAbits.LATA2 = 0;
            LATAbits.LATA1 = 1;  // LED za 1s
            break;
        case BASE_50HZ:
            LATAbits.LATA1 = 1;  // LED za 10s
            LATAbits.LATA2 = 0;
            break;
        case BASE_5HZ:
            LATAbits.LATA1 = 1;  // LED za 100s
            LATAbits.LATA2 = 1;
            break;
    }
}

// Prekidna rutina za eksterni interrupt (taster)
void __interrupt() ISR() {
    if (INTCONbits.INTF) {
        // Detekcija pritiska tastera
        change_base();  // Promeni vremensku bazu
        INTCONbits.INTF = 0;  // Resetovanje interapt flaga
    }
}

void main() {
    init_pic();  // Inicijalizacija mikrokontrolera
   
    while (1) {
        check_gps_signal();     // Detekcija GPS signala
        set_frequency_output(); // Generisanje izlazne frekvencije
        update_leds();          // Ažuriranje stanja LED-ova
    }
}


Attached Files
.png   opis-pic16f15313.png (Size: 102,73 KB / Downloads: 129)
Reply
Merio sam danas na Borinom frekfencmetru oscilograme na nekoliko tačaka.Evo slika
[Image: attachment.php?aid=43542]
[Image: attachment.php?aid=43543]
[Image: attachment.php?aid=43544]
[Image: attachment.php?aid=43545]
[Image: attachment.php?aid=43546]

.png   BSFrekf.png (Size: 54,71 KB / Downloads: 122)

.png   BSFrek.png (Size: 37,16 KB / Downloads: 123)

.jpg   IMG_20240928_114004.jpg (Size: 3,43 MB / Downloads: 110)

.jpg   IMG_20240928_114154.jpg (Size: 3,52 MB / Downloads: 109)

.jpg   IMG_20240928_150930.jpg (Size: 992,07 KB / Downloads: 100)
Reply
Miki ajmo praviti gps disciplinovani OCXO, ja sam se bas zagrejao. Ideja je spakovati sve na jedan vertikalni pcb koji bi bio kao modul koji se ubada na main pcb, znaci da modul u sebi ima sledece:

- Crystek CCHD-575-25-24.576 ili ona nasa rernica sto je nikad nismo zavrsili i sto u sebi ima i kristal koji smo dodali
- gps modul https://www.lcsc.com/product-detail/GNSS...56635.html ili https://www.lcsc.com/product-detail/GNSS...90770.html ili neki treci
- LMK
- LT3042 ili neki drugi regulatori
- pic12f1840, ima varijanta u DFN-8-EP(3x3mm) koji bi nadgledao i sinhronizovao LMK preko gps modula i FINC i FDEC pinova ili eventualno postaviti pic u i2c slave mode pa da mu se moze pristupati dodatno preko i2c veze

Oklop za ocxo ako se secate kako sam ja zamislio moze da se uradi od alu pcb sa bakarnim ivicama koje treba sami da savijemo i zalemimo ceo taj oklop na pcb ocxa-a, moze fino da se uradi i doda i silk tkst i da se jos bira i boja poklopca, preko tih bakarnih ivica se pusti lem i spoji sa pcb tcxo-a. Za LMK predpostavljam da ne treba pecnica.

I dalje cuvam ovaj projekat na eada. Ustanovljeno je da heater ne moze da bude sa dva tranzistora kao na slici i mora sa jednim tranzistorom, ako se secam ne valja ni sa jednim tranzistorom jer je onda oklop pod naponom.


Attached Files
.jpg   2024-10-13_132014.jpg (Size: 182,45 KB / Downloads: 3)
.jpg   2024-10-13_132209.jpg (Size: 132,56 KB / Downloads: 2)
Reply
Vidim da sam zapoceo i slicnu verziju sa ovom gore ali sa kontrolisanim gnd gde je gnd vodjen striktno u zvezdu, ali i dalje je sa dva heater tranzistora, ti si koliko se secam rekao da ne valja sa dva transitora jer se tako ovaj pnp grejni tranzistor ponasa kao prekidac i da ne radi kako treba da radi, treba revidirati shemu pa da pokusam da prepravim pcb

Edit: pronasao sam u historical records verziju pre nego sto smo dodali jos jedan tranzistor

[Image: attachment.php?aid=43708]


Attached Files
.jpg   2024-10-13_133511.jpg (Size: 131,48 KB / Downloads: 6)
.jpg   2024-10-13_133734.jpg (Size: 45,3 KB / Downloads: 4)
.jpg   2024-10-13_135245.jpg (Size: 123,68 KB / Downloads: 75)
Reply
@gorso69 Pojasni pls sta si tu i gde merio, da li je to dobro ili nije?
Reply
@Savan Videćemo za OCXO, iskreno užasno pipava tema, samo on, nisam siguran da mogu to da napravim kako treba (prosto i brzo).
U tom smislu više se isplati nabaviti neki "ozbiljan" OCXO, polovan, Morion nek,i kod kineza ...
Reply
(Yesterday, 03:40 PM)mikikg Wrote: @gorso69 Pojasni pls sta si tu i gde merio, da li je to dobro ili nije?

Sve je u redu i to su merenja sa njegovim kristalom da bi ih uporedio kad stavimo GPS.
Reply
Ok, ja zavrsio sa docrtavanjem pcb-a po gornjoj semi, i pcb i poklopacc sa rupicama za trim. Sa donje strane pcb-a je isto parce maske za lem kao i na poklopcu, poklopac se savije sa sve 4 strane i jednostvano se sa donje strane zalemi za pcb. Ako treba okacicu fajlove.


Attached Files
.jpg   2024-10-13_173345.jpg (Size: 67,91 KB / Downloads: 9)
.jpg   2024-10-13_173332.jpg (Size: 97,74 KB / Downloads: 4)
.jpg   2024-10-13_173248.jpg (Size: 16,52 KB / Downloads: 4)
.jpg   2024-10-13_173230.jpg (Size: 13,24 KB / Downloads: 5)
Reply
Vidi, ne mogu da ga napravim kao što ga Rus napravio, nema šanse! Ni približno ... Smile

Tu je termodinamika veoma bitna, to je tako uskladjeno sa težinom/masom/površinom i svaka komponenta je veoma specifično izabrana i uskladjena ne samo električno nego i termički, da li je pozitivan/negativan koeficijent neke tu komponente, nije svima linearna zavistnost i treba ukrstiti tako koliko kriva, pa onoliko koliko ima komponenti tu, treba ukrstiti 20-30 kriva tako da se u jednoj vrlo specificnoj tački oni svi prelome i "nadju" na nekoj tamo izabranoj temperaturi ne znam, na primer na tačno 75*C i tada se dobije tražena stabilnost sa tamo nekim decimalama od PPM, počinje da se koristi PPB merna jedina (Part Per Bilion)

Double-oven ima to sve isto samo fizički dve kutice u kutici za Ultra High Stability OCXO timebase!

Da uzmeš šemu i da precrtaš i da pokušaš da to repliciras isto tako, kako god, NEMA TEORIJE da radi kao to sokoćalo, prvo specilano rezani kristal pa nadalje ...

Taj oscilator je prvi u klasi posle Rubidiumskim oscilatora/standarda, najčešće se koriste za GSM 2/3/4/5G+ Bazne stanice i kod DIY spravica... Ultra mali fazni šum ... Pogledaj DS Morion MV89a ...
Kupuju se isključivo korišćeni/polovni primerci ako negde upecaš ... Smile

Koji god Morion-ov OCXO da najdeš i probaš bićeš prezadovoljan (naravno da je ispravan) ...

To + LMK + GPS = Programabilna (8 kanala) Vremanska/frekvetna referenca, super-mega dobra kratkoročna i dugoročna stabilnost sa/bez GPS.
Fazni šum je u "fazonu" kao kod Macole i BatoMM sa THD "izmerite sami" Smile .. pa se ispostavi da nemaš opremu kako bi to mogao da izmeriš jer je toliko nizak i da bi mogao da izmeriš trebao bi ti bar 10x bolji oscilator tvoje merne sprave a to prelazi u domen "Science Fiction" ...

[Image: attachment.php?aid=43713]


Attached Files
.jpg   prj-mv89a-02.jpg (Size: 84,9 KB / Downloads: 48)
Reply
Meni je samo bitno ta gora shema dali je ispravna, ja bi to cak i napravio pa sta bude od toga, bas me zanima dali ce da greje i da kakva ce vref i temperatura plococe da se dobije, mozda samo treba da razdvojim +5V i dodam posebno jos pin-dva jedan za napajanje kristala, jedan za napajanje opampova i jedan za napajanje grejnog tranzistora da ne budu na istoj +5V. I ako bi to funkcionisalo onda gledati spakovati u jednu mumetal kutijicu, napraviti lepo u 3d print postolje kroz koje ce da prodju pinovi da ne dira podnozje te druge kutije... itd. Mislim da sam ja to davno i narucio ali nisam narucio pcb jer smo se zaustavili pred kraj. Setio sam se da na jlcpcb postoje i bakarne plocice, pa umesto poklopca sto hocu u aluminijumu treba gledati napraviti od bakra mada to moze i u kucnoj varijanti bar bakarnog lima ima svuda da se nabavi.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)