net wat geëxperimenteerd met beide modules.
Ik slaagde erin om beide te laten synchroniseren met DCF77.
Daarbij ondervind ik een verschil tussen beide, dat ik nergens gedocumenteerd vind en waarover de datasheets - voor zover ik alles begrijp - geen uitsluitsel bieden: bij de synchronisatie worden bij de DS3231 ook de seconden en de eventuele (onzichtbare) milliseconden duidelijk op 0 gezet, zodat de klok echt juist ingesteld wordt, maar bij de DS1307 loopt het iets anders.
Het lijkt erop dat daarvan de seconden wel op nul gesteld worden, maar het 'restje' na de komma niet. Mijn DS1307 heeft een eerder grote afwijking, zodat de module snel een halve seconde voor loopt. Bij nulstelling blijft de module altijd deze fractie van een seconde voor lopen.
Iemand ook die ervaring?
Iemand met een oplossing? Het zou namelijk heel leuk zijn om de goedkopere DS1307 even secuur werk te laten afleveren dankzij DCF77.
Ik gebruik de bibliotheek RTClib.h en de synchronisatie voer ik uit met
De sketch decodeert het DCF-signaal en zorgt voor de hierboven gebruikte variabelen.
Voor beide modules gebruik ik één en dezelfde sketch op een standalone ATMega328, waarbij ik de modules gewoon op het breadboard zelf ruil.
De DS3231 datasheet zegt: "The countdown chain is reset whenever the seconds register is written".
De DS1307 datasheet zegt: "The divider chain is reset whenever the seconds register is written.".
Dus volgens mij zouden ze beiden vooraan beginnen.
Ik weet niet of er namaak DS1307 chips zijn. Volgens deze site waarschijnnlijk wel: https://www.sciencetronics.com/greenphotons/?p=798.
Als dat zo is, dan kun je misschien een "echte" DS1307 bestellen en testen.
Je gebruikt de Adafruit RTClib ? Die zou voor beide chips geen verschil mogen maken.
Dankjewel voor de insteek, Koepel. Ik probeer wegwijs te raken in de jungle van namaak al zijn de problemen die in het artikel beschreven zijn van een andere orde. Van geblokkeerde I2C bus, warme chip,... heb ik tot nog toe geen last gehad. De enige problemen van mijn exemplaar van de DS1307 is een grote onnauwkeurigheid (al blijkt dat niet abnormaal) en het feit dat de interne teller van de fracties van seconden niet op 0 gesteld worden.
RTClib werkt inderdaad perfect voor beide chips, ik kan ze gewoon ruilen op het breadboard, zelfs met de power on (niet aanbevolen, ik weet het)
Intussen met beide ontvangers wat eenvoudige testjes uitgevoerd met een sketch die het aantal geslaagde synchronisaties vergelijkt met het aantal niet-geslaagde.
Qua ontvangst kan ik ze moeilijk van elkaar onderscheiden, het lijkt er niet meteen op dat de HKW module spectaculair veel ongevoeliger is voor storingen o.i.d.
Wat ik wel vaststel: de Conrad module reageert iets trager dan de HKW-module. De start van de actieve puls komt van de Conrad module doorgaans 10 tot 20 ms later.
Voor zover ik weet heeft de DS3231 idd een inwendige temperatuurscompensatie zodat de frequentie van het kristal constanter blijft. Dat onderscheid met de 1307 is echter niet de grond van mijn probleem. Daar gaat het over wat de chip met de milliseconden doet wanneer de tijd opnieuw ingesteld wordt. Mij lijkt het dat de ds3231 ook de cijfers na de komma op 0 zet, terwijl de 1307 dat niet lijkt te doen. Dat blijkt nergens uit de beide datasheets. Toegegeven, het kan muggenzifterij lijken, maar wanneer je met DCF77 synchroniseert moet het voor mij ook precies zijn.
The countdown chain is reset whenever the seconds regis-ter is written. Write transfers occur on the acknowledgefrom the DS3231.en dat is in de 1307 niet zo, dat verklaart het verschil. De tijd zou dus theoretisch tot 1 seconde anders kunnen zijn.