tokkoo
direct duidelijk eenvoudig
Ik wil een klok maken met een alarmfunctie in picbasic.
Wat is het best om de puls van bv 1 sec te genereren:
_interrupt in pic zelf
_vanaf 50Hz net,gelijkrichten.
_dcf signaal
Ik zoek een nauwkeurige maar goedkope oplossing.
tokkoo
direct duidelijk eenvoudig
Op 8 september 2010 23:42:52 schreef Franzki:
Ik heb altijd begrepen dat de 50Hz van het lichtnet op de lange termijn zeer nauwkeurig is.
Die kant en klare tijdklokken van bv Theben zouden toch ook volgens de 1e of de 2e moeten gaan?
Daar zit geen antenne aan.
loopycoaster
Mijn youtube profiel: http://www.youtube.com/user/PicBasicMaster
Om nog maar wat opties te geven:
- Speciaal RTC IC, kunnen tot 2ppm nauwkeurig zijn
- GPS ontvanger. Deze dingen kan je voor rond de 20EUR hebben. Er zijn er met een 1pps (1 puls per seconde) uitgang.
hadv
Just find out what you like and let it kill you
Als je een GPS gebruikt kun je natuurlijk ook de NMEA strings uitlezen en gebruiken. $GPGGA en $GPRMC bevatten de tijd, $GPRMC bevat ook de datum.
Houd er wel rekening mee dat de tijd UTC is en dat je dus deze moet vertalen naar onze zomer/wintertijd. Dat hoeft bij DCF niet.
Verder 32768 kristalletje en Timer1 of zo'n kristalletje met een 4060 en 4013 voor een 1 Hz puls. Dan blijft altijd de nauwkeurigheid van het kristal de cruciale factor, maar met een trimmertje kun je die behoorlijk goed krijgen (< 0,5 seconden per dag). Je hebt dan natuurlijk wel een referentie nodig.
RTC IC's werken in de regel ook met zo'n kristal, dus de nauwkeurigheid is het zelfde.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Via 50Hz synchroniseren is waarschijnlijk het nauwkeurigst en goedkoopst.
Andere mogelijkheid: via netwerk (NTP/NIST server)
Op 9 september 2010 11:59:02 schreef hadv:
Als je een GPS gebruikt kun je natuurlijk ook de NMEA strings uitlezen en gebruiken. $GPGGA en $GPRMC bevatten de tijd, $GPRMC bevat ook de datum.
Houd er wel rekening mee dat de tijd UTC is en dat je dus deze moet vertalen naar onze zomer/wintertijd. Dat hoeft bij DCF niet.
Als je heel nauwkeurig de tijd wil hebben (<1ms), dan is zo'n PPS onontbeerlijk. Wat ik van plan ben is op geregelde tijdstippen te synchroniseren en verder gewoon op een interrupt werken.
Verder 32768 kristalletje en Timer1 of zo'n kristalletje met een 4060 en 4013 voor een 1 Hz puls. Dan blijft altijd de nauwkeurigheid van het kristal de cruciale factor, maar met een trimmertje kun je die behoorlijk goed krijgen (< 0,5 seconden per dag). Je hebt dan natuurlijk wel een referentie nodig.
RTC IC's werken in de regel ook met zo'n kristal, dus de nauwkeurigheid is het zelfde.
Zo'n ICs werken ook met een 32768 Hz kristal, maar hebben temperatuurcompensatie enz. aan boord waardoor ze nog wat nauwkeuriger kunne zijn.
De enige manier om op lange termijn synchroon te blijven is toch synchronisatie met GPS/DCF. Het lichtnet is vrij nauwkeurig, maar als je door storing een fout krijgt wordt deze niet automatisch gecorrigeerd. Bovendien moet je met GPS/DCF de eerste keer de tijd niet instellen. GPS werkt als enige over heel de wereld correct (je moet wel de tijdzone instellen).
NTP is ook een mogelijkheid, maar dan moet je wel internet connectie hebben.
Ik ben druk bezig zo'n alarm klokje te bouwen op basis van een PIC12F509. Ik had eigenlijk gehoopt dat een kristal precies genoeg zou zijn.
hadv
Just find out what you like and let it kill you
Wat is precies genoeg? Oftewel, hoeveel mag je klok afwijken van de "echte" tijd? Wat gebruik je als referentie zodat je weet dat-ie niet teveel voor- of achter loopt?
Ik heb voor een keukenwekker het gewoon met DelayMS (PicBasic) gedaan, nauwkeurigheid 0,5 seconden per 2 uur. Nou is dat voor een keukenwekker natuurlijk uitermate goed, maar voor een gewone wekker kan dat onvoldoende zijn.
Kortom, specificeer eerst je eisen ten aanzien van de nauwkeurigheid, dan kun je daarna bepalen welke oplossing daar aan voldoet.
@Gyrbo: Die PPS garandeert nog steeds geen nauwkeurigheid van < 1 ms als je ook nog eens de tijd moet uitlezen. De GPS tijd wordt 2x per seconde overgedragen via de GGA en RMC strings. Die bevatten weliswaar ook een fractie in duizendsten, maar als je die maar 2x per seconde krijgt wat kun je er dan echt mee?
De laatste twee klokken die ik heb gebouwd hebben gewoon een interne 32768 kristal en syncen eens per uur met een GPS. Veel nauwkeuriger wil ik de tijd niet eens weten.
Verder heb je helemaal geljk met je opmerking over interne kristallen.
Op 9 september 2010 14:05:04 schreef hadv:Kortom, specificeer eerst je eisen ten aanzien van de nauwkeurigheid, dan kun je daarna bepalen welke oplossing daar aan voldoet.
Klopt inderdaad. Ik had een aantal eisen voor mijn klok (momenteel onder zeer trage constructie), waardoor ik voor GPS gekozen heb. Een interrupt op een µC die met een goed kristal geklokt wordt is voor de meeste klokken ruim voldoende.
@Gyrbo: Die PPS garandeert nog steeds geen nauwkeurigheid van < 1 ms als je ook nog eens de tijd moet uitlezen. De GPS tijd wordt 2x per seconde overgedragen via de GGA en RMC strings. Die bevatten weliswaar ook een fractie in duizendsten, maar als je die maar 2x per seconde krijgt wat kun je er dan echt mee?
De laatste twee klokken die ik heb gebouwd hebben gewoon een interne 32768 kristal en syncen eens per uur met een GPS. Veel nauwkeuriger wil ik de tijd niet eens weten.
Verder heb je helemaal geljk met je opmerking over interne kristallen.
Dat is nu net het leuke, dat lukt juist wel. De GGA lees je aan het begint van de second in, je weet dus precies welke seconde dit is. Vervolgens wacht je op de PPS-puls. Deze komt precies 1 seconde (tot op een paar µs, controleer het datasheet van de GPS module) na de tijd die je vorige second ingelezen hebt. Je lokale tijd loopt dus zeer synchroon met de atoomtijd. Als je nu meer precisie wil hebben (milliseconden tellen) dan laat je een locale teller meelopen die je kalibreert volgens het PPS-signaal. Is dit nuttig voor je wandklok? Natuurlijk niet.
hadv
Just find out what you like and let it kill you
De ene GPS die bij mij een PPS uitgang heeft beschikt ook over een 10KHz uitgang. Dat is nog eens lekker nauwkeurig.
Ik denk dat ik die voor mijn keukenwekker ga gebruiken 
tokkoo
direct duidelijk eenvoudig
Veel mogelijkheden.
Ik neig toch naar 100Hz uit het 50Hz net halen.
Mijn toepassing komt niet op een accu.
100Hz via transistor de pic in en voor de nauwkeurigheid is 100Hz toch beter dan 50Hz.
Moet nog even kijken of dit via een interrupt binnen moet komen of niet.
Mijn pic loopt op 20Mhz.
hadv
Just find out what you like and let it kill you
Is over lange tijd bekeken (dagen) een prima oplossing.
Alleen dat 100Hz nauwkeuriger is dan 50 lijkt me niet te kloppen. De frequentie is gewoon "ongeveer" 50 Hz, dat je die verdubbelt verhoogt de nauwkeurigheid, lees afwijking, echt niet.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dat is inderdaad een veel gemaakte denkfout... 
Zelfde bij een kristal.
Een kristal van 10ppm/10MHz is niet 10x zo nauwkeurig als een 10ppm/1MHz kristal, hoewel dat vaak wordt gedacht...