Klocka med hög precision

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
Användarvisningsbild
nlinus
Inlägg: 805
Blev medlem: 16 januari 2007, 17:49:14
Ort: Åre kommun

Klocka med hög precision

Inlägg av nlinus »

Jag sitter och klurar på en applikation där jag behöver två timers som går väldigt lika. De får inte vara alltför känsliga för temperatur osv, och får inte diffa mer än säg, en hundradel på en kvart. Lite taget ur luften, men jag vet inte vad som är realistiskt...

Båda två ska vara anslutna till varsin PIC-processor som ska kunna läsa av tiden. Upplösningen bör vara 10ms.
Funderade först på någon högprecisions klockgenerator via en binär räknare. Är detta knasigt tänkt? Någon som har något tips?
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17581
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

borde klaras med standard 10ppm kristaller, och dom kan man lätt göra bättre genom att grovt temperaturkontrollera dom, funkar med en ptcuppvärmning, eller något bättre

frågan. hur ska du synkronisera dom?, ha dom ihop och köra en reset ?
Användarvisningsbild
nlinus
Inlägg: 805
Blev medlem: 16 januari 2007, 17:49:14
Ort: Åre kommun

Inlägg av nlinus »

grym skrev:borde klaras med standard 10ppm kristaller, och dom kan man lätt göra bättre genom att grovt temperaturkontrollera dom, funkar med en ptcuppvärmning, eller något bättre

frågan. hur ska du synkronisera dom?, ha dom ihop och köra en reset ?
Jag tänkte göra två st "moduler" med varsin klocka och PIC16F877A. Synkningen görs väl som sagt enklast genom att ansluta dem till varandra och göra en reset. Kanske görs enklast via någon utgång på den ena PIC-processorn för att få en brant puls.

Kan någon rekommendera någon räknare? Den måste väl vara minst 16 bit. Går väl förstås att kaskadkoppla två st 8-bits räknare.

Är inte kristallerna mycket snabba? Vill ju inte köra flera MHz,,,
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

PIC-en har väl en prescaler som kan dela ner kristall-frekvensen till lämplig timer-frekvens.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Lösningen heter DS32KHZ eller en av dess kompisar (DS4000 eller DS76KHZ)
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Igår var det någon på #elektronik som fick igång sådan krets som icecap länkade till, kopplad till just en PIC...
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> och får inte diffa mer än säg...

Alltså diffa från *varandra* ? Eller från någon slags absolut tid ?

> en hundradel på en kvart.

En hundradel av *VADÅ* ??
Av en kvart ? Av en sekund ??

Om det är en hundradel av en kvart, sä låter det väl inte speciellt avancerat.
En hundradel av en sekund är lite mer "spännande"...

Jag gör också det vågade antagandet att "en kvart" = 15 minuter. :-)

> Är inte kristallerna mycket snabba? Vill ju inte köra flera MHz,,,

Vad har det med det hela att göra !?
Det tas om hand i programvaran.

> Kan någon rekommendera någon räknare?

PIC16F877A.

> Synkningen görs väl som sagt enklast genom att ansluta dem till varandra

I så fall (om de i alla fall är anslutna till varandra), så kan de lika
gärna köra med *samma* klocka. Varför ska du ha två klockor ?
Lår den ena PIC'en vara "master" och trigga den andra på något sätt.
Sedan (när den andra signalerar) så är dete bara att stoppa (eller
läsa av) klockan för den.
"Diffen" kommer att utgöras av tiden det tar för själva signaleringen
mellan de två PIC'arna.

Sen, *om* du dessutom vill ha tider som är noggranna m.a.p absolut
tid, så kan du köra master-PIC'en från en bättre klocka än en
standard 50 ppm kristall. Men det är en annnan fråga...
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Om vi antar att "en kvart" är 15 minuter och "en hundradel" avser 1/100 sek måste det bli inom 11ppm, alltså ±5,5ppm.

detta är helt säkert möjligt att åstadkomma med de kretsar jag länkade till, DS4000 är bra mycket bättre än detta krav!

Men hur vill du synka dom? Om de ska passa sådär skitnoga med varandra även på avstånd kan du ha ett problem, all synkronisering har en viss reaktionstid och du ska klura en del för att få det precist.

