Sida 1 av 2

Klocka med hög precision

Postat: 14 maj 2007, 23:28:25
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?

Postat: 14 maj 2007, 23:38:56
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 ?

Postat: 15 maj 2007, 00:03:47
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,,,

Postat: 15 maj 2007, 01:27:28
av Andax
PIC-en har väl en prescaler som kan dela ner kristall-frekvensen till lämplig timer-frekvens.

Postat: 15 maj 2007, 07:03:29
av Icecap
Lösningen heter DS32KHZ eller en av dess kompisar (DS4000 eller DS76KHZ)

Postat: 15 maj 2007, 07:29:18
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...

Postat: 15 maj 2007, 11:02:21
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...

Postat: 15 maj 2007, 11:17:32
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.

Postat: 15 maj 2007, 11:36:44
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.

Postat: 15 maj 2007, 12:53:17
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.

Postat: 16 maj 2007, 13:38:00
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.

Postat: 17 maj 2007, 03:09:07
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...

Postat: 17 maj 2007, 04:06:13
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!

Postat: 17 maj 2007, 14:44:36
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...

Postat: 17 maj 2007, 16:08:39
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.