Enige tijd geleden heb ik een rtc 1307 gekocht op ebay.
http://www.ebay.com/itm/ws/eBayISAPI.dll?ViewItem&item=170910326110
Werkt goed ook de flash. Echter als ik de tijd bekijk na 1 week dan loopt de klok ongeveer 20 seconden te snel. Dacht in eerste instantie dat het aan de temperatuur lag. Echter als ik die in de kelder leg ( 15 graden ongeveer ) of in de huiskamer ( 20 graden ) of in de kas ( graad of 25 ) dan maakt het niet veel uit qua verloop. Wie herkent dit?
In een week zitten 7 * 24 * 60 * 60 = 604800 seconden.
Als ik nu de datasheet van een willekeurig kristal op digikey bekijk...
... dan lees ik dat zo'n kristal een afwijking heeft van ongeveer 20ppm. Dat komt overeen met zo'n 12 seconden per week. Jouw 20 seconden is misschien wat veel, maar nog niet heel vreemd.
EricP
mét CE
Heb je application note 58 gelezen?
Xtal met de verkeerde load kan eea. heel goed verklaren.
Hang evt. dit eraan.
Als ik het zo lees hebben jullie gelijk. Zal het geheel ( pic 16f688 + rtc1307 + temperatuur sensor ) eens uitbreiden met een draadloze communicatie waarbij ik de klok synchroniseer of ik hang er een dcf achter. Bedankt
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Fine-tunen kun je met een trimmertje over het kristal. Extreme afwijkingen krijg je meestal als de capaciteit van het kristal niet juist is.
http://www.datasheetarchive.com/files/maxim/0006/an58.htm
dus gewoon een trimmertje op de pootjes van het kristal zeg maar? en dan zeg 1 keer per week afregelen?
[Bericht gewijzigd door Henry S. op (59%)]
Bij mij loopt de DS1307 ongeveer 7 seconden per week te snel. Omdat deze afwijking vrij constant blijft heb ik het softwarematig opgelost. Elke dag wordt de klok een seconde teruggezet.De datum waarop dit gebeurt wordt opgeslagen in het geheugen van de klok zodat de schakeling niet elke dag hoeft te werken.Eerlijk gezegd heb ik nog geen routine voor maandwissel geschreven. Die houd ik dus nog zelf in de gaten.
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Ik heb ooit voor mijn werk moeten meten aan horlogekristalletjes, omdat de baas vond dat de boel teveel afweek (de TD trouwens ook).
10 kristalletjes uit het magazijn gehaald, in een standaard PCF8573 schakeling wat tweepolige sockets gezet en de hele boel in een antieke klimaatkast.
En dan meten maar, met een geijkte HP 5315A counter en Fluke 52 thermometer. (een deel van) de resultaten wil ik jullie niet onthouden:
Spreiding in kristalfrequentie met C=22pF NP0, 28°C
kristal periode (µs) freq. (Hz) afwijking (ppm)
1 7812.619 32767.5009 15.232
2 7812.568 32767.7148 8.704
3 7812.567 32767.7190 8.576
4 7812.560 32767.7483 7.680
5 7812.537 32767.8448 4.736
6 7812.615 32767.5177 14.720
7 7812.681 32767.2408 23.168
8 7812.547 32767.8029 6.016
9 7812.538 32767.8406 4.864
10 7812.535 32767.8532 4.480
Invloed van temperatuur op frequentie, kristal 2, C=22pF NP0
temp (°C) periode (µs) freq. (Hz) afwijking (ppm)
14.7 7812.592 32767.614 11.776
15.3 7812.582 32767.656 10.496
17.3 7812.580 32767.664 10.240
19.3 7812.573 32767.694 9.344
20.5 7812.570 32767.706 8.960
21.9 7812.568 32767.715 8.704
23.3 7812.567 32767.719 8.576
24.3 7812.566 32767.723 8.448
26.0 7812.566 32767.723 8.448
27.2 7812.567 32767.719 8.576
31.0 7812.576 32767.681 9.728
35.4 7812.597 32767.593 12.416
41.1 7812.636 32767.430 17.408
48.4 7812.715 32767.098 27.520
54.2 7812.798 32766.750 38.144
59.8 7812.899 32766.327 51.072
63.5 7812.974 32766.012 60.672
68.8 7813.094 32765.509 76.032
73.4 7813.207 32765.035 90.496
77.7 7813.363 32764.381 110.464
82.5 7813.485 32763.869 126.080
De initiële spreiding is gigantisch te noemen, dat was (en is) alleen op te lossen met afregelen en/of selecteren van componenten. Je kunt ze ook door de fabrikant laten selecteren (noemen ze dan precisie kristallen), maar je betaalt het wel...
De boel verloopt ook met de tijd (veroudering), die is voor dit type kristal (stemvork) best wel groot: na drie cycles -29° - +80° was de frequentie al 2ppm verlopen...
De temperatuursafhankelijkheid is ook niet mis: deze kristallen worden in principe gemaakt voor een gemiddelde temperatuur van 26° (de gemiddelde polstemperatuur over 24 uur). De PCF8573 heeft geen temperatuurcorrectie (de DS1307 trouwens ook niet), dat was toen dus alleen met een oven of lastige software (NTC, ijktabellen etc) op te lossen. Geen enkele condensator heeft een temperatuurcoefficient die groot genoeg is om dit te compenseren, ik heb getest met P100, N750 en N1500: nauwelijks verschil. Er zijn tegenwoordig wel tempertatuurgecompenseerde RTCs, maar die zijn dan natuurlijk weer een druppie duurder...
Samengevat: als je precieze tijd wilt bijhouden, ontkom je voor horlogekristallen niet aan afregelen en de een of andere vorm van temperatuurcompensatie. Beginnen met een correct belast 4.096MHz (AT) kristal en dan afdelen is een stuk stabieler.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Erg grote afwijkingen worden meestal veroorzaakt door een verkeerde lay-out of verkeerde kristalkeuze. (zomaar een kristal eraan hangen gaat niet)
De lay-out moet goed zijn (zie AN58), en de kristalcapaciteit 12.5pF. Liefst ook zo laag mogelijke tolerantie.
Deze is 12.5pF en 10ppm: http://nl.farnell.com/abracon/abs25-32-768khz-1-t/crystal-32-768khz-12…
EricP
mét CE
Leuk stukkie, fatbeard. Ik wist (gebaseerd op ervaring van een 100-tal gelijktijdig draaiende, 'identieke' RTCs) wel dat er een behoorlijk spreiding in zit - zelfs als alle Xtals gelijktijdig gekocht zijn (op 1 reel, je zou kunnen aannemen dat ze uit dezelfde batch komen).
Wat mij wel verbaast, is dat die dingen normaal op '32kHz' zitten. Jou meetwaarden (1e serie) doen 320kHz vermoeden. Wat ik verder niet snap, zijn je periode tijden. Bij 7800μs hoort een frequentie van 128Hz. Zit er nog ergens een deler tussen??? Bij 32kHz zou je iets van 30μs verwachten. Leg eens uit...
Verder gaf ik al de hint naar de DS32kHz. Daar zit die temperatuur compensatie in (en waarschijnlijk zijn ze nog wat verder gecompenseerd zodat ze bij vertrek fabriek hun 2ppm halen).
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Hij zegt dat het 32kHz kristallen zijn en heeft ter lering en vermaak van ons snel wat "interne" tabellen aan ons voorgeschoteld. Die waren eigenlijk bedoeld voor hemzelf. Hij begrijpt wat er bedoeld wordt: hij was zelf de "beoogde doelgroep".....
Jou eerste opmerking over 320kHz is niet juist. (die bestaan niet of nauwelijks) De kristallen zijn zoals vermeld 32kHz, de eenheden in de tabel zijn deci-Hz. typefoutje. sorry.
En inderdaad, er zal allicht een aantal periodes geteld zijn die samen die 7000 nogwat microseconden vormen. (update: even gerekend: Het zijn 256.0 periodes... Herken je het getal?).
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
@EricP: De frequentie in de tabellen is gewoon omgerekend vanaf de periodetijd, en in tabel 1 heb ik daar een foutje bij gemaakt (nul teveel in de formule -> komma verkeerd). Het was al laat 
EDIT: is aangepast
@rew: Ik ben géén doelgroep, dat mag niet meer van de dokter 
Maar inderdaad, er had wel iets mee bij gemogen. Van beide kanten 
De PCF8573 heeft een uitgang specifiek voor het afregelen, die geeft inderdaad een gedeeld signaal af zodat de oscillator niet beïnvloed wordt door de probecapaciteit. En omdat de meeste frequentiemeters moeite hebben met zo'n lage frequentie wordt daar gewoonlijk de periodetijd gemeten...
Uiteindelijk zijn we als optie inderdaad die DS32kHz gaan gebruiken, de standaard units deden het met een simpel RTC chipje.
Deze application note van ST geeft een heldere uiteenzetting van het wat, hoe en waarom van temperatuursafhankelijkheid en -correctie, en haalbare nauwkeurigheden.
EricP
mét CE
Het is je vergeven
Het blijft best interessante materie.
Overigens zal het mij niks verbazen als die DS32kHz intern harder loopt (die Xtals schijnen makkelijker te maken te zijn... heb ik me laten vertellen) en dan de boel intern deelt.
Heb je ook nog meetresultaten van die DS32kHz? Of is die er eens in gedouwd, 'works', 'ship it'?
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Helaas, die DS32kHz hebben we niet bemeten, (we waren toen ook al zeven(!)) jaar verder. Uiteindelijk zat het zo in elkaar:
C28 en C29 zijn supercaps, die moesten het geheel minimaal 48 uur in de lucht houden bij spanningsuitval.
Die m41t81 rtc chip heeft wel een mogelijkheid voor temperatuurcompensatie, maar die vereist een externe temperatuurmeting en ingrijpen van de besturende processor (en daar was geen ruimte/tijd/mankracht voor om te implementeren).
Tegenwoordig heb ik niet meer de beschikking over de benodigde meetmiddelen, dus (temperatuur)metingen kan ik niet meer doen (ik heb nog wel zo'n DS32kHz rondzwerven, dus wie weet).
EricP
mét CE
Jammer, maar niet onverwacht. De specs zijn wel aardig, al lijken ze ook te verouderen. Ik mis nu vooral de meetapparatuur nauwkeurig genoeg voor absolute metingen (ofwel: niet geijkt / gecalibreerd). Relatief zou wel moeten kunnen. Ik moet ook nog een paar van die dingen hebben. Heb toen ooit eens een paar samples gevraagd en er daar 2 van gebruikt. De rest is in de lade geland (en voor productie zijn ze door de PCB-volplak-toko ingekocht).
Je kunt ook een DS3231 gebruiken, deze heeft een temperatuur compensatie en zou rond de 2 minuten afwijking per jaar hebben. Of een DS3232 als je ook ingebouwde RAM wilt.
Even een andere invalshoek. Ik heb een aantal maanden geleden behoorlijk lopen stoeien met de Microchip MCP79410, die was niet nauwkeurig te krijgen. Heel veel 32768Hz kristallen en bijbehorende C's uitgeprobeerd maar nauwkeurig is het niet geworden. Uiteindelijk bleek dat als je de MCP79410 voortdurend blijft uitlezen via de I2C bus, wat ik deed met het testprogramma (eindeloze loop), door de voortdurende activiteit op de I2C bus het IC onnauwkeurig gaat lopen. Nadat ik het testprogramma gewijzigd had en de MCP79410 nog maar 2-10x per seconde ging uitlezen werd alles opeens verschrikkelijk stabiel. Ik heb mijn testschakeling nog 3 maanden laten doordraaien en de afwijking na deze periode was ergens tussen de 2 en 3 seconden; in 3 maanden dus. Theoretisch is dat weer veel te weinig gezien de afwijking van het kristal maar ik had intussen wel dure nauwkeurige kristallen in de schakeling gezet.