Jag vet ett sätt där du kan synkronisera över radio men det kräver en del extra och tanka på timing.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Alltså, om båda PIC'arna använder *samma* "klocka" så blir det ju
(i princip) 0 ppm diff mellan dom... :-)

> Men hur vill du synka dom?

De ska ju vara (eller i alla fall *kan* vara) anslutna till varandra,
så det borde inte vara något problem.

Igen, om båda PIC'arna i alla fall ska vara kopplade till varandra,
så ser jag inte varför de ska använda separata klockor.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Som jag förstod det så menade han att dom normalt jobbar skilda från varandra, men kan kopplas ihop och synkas den vägen innan utplacering. Det var min tolkning och informationen var inte helt klar, så jag kan ha helt fel.
Användarvisningsbild
nlinus
Inlägg: 805
Blev medlem: 16 januari 2007, 17:49:14
Ort: Åre kommun

Inlägg av nlinus »

vfr har rätt.
Det var precis så jag menade. Ber om ursäkt för att jag var lite otydlig, men jag menade alltså en hundradels sekunds fel på en kvart.

Har för övrigt skaffat mig lite bättre kunskap om PIC-processorns funktion så jag har en idé om hur jag kan lösa detta m.h.a prescalern. Jag tackar för tipsen om kristaller.
Ser ut som om DS32KHZ är en riktigt schysst pryl. Beställer några sådana.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

grym skrev:borde klaras med standard 10ppm kristaller, och dom kan man lätt göra bättre genom att grovt temperaturkontrollera dom, funkar med en ptcuppvärmning, eller något bättre

frågan. hur ska du synkronisera dom?, ha dom ihop och köra en reset ?
skall kristallerna jobba ännu stabilare och mindre känslig för omgivande miljö som brus, intefrens på matningarna, komponentvärdes variationer etc. så bör kristallen jobba i serieresonans (tex colpitt-oscillator) istället för de MCU-världen allmänt använda paralellresonansoscillatorerna (pierce-oscillator)

dock bör man beställa kristaller för just serieresonans om frekvensstämplingen skall stämma med faktiskt genererad frekvens - med temperaturkontroll enligt grym och liten trimkondensator/induktans så kan det justeras till väldigt hög stabilitet och frekvensnoggranhet.

kristalloscilatorer fins till nära cecium-atomurs precision om man är villig att betala lite...
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

En annan variant är att använda två GPS-mottagare som har PPS (pulse per second) signal ut. Då kan man få en mycket noggrann absolut tid på båda noderna. Finns moduler för kanske 500 spänn som klarar det.
Då behöver du inte bry dig om drift i huvudtaget!
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

Beror på om applikationen används utomhus eller inte, alternativt kan matas med antenn utifrån.

GPS ger onekligen väldigt hög absolutnogranhet när den ser satelliterna, men kräver en hel del klur om man av dessa 1 Hz flanker skall tillverka sig en 10 MHz referens-signal eller typ 10 ms räknarsnurra med väldigt lite tidsgitter/fasbrus - inställningstiden brukar vara väldigt långa just för att 'korrektionen' bara kommer med 1-sek intervall.

Det bero på vad som skall göras...
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Känns som att gå över ån efter vatten att skapa en 10 MHz referens ur 1-PPS signalen från GPS.

Absolut enklaste är ju att ha en intern höghastighetsräknare som man nollställer vid varje 1-PPS flank och en räknare som räknar 1-PPS signalerna (håller reda på antal hela sekunder)

Tiden man får då håller ju en absolutnoggrannhet som är beroende på kristallen som höghastighetsräknaren kör på. T.ex. 100 ppm ger ett max absolutfel på 100 µs.

Det fina i kråksången är att man mycket lätt kan förbättra de där 100 ppm genom att mäta det verkliga antalet cykler som räknaren hinner med mellan två 1-PPS pulser. Multiplicerar man sitt höghastighetsräknarvärde med (teoretiskt antal räknarvärden på 1 sekund)/(faktiska antal räknarvärden på 1 sekund) får man lätt en absolutnoggrannhet < 1µs.
Skriv svar