Hallo,
ich möchte neben der Uhrzeit und das Datum nun auch gerne die Temperatur
auswerten können.
Hier mal der Inhalt aller Register des DC3231, welcher hier am ATmega
angeschlossen ist.
45 20 12
00
21 04 18
00 00 00 00
00 00 00
04
00
00
2f c0
Das Datum und die Uhrzeit stimmen auffallend. ;-)
Nur mit den Temperatur Daten am Ende habe ich so meine Schwierigkeiten.
2f c0
Dazu heisst es im Datenblatt:
Temperature Registers (11h–12h)
-------------------------------
Temperature is represented as a 10-bit code with a resolution of 0.25°C
and is accessible at location 11h and 12h. The temperature is encoded in
two’s complement format. The upper 8 bits, the integer portion, are at
location 11h and the lower 2 bits, the fractional portion, are in the
upper nibble at location 12h. For example, 00011001 01b = +25.25°C.
Da ich auf Floats verzichten möchte rechne ich mir den Wert erstmal in
m°C um...
Nun, rechne ich das Beispiel, komme ich auf ein Ergbenis von: 2525 was
richtig wäre.
Rechne ich mit den tatsächlich ausgelesenen Werten, dann komme ich auf
--1625
Bei -16,25°C würde ich hier sicher nicht sitzen, es sollten um die 24°C
hier im Zimmer sein... ;-)
Hat jemand einen Tip was ich da übersehen habe?
Grüße AVRli...
AVRli .. schrieb:> (int8_t)(temp_msb << 2)
Das passt nicht immer in 8 bit, ist hier aber nicht das Problem. 16 bit
Variablen wären sicherer.
Datenblatt:
"Bit 5: Convert Temperature (CONV). Setting this bit to
1 forces the temperature sensor to convert the temperature
into digital code"
Wurde eine Messung durchgeführt?
A. F. schrieb:> Wurde eine Messung durchgeführt?
Ja würde ich behaupten, denn das Datenblatt sagt weiter unter dem Punkt
"Temperature":
"The temperature registers are updated after each user-initiated
conversion and on every 64-second conversion."
Würde nun denken, dass das ein "Selbstläufer" ist... halt alle 64
Sekunden ein Update.
Jetzt habe ich natürlich mal ein setzen des CONV Bit im Control Register
vorangestellt, das Erbenis ist leider das gleiche. :-(
AVRli .. schrieb:> Hier mal der Inhalt aller Register des DC3231
Heisst das Ding nicht DS3231? Schlecht für die Suchfunktion, allerdings
taugt die eh nichts.
Georg
AVRli .. schrieb:> Würde nun denken, dass das ein "Selbstläufer" ist... halt alle 64> Sekunden ein Update.>> Jetzt habe ich natürlich mal ein setzen des CONV Bit im Control Register> vorangestellt, das Erbenis ist leider das gleiche. :-(
Hier habe ich so gemacht:
jede 2,5 S. macht das diese Funktion:
georg schrieb:> Heisst das Ding nicht DS3231?
Ja... :-(
Kann den Titel nicht mehr ändern, vlt. kann das ein Moderator?
Ich melde den Beitrag mal...
Maxim B. schrieb:> Hier habe ich so gemacht:
Danke, hast Du eventuell mal ein paar Rohwerte zum Vergleich?
Habe jetzt mal das Control Register zyklisch mit ausgegeben, das CONV
Flag (BIT 5) bleibt immer gesetzt, das wird nie gelöscht.
Das lese ich etwas anders, das soll auf 0 gehen, wenn die CONVERTION
abgeschlossen ist. Ich vermute ja bald, daran wird es liegen...
AVRli .. schrieb:> hast Du eventuell mal ein paar Rohwerte zum Vergleich?
Die Uhr läuft bei mir gerade in Testmodus. Es wird 17:47:54 und +25,75°C
gezeigt.
AVRli .. schrieb:> Das lese ich etwas anders, das soll auf 0 gehen, wenn die CONVERTION> abgeschlossen ist. Ich vermute ja bald, daran wird es liegen...
Ich lese einfach alle Register zweimal pro Sekunde. Und unabhängig davon
lasse jede 2,5 Sek. Temperaturmessung starten.
Ich habe bei Timer jede 1 ms ISR. So wird alles Zeitliche damit
bestimmt. Jede 1 ms wird Drehgeber abgelesen. Jede 10 ms werden die
Tasten gelesen. jede 500 ms wird Uhr und Temperatur gelesen. Jede 2,5 S
Konversion.
1
ISR(TIMER0_COMPA_vect){// Timer 0 interrupt.
2
// Dauer 326 Zyklen = 20,375 us (16 MHz)
3
FLAGG|=(1<<F_PULS);// Flag fuer Puls einsetzen
4
drehgeber_abfrage();// jede 1 ms gemacht
5
led_aus_time();
6
lcd_puff_lcd();// LCD erneuern
7
}
In main:
1
while(1){
2
3
// Bedienung von Puls 1 ms
4
if(FLAGG&(1<<F_PULS)){
5
FLAGG&=~(1<<F_PULS);// Flag fuer Puls = 0
6
timer3_10ms_puls();
7
timer3_500ms_puls();
8
}
9
}
1
voidtimer3_10ms_puls(void){// Bedienung von Puls (10 ms)
2
staticcharaa=10;
3
aa--;// Divider auf 10
4
if(!aa){
5
aa=10;
6
knopf_abfrage();// jede 10 ms gemacht
7
8
logik_tasten();
9
logik_drehgeber();
10
}
11
}
12
13
voidtimer3_500ms_puls(void){// Bedienung von Puls (500 ms)
14
staticintaa=500;
15
staticunsignedcharbb=5;// Bedienung von Puls (2,5 s)
16
aa--;
17
if(!aa){
18
aa=500;
19
ds3231_put_time(61);
20
ds3231_put_wday(41);
21
ds3231_put_temperatur(71);
22
23
bb--;
24
if(!bb){
25
bb=5;
26
ds3231_temp_start();
27
}
28
}
29
30
}
In put-Funktionen wird Platz in LCD angegeben, wohin die Daten
geschrieben werden.
> rechne ich mir den Wert erstmal in m°C um
Sind es nicht c°C?
> Bei -16,25°C würde ich hier sicher nicht sitzen
Durch die zweifache Linksverschiebung von 0x2F wird das Vorzeichen
gesetzt.
Wenn ich allerdings dieses 0x2F 0xC0 nach dem Datenblattzitat rechne,
komme ich auf 47.75 °C, auch keine gemütliche Umgebungstemperatur - was
mache ich falsch?
Hallo,
man muss nur wie gezeigt Register 0x11 und 0x12 auslesen, MSB und LSB
verodern, um 6 Stellen nach rechts schieben und mit 0,25 multiplizieren.
Dann hat man den Fließkommawert in °C.
S. Landolt schrieb:> Wenn ich allerdings dieses 0x2F 0xC0 nach dem Datenblattzitat rechne,> komme ich auf 47.75 °C, auch keine gemütliche Umgebungstemperatur - was> mache ich falsch?
Danke das Du Dir das im Detail mal mit ansiehst!
Ja das habe ich nun mit der Korrektur der "Vorzeichen Geschichte" beim
schieben auch raus. :-(
Drei Sachen geben mir zu denken...
1. Ich lese genau wie ALLE Beispiele hier 2 Byste ab Adresse 0x11 ein.
2. Das CONV Flag wird im Control Register aber nie gelöscht
3. Scheint auch als das die Uhr nicht genau läuft. Sie ist nun 10h im
Betrieb und geht schon 37 Sekunden nach. Scheint als hätte ich hier eine
nicht ganz so "Extremely Accurate I2C-IntegratedRTC" ;-)
S. Landolt schrieb:> ... mal davon ausgehend, dass kein Leistungsbauteil direkt neben dem> DS3231 sitzt.
Nein, liegt hier auf dem Schreibtisch und das IR Thermometer zeigt 28,3
°C an also in der Richtung sollte auch was raus kommen. Das ist alles
etwas kurios. :-(
Was kann man denn noch falsch machen, wenn die anderen Bytes in Ordnung
sind?
Grüße AVRli...
AVRli .. schrieb:> Was kann man denn noch falsch machen, wenn die anderen Bytes in Ordnung> sind?
Vielleicht liegt es gar nicht an Deinem Code und es ist möglicherweise
ein DS3231 aus zweifelhafter Herkunft.
Hier ist ein REG Dump von meinem DS3231:
RTC RAM dump:
01 43 16 00 21 04 18 00 00 00 00 00 00 00 00 00
00 14 C0
DS3231 REG dump:
CTL: 00
STA: 00
AGO: 00
TMSB:14
TLSB:C0
Umgerechnet ist die Temperatur: 20.75 DEGC. Ein in der Nähe liegender
TMP101 zeigte gerade 21.2 Grad an.
AVRli .. schrieb:> 3. Scheint auch als das die Uhr nicht genau läuft. Sie ist nun 10h im> Betrieb und geht schon 37 Sekunden nach.
Dann wird es wohl Zeit, sich mal um das Aging Offset Register zu
kümmern.
Wolfgang schrieb:> AVRli .. schrieb:>> 3. Scheint auch als das die Uhr nicht genau läuft. Sie ist nun 10h im>> Betrieb und geht schon 37 Sekunden nach.>> Dann wird es wohl Zeit, sich mal um das Aging Offset Register zu> kümmern.
Sollte normalerweise nicht notwendig zu sein. Der abgebildete DS3231
läuft bei mir schon seit zwei Jahren mit einer mittleren Abweichung von
10s/Jahr ohne daß ich am AGO herum gefummelt hatte.
Ein in meiner Wetterstation eingebauter DS3234 läuft seit 18 Monaten mit
weniger als 1 Minute/Jahr Abweichung bei Außentemperaturen von -35 Grad
bis +32.
Wirkliche Qualitätsvergleiche sind meiner Meinung nach nur fair mit
Original Fabriks ICs. Bei China Importen weiß man nie genau was man da
bekommt.
AVRli .. schrieb:> For example, 00011001 01b = +25.25°C.>> Da ich auf Floats verzichten möchte rechne ich mir den Wert erstmal in> m°C um...> int16_t calctemp;> uint8_t temp_msb, temp_lsb;>> temp_msb = 0x2f;> temp_lsb = 0xc0;
ich komme nicht auf deine Werte
aber ich weiss das Fleurys & me Code schon seit Jahren das Richtige
liefert.
Gerhard O. schrieb:> Vielleicht liegt es gar nicht an Deinem Code und es ist möglicherweise> ein DS3231 aus zweifelhafter Herkunft.
Dann falle ich um wenn es daran liegt.
Das Problem ist nun, woran erkenne ich das ich ein Original habe? :-D
Ich dachte mir, kaufste bei einem Händler der damit wirbt für gute
Arduino Baugruppen zu stehen. Kein China-Direkt-Import. Aber bei den
Preisen würde mich da auch nichts mehr wundern...
Kann einer eine zuverlässige Quelle nennen?
Gerhard O. schrieb:> Hier ist ein REG Dump von meinem DS3231:
Ohh cool, Danke!
Kannst Du mal schauen, was passiert wenn Du BIT5 im CONTROL Register
setzt? Ob das nach der Temperaturwandlung vom Chip wieder gelöscht wird?
(Danke an den Unbekannten der meinen schusseligen Beitragstitel
korrigiert hat!)
Fahre jetzt zum Kumpel, der hat das gleiche Modul, allerdings beim
gleichen Händler gekauft, das hole ich mir mal für einen Vergleich.
Die Uhr geht nun schon 3 Minuten nach...
Schöne Grüße, AVRli...
Gerhard O. schrieb:> Sollte normalerweise nicht notwendig zu sein.
So die Theorie.
Wenn aber die Praxis sagt, dass da was nicht stimmt, wird man erstmal
gucken, ob die Versorgungsspannung ok ist und dann als nächstes nach
Justagemöglichkeiten suchen - das Aging Register zählt dazu.
> ... Versorgungsspannung ...
Hätte ich auch vorgeschlagen, wenn es der nackte Chip wäre, aber beim
Modul? Ich kenne die Teile nicht, aber ist da nicht eine Stützbatterie
integriert?
> ... Aging Register ...
Bei 3 Minuten pro Tag, also einem Delta von 2.08*10^-3? 2080 ppm mit
diesem 8-bit-Register korrigieren, wie geht das?
S. Landolt schrieb:>> ... Aging Register ...> Bei 3 Minuten pro Tag, also einem Delta von 2.08*10^-3? 2080 ppm mit> diesem 8-bit-Register korrigieren, wie geht das?
Wenn der Justagebereich nicht ausreicht und es keine weiteren
Möglichkeiten für einen Eingriff in den Gang der Uhr gibt, bleibt nur
Wegschmeißen.
Wer weiss, warum das Modul zu diesem Preis vom Händler auf den Markt
gebracht werden konnte - Restrisiko beim Billigkauf.
Ob ein Kistenschieber von chinesischen Modulen immer sooh genau weiss,
was er da schiebt, bin ich mir nicht sooh sicher.
Da ist ja auch noch das Eingangsproblem, die falsche Temperatur, und
diese lässt sich, wenn ich das Datenblatt hinreichend überflogen habe,
nicht korrigieren, und sie wird auch immer die Ganggenauigkeit
verderben.
Aber warten wir mal ab, was der Vergleich mit dem Modul des Kumpels
ergibt.
Ich danke Euch das ihr mit mir am Ball bleibt!
Habe das zweite Modul hier und habe es dran und?
Das gleiche Ergebnis... :-(
Das Temperaturregister MSB enthält den Wert 2f, lustig finde ich das
nicht mehr.
Wolfgang schrieb:> gucken, ob die Versorgungsspannung ok ist
Da sagst Du was, habe ih mal gemacht.
5,0 V vom Board und 3,3 V von der Backup Batterie.
Da das Modul für 3,3 V - 5,0 V Betrieb spezifiziert ist, habe ich da
keine weitere Bedenken gehabt.
S. Landolt schrieb:> Ändert sich dieser Wert wenigstens?
Ja das schon, also lege ich die Finger auf den Chip steigt der Wert an,
nach gut 2 Minuten habe ich:
MSB 0x32
LSB 0x40
Habe auch mal ein Bild vom Modul gemacht...
AVRli .. schrieb:> Schöne Grüße, AVRli...
vielleicht habe ich deinen Code nicht verstanden, es mir nicht
geluungen, aber mit deinen Werten und deinem Code das Richtige zu
entlocken.
Auch wenn ich deine Werte in meinen Code einfüge kommt da nichts
passendes raus.
AVRli .. schrieb:> temp_msb = 0x2f;> temp_lsb = 0xc0;
mit deinen Werten rechnet auch meine Routine 46,7°C
komisch, ich weiss auch nicht weiter
1
// read Temp
2
Wire.beginTransmission(DS1307_ID);// DS anwaehlen
3
printIIC(MSB_TEMP);// MSB Byte anwaehlen
4
Wire.endTransmission();
5
Wire.requestFrom((DS1307_ID),2);// request temp Hi und Temp low 2 Byte
6
// __temp = (readIIC() & 0x00ff); // mit 0x00ff unddieren weil Arduino 16 Bit liest aber nur 8 Bit kommen.
7
__temp=(0x2f&0x00ff);// mit 0x00ff unddieren weil Arduino 16 Bit liest aber nur 8 Bit kommen.
8
__temp<<=8;
9
// __temp |= (readIIC() & 0x00ff); // mit 0x00ff unddieren weil Arduino 16 Bit liest aber nur 8 Bit kommen.
10
__temp|=(0xc0&0x00ff);// mit 0x00ff unddieren weil Arduino 16 Bit liest aber nur 8 Bit kommen.
Hallo,
habs auch nochmal nachgestellt, bin auch der meinung das die
ausgelesenen Werte aus den beiden Registern nicht stimmen.
1
data: 00000000.00101111 MSB
2
data: 00101111.00000000 << 8
3
data: 00000000.11000000 LSB
4
data: 00101111.11000000 OR LSB
5
data: 00000000.10111111 >> 6
6
47.75
Wegen dem CONV Bit. Dass muss man nur beachten wenn man selbst eine
Temperaturmessung anschuppst. Von der Sache her benötigt man das nicht,
weil der IC aller 64s selbst eine Messung durchführt. Das heißt du
kannst ständig die Temp. auslesen, bekommst aber nur aller 64s einen
neuen Wert vom IC.
Wenn du zügig das CONV Bit ausliest und es steht immer auf 1, dann macht
er nie eine neue Messung. Wenn CONV und BSY auf 0 stehen ist eine
Messung fertig. Das dauert jedoch keine Sekunde.
Edit:
versuche es einmal ohne die Batterie. Dann Vbat connect to ground.
Veit D. schrieb:> habs auch nochmal nachgestellt, bin auch der meinung das die> ausgelesenen Werte aus den beiden Registern nicht stimmen.
der TO sollte mal das BSY Flag prüfen bevor er die Temperatur liest
//check busy
Wire.beginTransmission(DS1307_ID);
printIIC(STATUS_REGISTER);
Wire.endTransmission();
Wire.requestFrom( ( DS1307_ID ), 1); // request Status
Register 1 Byte
if ((readIIC() & 0x00ff) & (1<<BSY)) // auf busy pruefen mit
0x00ff unddieren weil Arduino 16 Bit liest aber nur 8 Bit kommen.
i2c_test_flags|=(1<<I2C_RTC_TEMP_BSY); // Flag busy
setzen
else
i2c_test_flags&=~(1<<I2C_RTC_TEMP_BSY); // Flag busy
loeschen
Wire.endTransmission();
if( !(i2c_test_flags&(1<<I2C_RTC_TEMP_BSY)) )
{
// read Temp
Joachim B. schrieb:> AVRli .. schrieb:>> temp_msb = 0x2f;>> temp_lsb = 0xc0;>> mit deinen Werten rechnet auch meine Routine 46,7°C
Um den Wert aus den Temperaturregister grob zu prüfen, kann man auf
großartige Routinen zur Umrechnung erstmal völlig verzichten. Das
schafft nur zusätzlich Fehlerquellen sowohl bei der Bitschieberei als
auch bei der anschließenden Rechnerei.
Laut Datenblatt liegt unter der Adresse 11h der ganzzahlige Anteil des
Celsius-Temperaturwertes und solange der bei Raumtemperatur nicht
irgendwo zwischen 20..27dez (14h..1Bh) liegt, oder wie sommerlich auch
immer die Raumtemperatur ist, kann man sich irgendwelche Fummelei mit
den Bits, Floating-sonstwas-Routinen oder abgefahrene m°C-Tricksereien
sparen.
Aber ihr kommt auch alle auf das Ergebnis, was nicht stimmen kann.
Veit D. schrieb:> Wenn du zügig das CONV Bit ausliest und es steht immer auf 1, dann macht> er nie eine neue Messung. Wenn CONV und BSY auf 0 stehen ist eine> Messung fertig. Das dauert jedoch keine Sekunde.
Ja das CONV Bit bleibt auf 1, ich kann es zwar löschen aber von allein
geht das nicht auf 0! Auch nach Stunden nicht...
Das BUSY Flag im Status Register ist immer 0, habe ich noch nie als 1
ausgelesen.
my2ct schrieb:> Um den Wert aus den Temperaturregister grob zu prüfen, kann man auf> großartige Routinen zur Umrechnung erstmal völlig verzichten.
Da muss ich Dir Recht geben, also der Ganzzahlanteil muß im MSB schon
passen. Mit dem LSB kann man dann ja nur noch 0.00/0.25/0.50/0.75
bestimmen.
Veit D. schrieb:> versuche es einmal ohne die Batterie. Dann Vbat connect to ground.
Das habe ich auch mal gemacht, dann bekomme ich im Status Register das
Bit angezeigt, das der Oszillator still stand. Meine Meldung "BAT
prüfen" kommt auch und setzt das Bit dann zurück. Aber die Temperatur
Register haben die gleichen Werte also nun irgendwas um 0x30 im MSB,
hatte es ja in der Hand.
Ich glaube auch so langsam der Chip oder die Chips haben ein Defekt.
Du kannst 2-3 andere Module ausprobieren. Solche Sachen kauft man
sowieso immer mehrere gleich, die sind ja sehr billig... Wenn auch mit
anderen immer so, dann hast du Problem woanders.
Wen du das nicht festgelötet hast, dauert so eine Prüfung nur ein paar
Sekunden.
Maxim B. schrieb:> Solche Sachen kauft man> sowieso immer mehrere gleich,
ich immer mindestens 2 Stück, denn eines kann ja gleich kaputt sein oder
ich kille es. Bei 2 kaputt muss man halt nachforschen.
- die ausgelesene Temperatur ist ca. 20 Grad zu hoch
3
- Temperaturänderung:
4
Finger aufdrücken bringt +3 Grad: kann hinkommen
5
- die Zeit stimmt nicht:
6
-37 s / 10h: -1028 ppm
7
-3 min / 22 h: -2273 ppm
8
merkwürdig, läuft das wirklich davon?
9
- ein zweites Modul aus derselben Charge zeigt dasselbe Verhalten
10
(zumindest bezüglich der Temperatur)
Tja, hilft jetzt nicht wirklich weiter.
Ich muss aber doch meiner Enttäuschung Ausdruck geben: dieselben Leute,
die mir noch vor kurzem diese RTC-Module als die beste Lösung anpriesen,
geben jetzt nur den Rat, die Dinger gleich sackweise einzukaufen.
S. Landolt schrieb:> dieselben Leute,> die mir noch vor kurzem diese RTC-Module als die beste Lösung anpriesen,> geben jetzt nur den Rat, die Dinger gleich sackweise einzukaufen.
Das ist aber immer so, wenn man etwas mit Elektronik macht. Du solltest
zuerst Minimum von Widerständen, Dioden, Kondensatoren, populären
Transistoren und IC haben, vor dem du überhaupt am ersten mal deinen
Lötkolben nimmst.
Es ist immer damit zu rechnen, daß du:
1. etwas kaputt machst
2. fehlerhafte Detail bekommst
3. Ersatz mit ein bißchen anderen Daten brauchst
usw.
Wenn du etwas mit ATmega machst und nur 1 St. Mega gekauft hast, so wird
dein Vorhaben mit Garantie scheitern. Genau so mit RTC und mit allen
anderen Sachen.
Hast du das nie gewußt?
Elektronik ist ein teures Hobby. Noch teurer ist nur Musik :)
S. Landolt schrieb:> Ich muss aber doch meiner Enttäuschung Ausdruck geben: dieselben Leute,> die mir noch vor kurzem diese RTC-Module als die beste Lösung anpriesen,> geben jetzt nur den Rat, die Dinger gleich sackweise einzukaufen.
Soweit ich mich erinnere, gehöre ich nicht dazu....
;-)
Denn ich rate zur ChronoDot.
Aus mehreren Gründen:
1. da ist nicht diese unsägliche Ladeschaltung drauf
2. Keine stromfress LED
3. keine Pullups drauf, aber vorbereitet
Als Nachteil, könnte man das fehlende EEPROM anführen.
Und die etwas exotischere Batterie, die CR1220
Aber dessen Thermosensoren zeigen auch in die Wiese.
Zumindest die, welche ich gerade getestet habe, liegen ca 2 bis 3 Grad
zu hoch.
(hat mich vorher noch nicht interessiert)
S. Landolt schrieb:> - die ausgelesene Temperatur ist ca. 20 Grad zu hoch
Woraus schließt du das?
Wäre es nicht auch möglich, dass sie einen Faktor 2 zu hoch ist?
Man sollte zumindest mal bei ein paar Punkten eine Kalibrierung mit
einem halbwegs vernünftigen Referenzthermometer durchführen (z.B.
Gefrierschrank, Kühlschrank, Raumtemperatur)
S. Landolt schrieb:> Ich muss aber doch meiner Enttäuschung Ausdruck geben: dieselben Leute,> die mir noch vor kurzem diese RTC-Module als die beste Lösung anpriesen,> geben jetzt nur den Rat
also bitte
für 5x Stück mit LiR Akku 12,95 bekommt man hier nicht mal die LiR
zugeschickt
Bei mir ist an jedem Arduino oder ESP32 eine RTC dran, das soll auch
laufen wenn mal keine Verbindung zum Router ist oder nur ein
Steckernetzteil am Arduino hängt.
wie gesagt, wer nur ein Modul bestellt muss immer damit rechnen das
eines kaputt ist oder das man es beim Basteln killt.
Ich habe noch kein RTC Modul gekillt und auch kein defektes RTC Modul
bekommen (aber 2x defekte ESP32 Module) und auch letztens mein Arduino
migthy mini 1284p geschrottet, Fehler passieren (ISP falsch gesteckt)
S. Landolt schrieb:> Also mal zusammengefasst:> - die Kommunikation scheint korrekt abzulaufen> - die ausgelesene Temperatur ist ca. 20 Grad zu hoch> - Temperaturänderung:> Finger aufdrücken bringt +3 Grad: kann hinkommen> - die Zeit stimmt nicht:> -37 s / 10h: -1028 ppm> -3 min / 22 h: -2273 ppm> merkwürdig, läuft das wirklich davon?> - ein zweites Modul aus derselben Charge zeigt dasselbe Verhalten> (zumindest bezüglich der Temperatur)>> Tja, hilft jetzt nicht wirklich weiter.
Soweit richtig, würde noch ergänzen wollen:
- CONV Flag wird nie gelöscht
Ich glaube ja bald das die Temperatur und das zunehmende Nachlaufen der
Zeit direkt etwas miteinander zu tun haben. Damit ist das Modul nicht zu
gebrauchen.
Ich habe jetzt nochmal Module bestellt, welche einen anderen Aufbau
haben aber wieder den DS3132. Sie haben die Ausgänge 32kHz und INT
nicht, die brauche ich aber ehh nicht.
Ich werde berichten was dann damit ist. Die anderen kann ich zum Glück
noch zurück geben, muss das ganze aber noch verifizieren. Will mich da
auf keinen Fall blamieren! ;-)
Zu der Diskussion sackweise einzukaufen halte ich nicht viel. Klar kann
immer mal was defekt sein nur deshalb leg ich mir ja nicht von jedem
Teil Ersatz (vlt. x-mal) in den Schrank. Wenn ich ein Modul kaufe, kaufe
ich das so oft ich das benötige.
Ich bastle nun seit über 25 Jahre und hatte noch nie einen Chip, der
nicht das gemacht hat, was im Datenblatt stand. Davon mal abgesehen hat
ein Modul 9,50€ gekostet, da erwarte ich was anderes! Wenn mir das mit
einem 1,20€ China Modul passiert wäre... OK.
(Wenn das vlt. sogar nicht alles der gleiche Schrott ist, wer weiß das
schon!)
Wäre ich nicht auf die Idee gekommen die Temperatur auszuwerten, hätte
ich gedacht am Chip kann das nicht liegen, wenn die Uhr nachgeht.
Grüße AVRli...
> Ich bastle nun seit über 25 Jahre und hatte noch nie einen Chip,> der nicht das gemacht hat, was im Datenblatt stand.
Bei mir ist es doppelt so lang, und die Erfahrung ist dieselbe. Das gilt
übrigens auch für komplette Geräte, ich kann mich an keines erinnern,
welches gleich zu Beginn defekt war.
(Erst in jüngster Zeit rauchte beim ersten Einstecken ein
Steckerschaltnetzteil, trotz "Q.C. passed")
S. Landolt schrieb:> An Gerhard O., es fällt mir jetzt erst auf:>>> ... Außentemperaturen von -35 Grad ...>> Welche (Welt-) Gegend ist das?
Edmonton, Alberta. Kanada.
Die kälteste Wintertemperatur die mir früher mal begegnet ist, lag bei
-45 Grad. In den letzten 20 Jahren war es nie kälter als -35. Meistens
dauern solche Kälteeinbrüche nie langer als eine Woche.
Gruß,
Gerhard
> Edmonton, Alberta. Kanada.
Ahh...
Das weckt Erinnerungen an einen wunderbaren Urlaub zu zweit, vier Wochen
Kanada, zwei USA. Tempi passati, "sauer werden süße Dinge".
Ich habe noch ein paar (4) DS3231 Module rumliegen und werde sie später
mal testen. Muß erst noch frühstücken:-) Gestern probierte ich noch ein
selbst gebautes Modul mit dem DS3232 aus und die Temperatur wurde genau
angezeigt.
Bei Vergleichsmessungen richte ich immer einen kleinen Lüfter auf die
RTC Bord und die im Bild gezeigte TMP101 Bord um eine möglichst gleiche
Umgebungstemperatur sicher zu stellen. Wie das Bild zeigt stimmen die
gemessenen Temperaturen gut miteinander überein.
Die massive Gangungenauigkeit gibt mir auch zu denken. Der
Einstellbereich des Aging Register hat ja nur einen kleinen
Einstellbereich und eine Abweichung vom Default Wert hat übrigens eine
Temperaturkompensations Degradierung zur Folge.
Meine beidene im Einsatz befindlichen China Module arbeiten absolut
einwandfrei. Meine Module wurden übrigens mit der LR2032 ladbaren Zelle
geliefert. Inwieweit die Ladeschaltung auf die Dauer sicher ist habe ich
noch nicht untersucht.
Beim Kauf solcher Module beachten, sofern sie für den Ausseneinsatz in
Frage kommen, daß der DS3231 keine kommerzielle Temperaturausführung
ist. Wenn ich mich recht erinnere haben kommerzielle Ausführungen mit
0-70 Grad einen "N" am Ende.
Machte beim DS3234 eine schlechte Erfahrung bei der Wetterstation. Der
Gangfehler war dann bei -18 Grad absolut astronomisch.
Gruß,
Gerhard
Hallo,
der Fall ist schon seltsam. Eigentlich funktionieren die Teile.
Meine zwei laufen pro Jahr ca. 1-2 Sekunden falsch.
Ich hoffe du hast die neuen bei einem anderen Händler gekauft mit guter
Bewertung.
Ist es möglich, daß trotz aller bisherigen Bemühungen eine
Bitverschiebung beim Einlesen vorgekommen ist?
Ich finde es etwas merkwürdig, daß der Wert 0x2F beim Shiften nach
rechts um ein Bit den Wert "0x17" ergibt. Das wäre zufällig ein
plausibler Wert mit 23.75 Grad.
Dann stimmt der Teil wieder. Erklärt allerdings nicht die
Gangungenauigkeit.
Beim Betrachten des Bildes Deiner RTC fiel mir auf, daß es dieselbe Bord
wie bei mir ist.
AVRli .. schrieb:> S. Landolt schrieb:>> Ändert sich dieser Wert wenigstens?>> Ja das schon, also lege ich die Finger auf den Chip steigt der Wert an,> nach gut 2 Minuten habe ich:>> MSB 0x32> LSB 0x40>> Habe auch mal ein Bild vom Modul gemacht...
Das wären mit Shift 25.25 Grad (0x19)
S. Landolt schrieb:> Sollte dann aber nicht auch der Bruchwert, das 0xC0, verschoben> sein?> 0x60 gibt es jedoch lt. Datenblatt nicht.
Das stimmt. Es wäre merkwürdig wenn nur der Temperaturwert verschoben
sein sollte. Was für ein Rätselspiel...
Ich werde mal später meinen Code posten. Allerdings verwende ich eine
separate in Assembler geschriebene I2C Bibliothek. Man kann die Source
ohne Installation der Bib. nicht sofort kompilieren. Die Arduino I2C mag
ich nicht.
AVRli .. schrieb:> Veit D. schrieb:>> versuche es einmal ohne die Batterie. Dann Vbat connect to ground.>> Das habe ich auch mal gemacht, dann bekomme ich im Status Register das> Bit angezeigt, das der Oszillator still stand.
Dann wird er wohl keine Versorgungsspannung bekommen haben.
Bei den meisten Module direkt aus Shenzhen ist wohl nicht ohne Grund die
Diode und der 1k Widerstand von VDD nach V_Bat bestückt.
Wolfgang schrieb:> ... von VDD nach V_Bat
Sorry, das muss heißen "von VCC nach V_Bat", auch wenn ich nicht glaube,
dass in dem IC irgendein Bipolartransistor enthalten ist ;-)
AVRli .. schrieb:> Ich bastle nun seit über 25 Jahre und hatte noch nie einen Chip, der> nicht das gemacht hat, was im Datenblatt stand.
Ich bastle seit über 40 Jahre und ich habe eine Menge defekt bekommen
oder selbst gekillt. :) Und nicht nur Detail, auch ein Osci und mehrere
Voltmeter! :) Verbrannte Werkzeug kann ich nicht mehr genau zählen, das
gehört bei mir zu Verbrauchsmaterial :)
Aber ausgerechnet DS3231 hat bei mir von Anfang an einwandfrei
funktioniert. Ich habe mit diesem Modul meine i2C-Routinen getestet. Mit
Hard- und Software. Alles OK.
Maxim B. schrieb:> Ich bastle seit über 40 Jahre und ich habe eine Menge ... oder selbst> gekillt.
Eigentlich hattest du dann Zeit genug, dich nach einem Hobby umzusehen,
das dir vielleicht besser liegt ;-)
Wolfgang schrieb:> Eigentlich hattest du dann Zeit genug, dich nach einem Hobby umzusehen,> das dir vielleicht besser liegt ;-)
Wozu? Ein Elko sollte doch ab und zu explodieren, das ist doch Elko
oder? :)
DS geht aber schon seit einer Woche und immer noch sekundengenau...
georg schrieb:> Irgendwie stehst du mit dem Chip auf Kriegsfuss, kein Wunder> zickt er rum.
Einmal falsch geschrieben, wird das so schnell nichts mehr... :-(
Ich werde mich bessern und habe inzwischen nochmal auf den Chip
geschaut!
Es ist ein DS3231... :-D
Gerhard O. schrieb:> Ich habe noch ein paar (4) DS3231 Module rumliegen und werde sie später> mal testen.
Da bin ich gespannt!
Veit D. schrieb:> Ich hoffe du hast die neuen bei einem anderen Händler gekauft mit guter> Bewertung.
Ja, bei dem habe ich schon einmal gekauft. Auch ein guter Support und
die Sachen die ich bisher von dort hatte damit gab es keine Probleme.
Gerhard O. schrieb:> Das wären mit Shift 25.25 Grad (0x19)
Dann fällt meine Hand bald ab... ;-)
der Wert ist der, wenn ich den Chip 2 Minuten in der Hand mit den
Fingern halte.
An falsch einlesen glaube ich an der Stelle nicht, weil alle anderen
Register immer die gleichen Werte haben und die Zeit/Datumsangabe
plausibel sind.
Nochmal ein Beispiel...
0x0000 28 04 19 01 22 04 18 00 00 00 00 00 00 00 20 00 (...".........
.
0x0010 00 30 00 .0.
22/04/18 19:04:28 (Datum/Uhrzeit)
1524423868 (UNIX Zeit)
48 (Temp)
Genutzt wird der Hardware TWI Master, geschrieben in C mit ATMEL Studio
7.
Die anderen Module kommen wohl nächste Woche, etwas hippelig bin ich ja
schon. ;-)
Falls es hilft zum Testen und die Hardware passt:
Im Anhang hier ist das verwendete Test Program was zur Zeit auf einem
Arduino Pro-Mini mit 16MHz laeuft.
Du kannst es ja das HEX Image mit dem ISP draufladen wenn es ein 328er
ist.
Portbelegung: PD4 (D4) SDA, PD5 (D5) SCL mit 3.9K PULLUPS
Mit dem Termninal auf 9600,N,8,1 kannst du mit dem Programm arbeiten:
(CRLF on Terminal-TX muessen aktiviert sein)
Sende U1V <ENTER> um die Kommunikation zu testen,
Ausgabe: "ADAM V1.10, Apr 22 2018 "
Um das RTC Modul zu montieren sende zuerst das Kommando: U1P1,16<ENTER>
(EEPROM gespeichert)
Die RTC Kommandos:
U1C <ENTER> - Uhrzeit/Datum abfragen,
z.B. "12:07:33 18-04-22"
U1C7 - RTC DS323x REG Dump
U1@hhmmssyymmdd - Zum Zeitsetzen, z.B. U1@115130180422 <ENTER>
U1C8 - RTC Reg Dump
U1C9 - Clear RTC Data registers fuer DS3232
U1A gibt sechs Analogwerte aus
U1An, wo n 1-6 und nur den gewuenschten Kanal ausgibt
U1An,m fuer einen Bereich von Kanelen: U1A2,5 fuer AIN2 bis 5
U1? fuer Kommandohilfe
U1T gibt Temperatur aus wenn ein TMP101 am Bus angeschlossen ist.
Zum montieren addiere den Wert zum P1 Register. Z.B.
RTC+TMP101 = 16+4=20, also U1P1,20<ENTER>
(TMP101 I2C adresse muss 0x90 sein)
Gerhard O. schrieb:> Ich habe meine übrigen Module getestet:>> Sie sind numeriert:
Super, danke! :-)
Die Ergebnisse sind doch gut, da würde ich mit zufrieden sein, will ja
kein Präzisionsthermometer bauen.
Gerhard O. schrieb:> Ein DS3232 Modul:> 23.25 (Original Maxim Chip, selbstgebautes Modul)
Ja schau an, dass hat mich mal veranlasst meinen Chip hier zu
fotografieren. Bilder sind angehangen...
Gerhard O. schrieb:> Im Anhang hier ist das verwendete Test Program was zur Zeit auf einem> Arduino Pro-Mini mit 16MHz laeuft.
Tolle Aktion, vielen Dank für Deine Unterstützung!
Leider habe ich das Arduino Modul nicht und kann deshalb mal nicht eben
schnell mal testen.
AVRli .. schrieb:> Ja schau an, dass hat mich mal veranlasst meinen Chip hier zu> fotografieren. Bilder sind angehangen...
Das ist ein DS3231M kein DS3231.
Stefan schrieb:> AVRli .. schrieb:>> Ja schau an, dass hat mich mal veranlasst meinen Chip hier zu>> fotografieren. Bilder sind angehangen...>> Das ist ein DS3231M kein DS3231.
Ja, ein bißchen schlechtere Daten als ohne "M". Trotzdem...
Nur zum Verdacht: ist Init von DS3231 korrekt gemacht? Wird in OSF 0
geschrieben?
Stefan schrieb:> AVRli .. schrieb:>> Ja schau an, dass hat mich mal veranlasst meinen Chip hier zu>> fotografieren. Bilder sind angehangen...>> Das ist ein DS3231M kein DS3231.
Bei allen meinen ZS-042 Modulen sind DS3231SN eingebaut.
Gerhard O. schrieb:> Bei allen meinen ZS-042 Modulen sind DS3231SN eingebaut.
bei meinem China Teil auch ein DS3231SN, lasergraviert, kaum zu lesen.
Ich habe aber nur ein Modul beguckt bis jetzt, die anderen sind ja
verbaut face down
Stefan schrieb:> Das ist ein DS3231M kein DS3231.
Also das habe ich in der Tat wirklich noch nie erlebt! Bisher war der
Zusatz vlt. Ros oder anderer Temperaturbereich aber das gleich ein
anderer Chip sein soll. Ohh man!
Blöd ist nur, das mir als Kunde das Board als Board mit einem DS3231
angeboten und verkauft wurde. Das schreibt nun keiner hin, das ist nicht
so zufriedenstellend... :-(
Etwas getäuscht fühle ich mich schon - die Bestellung geht komplett
zurück!
Ich habe das Datenblatt eben mal überflogen aber die Kernfunktionen sind
schon noch die gleichen, auch was das Temp Registerpaar angeht.
Maxim B. schrieb:> Nur zum Verdacht: ist Init von DS3231 korrekt gemacht? Wird in OSF 0> geschrieben?
Na ich frage das Bit beim START ab, ist es gesetzt (Oszillator stand
still) dann gebe ich einen Hinweis aus und lösche es.
Das habe ich bisher nur erlebt, wenn ich es neu anklemme also aus dem
Plastiktütchen genommen hatte oder die Batterie draußen war.
Würde nun auch annehmen, das sonst die Uhr nicht laufen würde?
Ich bin schon gespannt, was auf den anderen, heute bestellten, drauf
steht.
S. Landolt schrieb:> - die Zeit stimmt nicht:> -37 s / 10h: -1028 ppm> -3 min / 22 h: -2273 ppm
Wie hast Du das ausgerechnet?
Das würde ich gerne mal selber machen um in Zukunft eine Aussage darüber
machen zu können.
Grüße AVRli...
Ich werde in den nächsten paar Tagen zwei DS3232M (SO-8) Platinen
zusammenlöten die ich vor ein paar Jahren entwickelte und herstellen
habe lassen. Die RTCs sind Samples von Maxim. Es sollte interessant sein
zu sehen wie die sich benehmen werden. Wenn sie laufen werde ich Euch
die Ergebnisse hier präsentieren. Könnte durchaus nützlich sein wenn man
China und Original Halbleiter vergleichen will.
Bin gespannt ob die bestellten DS3231(SN) besser funktionieren werden.
Ich muß da offensichtlich zufälliges Glück gehabt haben. Den RTC Chip
für das selbstgebaute DS3232 Modul stammte von Digikey.
Mit China DS3234 Modulen hatte ich wenig Glück wegen des falschen
Temperaturbereichs und meiner Wetterstation Anwendung. Die DS3234N
liefen wie gesagt bei -18 in 2 Wochen fünf Minuten(!) falsch. Dann
bestellte ich mir einen DS3234SN von DK für einen Vergleich und der Spuk
verschwand. In fast zwei Jahren Dauerbetrieb zwischen -35 und +32 läuft
diese Uhr noch immer um 1 Minute und 3s genau (gerade gecheckt gegen
WWVB). Ich mußte sie noch nicht nachstellen.
I will be back...
AVRli .. schrieb:> Blöd ist nur, das mir als Kunde das Board als Board mit einem DS3231> angeboten und verkauft wurde. Das schreibt nun keiner hin, das ist nicht> so zufriedenstellend... :-(
Ich versuche immer mir die Bilder genau anzuschauen ob man die IC
Beschriftung lesen kann. Seit meinen Reinfall mit den DS3234s bin ich
jetzt immer etwas mißtrauisch.
Eine Frage: hast Du Dir das UNIX Zeit/Datum Berechnung selber geschnitzt
oder ist das irgendeine Bib? Ich schrieb mir für den STM32F103 eine
solche selber weil die interne RTC dort nur ein 32-bit Zaehler ist. Aber
das war ganz interessant. Wann fängt bei Dir die Zeit an? 00:00:00
01-01.1970? Ich glaube für mich ist die Frage wahrscheinlich
illusorisch:-)
Gruß,
Gerhard
AVRli .. schrieb:> S. Landolt schrieb:>> - die Zeit stimmt nicht:>> -37 s / 10 h: -1028 ppm>> -3 min / 22 h: -2273 ppm>> Wie hast Du das ausgerechnet?
Nun ja, dividiert eben (ppm ist 10^-6).
AVRli .. schrieb:> Sie ist nun 10h im> Betrieb und geht schon 37 Sekunden nach.
Das war um 20:13, also war der Start etwa um 10 Uhr.
AVRli .. schrieb:> Die Uhr geht nun schon 3 Minuten nach...
Das war um 08:17 Uhr, folglich lief da die RTC seit rund 22 h.
AVRli .. schrieb:> Maxim B. schrieb:>> Nur zum Verdacht: ist Init von DS3231 korrekt gemacht? Wird in OSF 0>> geschrieben?>> Na ich frage das Bit beim START ab, ist es gesetzt (Oszillator stand> still) dann gebe ich einen Hinweis aus und lösche es.
ich hatte ja Beispielcode hier gezeigt, hast du es mal mit dem versucht?
Das wäre die Gegenprobe!
Gerhard O. schrieb:> Wenn sie laufen werde ich Euch> die Ergebnisse hier präsentieren.
Ja bitte auch, wenn nicht. ;-)
Gerhard O. schrieb:> In fast zwei Jahren Dauerbetrieb zwischen -35 und +32 läuft> diese Uhr noch immer um 1 Minute und 3s genau
Das finde ich schon beachtlich gut, damit wäre ich sehr zufrieden!
Die Genauigkeit, die ich gerade erreiche mit dem "hochpräzisen Modul",
ist deutlich schlechter als meine Eigenbau RTC mit einem ATmega und
einen Uhrenquarz an dem Teil.
Gerhard O. schrieb:> Ich versuche immer mir die Bilder genau anzuschauen ob man die IC> Beschriftung lesen kann.
Ja auf denen sieht man gar keine Bezeichnung, noch nicht mal
Ansatzweise! Man könnte auf die Idee kommen... lassen wir es. Das regt
mich auf! Auf solche Details achtet doch kaum einer. Und dann gehen Tage
Zeit in den Sand...
Gerhard O. schrieb:> Eine Frage: hast Du Dir das UNIX Zeit/Datum Berechnung selber geschnitzt> oder ist das irgendeine Bib?
Na das hatte ich mir selbst gestrickt. Hatte dazu eine gute Erklärung im
Netz gefunden und einen Online-UNIX-Umrechner. Aber da muß man auch
aufpassen, eine Version lieferte da falsche Ergebnisse. Meine Routine
lief schon richtig und bei einem Zweiten stimmte der Vergleich dann
auch. Der Vorteil vom UNIX Format ist einfach das man in 4 Byte die
komplette Zeit mit Datum speichern kann. Das war für mich wichtig.
Der ist korrekt!
https://www.unixtimestamp.com/index.php
Der arbeitet nicht richtig! Eine Stunde zu viel?
http://www.unixtime.deGerhard O. schrieb:> Wann fängt bei Dir die Zeit an? 00:00:00> 01-01.1970?
Alle Routinen rechnet ab dem Jahr 1970 mit uint32_t -> KEIN 2038
Problem.
Dachte das ich das noch erlebe und dann wäre das blöd... ;-)
Horst S. schrieb:> Sind das die Module, über deren Chip hier gesprochen wird?
Ja um den geht's. Da kann man wohl SN erkennen?
S. Landolt schrieb:> Nun ja, dividiert eben (ppm ist 10^-6).
Das schau ich mir jetzt nochmal an.
Joachim B. schrieb:> Das wäre die Gegenprobe!
Auch das schau ich mir jetzt nochmal an...
Grüße AVRli...
AVRli .. schrieb:> Ja auf denen sieht man gar keine Bezeichnung, noch nicht mal> Ansatzweise!
auf meinem Modul war es nur mit der Lupe und extra Beleuchtung zu sehen
aber auch nur in einem besonderen Winkel, sah aus wie mit dem Laser
gefräst.
Trotzdem laufen alle meine Module perfekt, ich tippe mal die sind ohne
Aufdruck eben billiger und kommen so ab Werk.
Wenn du nicht genau schaust könntest du denken die sind unbeschriftet!
AVRli .. schrieb:> Joachim B. schrieb:>> Das wäre die Gegenprobe!>> Auch das schau ich mir jetzt nochmal an...
das würde mich freuen
Ich habe Datenblatt für DS3231 und Datenblatt für DS3231M gelesen...
Außer fehlender Möglichkeit, ISR-Frequenz zu wählen und etwas
schlechterer Genauigkeit, scheint DS3231M keine Unterschiede zu haben.
Aber!!!
Über DS3231 steht überall, es gibt Kondensator-Array, damit wird
Frequenz korrigiert. Bei DS3231M steht kein Wort über Kondensator-Array.
Es sieht so aus, das Wort "Kondensator" ist überall gestrichen. Auch
Blockschema zeigt Unterschied: DS3231 hat "OSCILLATOR AND CAPACITOR
ARRAY", DS3231M hat "DIGITAL ADJUSTMENT".
Hallo,
mir fällt nochwas ein als ich las die MSB und LSB um eine Stelle
verschoben passen würden. Es gibt doch den Unterschied beim I2C mit der
7 oder 8 Bit Adressierung. Bei der Arduino Lib muss man sich darum nicht
kümmern. Wenn man das zu Fuss programmiert gibts da jedoch etwas
zubeachten. Ich weis nicht ob das damit zu tun haben kann beim Register
auslesen. Und vom TO habe ich auch noch keine Zeile seines Programms
gesehen. Vielleicht liegst am IC. Vielleicht aber doch nur am Code.
Was hast du für einen µC?
Schaltplan?
Code?
Sonst drehen wir uns alle nur im Kreis. Ganz ehrlich.
Veit D. schrieb:> Es gibt doch den Unterschied beim I2C mit der> 7 oder 8 Bit Adressierung.
Es gibt kein Unterschied. Immer bestimmen Bit7-Bit1 Adresse und Bit0
bestimmt R/W.
Übrigens, mir ist etwas aufgefallen:
Bei der Bestellung sollte man in der Beschreibung achten:
DS3231 hat "Accuracy ±2ppm from 0°C to +40°C" und "Accuracy ±3.5ppm from
-40°C to +85°C".
DS3231M hat "Timekeeping Accuracy ±5ppm (±0.432 Second/Day) from -45°C
to +85°C"
Diese Notiz über "±0.432 Second/Day" übernehmen die Chinesen in ihren
Beschreibungen. D.h. wenn geschrieben über "±0.432 Second/Day", wird
höchstwahrscheinlich nicht DS3231 sondern DS3231M angeboten.
S. Landolt schrieb:> Nun ja, dividiert eben (ppm ist 10^-6).
Habe das noch nie so gerechnet, denke aber das genau so nur eine Aussage
über die Genauigkeit getroffen werden kann. Habe mir eine Tabelle
gemacht und kann da nun beliebig Uhrzeiten eintragen und bekomme dann
die ppm Angabe ausgerechnet. Ein paar weitere Werte...
PC (NTP) DS3231M ppm
02:18:00 02:18:00 0
11:59:00 11:58:03 -1635
14:34:00 14:32:48 -1630
17:55:00 17:53:28 -1636
Ob die NTP Synchronisation vorher nun geeignet ist weiß ich einfach
nicht 100%tig, habe aber nichts mit DCF77 im Haus.
Joachim B. schrieb:> ich hatte ja Beispielcode hier gezeigt, hast du es mal mit dem versucht?
Also ich habe mir das angesehen. Du checkst VOR dem auslesen der
Temperatur Register ob das BSY Flaf im Status Register gesetzt ist. Nun
das mache ich indirekt auch, ich frage VOR dem einlesen der Tempregister
einmal ALLE ab und da habe ich noch nicht einmal eine Meldung erhalten,
dass das BSY Flag im Status Register gesetzt war.
Mehr kann ich in Richtung "initialisieren" in Deinem Code nicht
erkennen. Es ist aber eigentlich auch egal, wenn man nicht per Hand
anschuppst bekommt man eigentlich alle 64 Sek einen neuen Tempwert,
automatisch zur Abfrage bereit gestellt.
Veit D. schrieb:> als ich las die MSB und LSB um eine Stelle> verschoben passen würden. Es gibt doch den Unterschied beim I2C mit der> 7 oder 8 Bit Adressierung.
Da lehne ich mich mal soweit aus dem Fenster un behaupte das es daran
nicht liegen kann. Denn das kann für mein Verständnis nur eine
Einstellmöglichkeit der LIB sein, die das Addressbyte einmal als 8bit
Wert und einmal als 7bit Wert interpretiert und jeh nach Konfig das Byte
vor dem makieren von R/W nochmal 1x nach links schiebt.
Wenn es Probleme mit der Bitanzahl beim einlesen und aussenden geben
sollte, dann würde für mein Verständnis die Uhrzeit und das Datum im BCD
Format völlig daneben liegen.
Maxim B. schrieb:> Diese Notiz über "±0.432 Second/Day" übernehmen die Chinesen in ihren> Beschreibungen.
Das ist alles etwas verwirrend, wer achtet auf so etwas? Ich finde schon
das sie dann die komplette Chipbezeichnung angeben müssten. Das wäre ja
wie, wenn man ein Auto kauft und man hat "vergessen" dahinter zu
schreinen "im Maßstab 1:28" :-D
Aber danke für die Recherche! Hilft mir wirklich weiter.
Veit D. schrieb:> Und vom TO habe ich auch noch keine Zeile seines Programms> gesehen. Vielleicht liegst am IC. Vielleicht aber doch nur am Code.> Was hast du für einen µC?
Das Modul hängt aktuell an einem ATmega2560 mit 4 Leitungen, das ist das
Arduino Mega Board. Nutze allerdings nur die Hardware! Hänge mit einem
JTAG am Chip und programmiere mit dem ATMEL Studio 7 in C. Glaube jetzt
nicht das ich da einen Schaltplan zeichnen muss... ;-)
Beim Code denke ich das man davon ausgehen kann, dass die reine
Kommunikation schon richtig ist. Denn der Inhalt aller anderen 17
Register ist ja plausibel und wie my2ct schon schrieb...
my2ct schrieb:> Um den Wert aus den Temperaturregister grob zu prüfen, kann man auf> großartige Routinen zur Umrechnung erstmal völlig verzichten.
Und der HEX Dump spricht doch eine klare Sprache.
0x0000 41 39 18 03 24 04 18 00 00 00 00 00 00 00 20 00
0x0010 00 2d 80
Der Inhalt von Register 0x11 und 0x12 ist fragwürdig.
Die anderen Module sollen morgen hier eintreffen...
Grüße an alle, AVRli...
AVRli .. schrieb:> 0x0000 41 39 18 03 24 04 18 00 00 00 00 00 00 00 20 00> 0x0010 00 2d 80
Wenn man 0x2d einmal nach rechts schiebt werden es 0x16 oder 24.5 Grad.
Schon komisch, dass wenn man es so macht, immer plausible Temperaturen
heraus kommen.
> Wenn man 0x2d einmal nach rechts schiebt ...
Das hatten wir gestern bereits diskutiert, ich halte dies für reinen
Zufall; verschiebt man die Werte vom Anfang, 2f c0, hat man mit 17 e0 im
zweiten Byte einen ungültigen Wert. Und die um den Faktor 300 zu große
Gangungenauigkeit ist auch nicht erklärt.
Wenn ich raten sollte, würde ich sagen, Ausschussware oder zu heiß
gelötet.
S. Landolt schrieb:> Wenn ich raten sollte, würde ich sagen, Ausschussware oder zu heiß> gelötet.
Dafür dann 9,50€ zu verlangen, wäre allerdings schon eine Frechheit.
an Gerhard O. (auch auf die Gefahr hin, für einen Schwätzer gehalten zu
werden):
Es gibt erstaunliche Zufälle: ich habe in meinem Wecker derzeit 1139
Liedtitel gespeichert, und ausgerechnet heute morgen wurde ich mit 'Four
Strong Winds' geweckt (in der Version der Tysons). Sollte ich, wider
Erwarten, doch noch einmal nach Edmonton kommen, können wir einen Kaffee
zusammen trinken.
S. Landolt schrieb:> an Gerhard O. (auch auf die Gefahr hin, für einen Schwätzer> gehalten zu> werden):> Es gibt erstaunliche Zufälle: ich habe in meinem Wecker derzeit 1139> Liedtitel gespeichert, und ausgerechnet heute morgen wurde ich mit 'Four> Strong Winds' geweckt (in der Version der Tysons). Sollte ich, wider> Erwarten, doch noch einmal nach Edmonton kommen, können wir einen Kaffee> zusammen trinken.
Wusste gar nicht, dass es in D Ian Tyson Fans gibt:-)
Ian & Sylvia hatten schiene Version davon.
Bezüglich Kaffee, klar!
S. Landolt schrieb:> Das hatten wir gestern bereits diskutiert, ich halte dies für reinen> Zufall; verschiebt man die Werte vom Anfang, 2f c0, hat man mit 17 e0 im> zweiten Byte einen ungültigen Wert. Und die um den Faktor 300 zu große> Gangungenauigkeit ist auch nicht erklärt.> Wenn ich raten sollte, würde ich sagen, Ausschussware oder zu heiß> gelötet.
Wahrscheinlich hast Du recht. Möchte los wissen was da immer in die
Suppe spuckt. Die leichteste Erklärung ist halt immer noch - schlechter
Chip. Dass die SW noch Mucken macht ist sehr unwahrscheinlich.
Ohne Vergleich mit einem bekannten guten RTC ist man da auf dem
Schlauch. Notfalls könnte man noch mit einem DSO die I2C Daten speichern
um anhand der Bits zu sehen was da tatsächlich über die Leitung kam.
Gerhard O. schrieb:> Notfalls könnte man noch mit einem DSO die I2C Daten speichern> um anhand der Bits zu sehen was da tatsächlich über die Leitung kam.
Dann doch lieber mit einem kleinen Logikanalysator bei dem gleich alles
dekodiert wird (z.B. https://www.ebay.de/itm/181998009301)
Da bei AVRli auch das Conv-Bit nicht stimmt und er eigenen i2c-Code
verwendet, vermute ich eher Kommunikations-Probleme.
Stecke die Uhr doch mal in den Kühlschrank und messe die Temperatur.
Dann kann man leichter sehen, ob sie die doppelte Temperatur anzeigt.
Google mal, ob andere User ähnliche Probleme hatten.
Wolfgang schrieb:> Dann doch lieber mit einem kleinen Logikanalysator bei dem gleich alles> dekodiert wird (z.B. Ebay-Artikel Nr. 181998009301)
Den habe ich und der dekodiert auch I2C einwandfrei. Für den Preis, eine
sehr gute Anschaffung.
Hallo,
wenn du schon einen Arduino hast, warum testest du dann nicht wenigstens
einmal mit dem Arduino Code? Atmel Studio 7 kann das auch. Weil so
richtig glaube ich nicht mehr daran das mehrere ICs defekt sind. Kann ja
immer noch sein das dein geheimer Code fehlerhaft ist.
Das ist jetzt nicht böse gemeint, nur ein ernst gemeinter Rat.
Die Arduino IDE gibts auch als Portable. Nur so als Info.
Den Logic Nachbau gibts mittlerweile auch als 16 Kanal Version mit
100MHz. Die bauen immer nur das nach was es original nicht mehr zu
kaufen gibt.
Ich bestückte heute nach 9 Jahren die gezeigte Bord mit dem DS3232M
drauf im SO-8 Gehäuse. Beachtenswert ist, daß der DS3232M für nur
maximal 4.5V zugelassen ist. Der DS3231M dagegen ist für bis 5.5V
geeignet. Um dieser Notwendigkeit gerecht zu werden, ist auf der Bord
eine MCP1700 Spannungsregler und ein MOSFET I2C Pegelwandler nach einem
NXP Vorschlag um die Bord auch in 5V Systemen betreiben zu können. Der
Spannungsregler läßt sich mit einem Jumper trennen um auch mit 3.3V uC
verwendbar zu sein. Der RTC IC ist ein Sample von Maxim.
Hier sind die bisherigen Einschaltmeßwerte:
RTC RAM dump:
13 48 18 00 23 04 18 00 00 00 00 00 00 00 00 00
00 13 C0
DS323x REG dump:
CTL: 00
STA: 00
AGO: 00
TMSB:13
TLSB:C0
DEGC:19.75
Der Stromverbrauch am Batterieanschluß ist 1.5uA.
Bei inaktiven I2C verbraucht die Bord ca. 200uA bei 5V.
Der auch angeschlossene TMP101 zeigt 19.2 Grad an. Diesbezüglich ist
also alles in Ordnung.
Über die Ganggenauigkeit kann man natürlich noch nichts aussagekräftiges
berichten.
Nachtrag:
Bei Digikey steht, daß der DS3232MZ für neue Designs nicht verwendet
werden sollte.
Hier folgen meine Ergebnisse, doch zuvor möchte ich noch auf folgendes
eingehen...
Gerhard O. schrieb:> Hier ist ein interessanter Link über die DS3231(M) RTCs:
Hatte ich mir gestern Nacht noch durchgelesen, war wirklich sehr
interessant!
Gerhard O. schrieb:> Beachtenswert ist, daß der DS3232M für nur> maximal 4.5V zugelassen ist.
Cool das Dich das Thema dazu animiert hat, die eingestaubten Bausatz zu
aktivieren. :-D
Das mit der Stromversorgung ist aber ein ganz wichtiger Punkt! Mich
würde es nicht wundern, wenn das hier der Killer war der Chips war oder
ist und das auch erklärt warum ich davon gleich 2 oder mehr hätte. Denn
ich betreibe das Modul, wie angegeben, dierekt an 5V.
Heute sind nun die, für mich neuen, Module eingetroffen und auf denen
sind tatsächlich DS3231SN verbaut!
Es folgt direkt mal ein HEX-Dump von dem...
TWI OK
0x00 50 03 00 01 01 01 00 00 00 00 00 00 00 00 1c 88
0x10 00 1e 80
01 122
01/01/00 00:03:50
946685030 (unix)
Das "Control Register" hat den Wert 0x1c
(8.192kHz out / INT Alarm.)
Das "Status Register" hat den Wert 0x88
(Oszillator was stoppend / 32kHz Out.)
Das passt soweit! :-)
Nun zur Temperatur!
MSB = 0x1e
LSB = 0x80
ergibt 0x7a = 122 = 30,5°C
Das trifft die Sache in soweit deutlich besser, weil ich das Modul ja
kurz vorher noch in den Händen hatte.
Eine Vergleichsmessung etwas später mit einem Infrarotthermometer, wie
genau das nun wieder ist (?) ergab folgende Werte:
IR-Thermometer = 27,3°C / DS3231SN = 25,75°C
Dann war da ja noch das weglaufen der Uhrzeit. Das Modul läuft hier nun
5h und die Genauigkeit liegt im Vergleich zur Internetzeit bei 0ppm!
Also unterm Strich wirklich sehr gute Werte und die anderen, ersten
Module, gehen definitiv zurück. ;-)
Ich bedanke mich bei ALLEN und habe bei der Aktion nun gelernt, das zwar
oft der Esel vor der Kiste der Fehler ist, manchmal aber nicht.
Grüße AVRli...
> ... aber ein ganz wichtiger Punkt! Mich würde es> nicht wundern, wenn das hier der Killer war ...
Das ist ein Missverständnis, Gerhard O. sprach vom DS3232M, Sie jedoch
haben den DS3231M, und dieser verträgt 5.5 V. Also getrost zurückgeben.
AVRli .. schrieb:> Das trifft die Sache in soweit deutlich besser, weil ich das Modul ja> kurz vorher noch in den Händen hatte.
Wenn ich die Temperatur realistisch messen möchte stelle ich einen
kleinen, langsamen 60mm Lüfter in der Nähe auf, so dass sich kein
neuerlicher Wärmstau ergibt. Speziell beim Vergleich von zwei Sensoren
ist das nützlich sicher zustellen, dass beide Sensoren gleichmäßig die
Umgebungstemperatur aufnehmen.
>> Eine Vergleichsmessung etwas später mit einem Infrarotthermometer, wie> genau das nun wieder ist (?) ergab folgende Werte:> IR-Thermometer = 27,3°C / DS3231SN = 25,75°C
Ja, das ist wesentlich besser.
>> Dann war da ja noch das weglaufen der Uhrzeit. Das Modul läuft hier nun> 5h und die Genauigkeit liegt im Vergleich zur Internetzeit bei 0ppm!
Dann waren tatsächlich die ersten Bords fragwürdig.
Wenn ich dann heimkomme werde ich den neu gebauten DS3232M RTC mit Nist
vergleichen. Das wären dann 24 Stunden Laufzeit.
Ich glaube nicht, dass Deine DS3231M mit Überspannung betrieben wurden.
Die dürfen ja bis 5.5V betrieben werden. Nur der DS3232M verträgt
weniger.
Bin überrascht wie schnell die Module ankamen. Bei mir dauert das oft
Wochen...
Gruss,
Gerhard
S. Landolt schrieb:> Das ist ein Missverständnis, Gerhard O. sprach vom DS3232M, Sie jedoch> haben den DS3231M, und dieser verträgt 5.5 V. Also getrost zurückgeben.
Zu schnell gelesen, Mist... :-(
Danke für den Hinweis, ich habe übrigens nichts gegen ein "Du". ;-)
Gerhard O. schrieb:> Bin überrascht wie schnell die Module ankamen. Bei mir dauert das oft> Wochen...
Na ich habe sie in 38678 (Clausthal-Zellerfeld) am Sonntag Abend
bestellt. Am Montag wurde es bearbeitet und innerhalb Deutschlands
geht's zum Glück noch etwas schneller, als aus China... ;-)
In der Bucht... 272620584711...
Ist wohl der gleiche Händler ;-)
Sehe gerade das bei dem bei Dir gefundenen die Batterie deutlich größer
ist. :-(
Hoffentlich macht die kleine CR1220 hier auch ein paar Jahre!
AVRli .. schrieb:> In der Bucht... 272620584711...>> Ist wohl der gleiche Händler ;-)> Sehe gerade das bei dem bei Dir gefundenen die Batterie deutlich größer> ist. :-(> Hoffentlich macht die kleine CR1220 hier auch ein paar Jahre!
Der Stromverbrauch ist bei 3.6V zwischen 0.84-3uA. Eine CR1220 hat
45mAh. Da sollte auch die kleine CR1220 mindestens 2 Jahre halten
Die Link geht nicht:
In der Bucht... 272620584711...
Gerhard O. schrieb:> Die Link geht nicht:
Bitte bei eBay in die Suche "272620584711" eingeben, direkt verlinken
mache ich nicht mehr, da gab's mal Stress...
AVRli .. schrieb:> Gerhard O. schrieb:>> Die Link geht nicht:>> Bitte bei eBay in die Suche "272620584711" eingeben, direkt verlinken> mache ich nicht mehr, da gab's mal Stress...
Google findet es. Die Bucht findet mit der Nummer nichts.
Dein Modul hat den EEPROM IC nicht und ist deswegen kleiner.
Gerhard O. schrieb:> Dein Modul hat den EEPROM IC nicht und ist deswegen kleiner.
Welcher Vorteil bringt dieser kleine EEPROM mit sich?
Was speichert man darin, in Bezug auf den RTC Chip?
Im Moment denke ich, dass ich den nie nutzen würde. Die Batterie ist
das, was ich schon gerne auch "größer" gehabt hätte. Nun, egal... dafür
ist der Spuk mit dem Modul nun vorbei. ;-)
AVRli .. schrieb:> Gerhard O. schrieb:>> Dein Modul hat den EEPROM IC nicht und ist deswegen kleiner.>> Welcher Vorteil bringt dieser kleine EEPROM mit sich?> Was speichert man darin, in Bezug auf den RTC Chip?>> Im Moment denke ich, dass ich den nie nutzen würde. Die Batterie ist> das, was ich schon gerne auch "größer" gehabt hätte. Nun, egal... dafür> ist der Spuk mit dem Modul nun vorbei. ;-)
Da ist ein 4kB AT24C32 EEPROM drauf. Wenn man viel abspeichern muss,
kann das nützlich sein. Ich habe das EEPROM auf RTC Modul schon getestet
und es funktioniert. Das gepostete Programm für den Pro-Mini kann darauf
zum Test zugreifen solange A0-A2 unbeschaltetet hoch liegen. Ein
Kommando beschreibt und liest einen 256 Byte Abschnitt.
Man kann ja eine größere Batterie anbringen wenn es notwendig sein
sollte. Beim selbstgebauten Modul habe ich dafür eine Umschaltung und
Stecker dran.
Ich werde allerdings das Modul nur mit externer Batterie betreiben.
Ansonsten ist es auch praktisch mit dem DS3232SN zu arbeiten weil man da
noch 236 Bytes an NVRAM hat. Kurioserweise hat Maxim beim DS3232M den
RAM verpfuscht. Der Errata nach soll soll das Beschreiben ganzzahliger
Adressen angeblich eine Korruption des RTC Zählers zur Folge haben. Der
Work Around ist auch nicht ideal.
Habe gerade die DS3232M Zeitanzeige verglichen. Ist nach fast 24 Stunden
immer noch gleich mit dem Vergleichsnormal. Scheint also soweit alles in
Ordnung zu sein. Bin gespannt wie groß die einmonatige Gangabweichung
sein wird.
Das interessante an der MEMS Version ist, daß die Alterungsrate im
Vergleich zu einem Quarz scheinbar kein Thema ist. Nur die Kurzzeit
Aussprünge sind stark vertreten. Aber das könnte sich langfristig
ausgleichen.
Maxim B. schrieb:> Braucht man wirklich NVRAM, dann kann man 23LCV1024 nehmen und von> gleicher Batterie speisen.
Ist ein interessantes Teil. Danke für den Hinweis.
Maxim B. schrieb:> Aber ich kapiere nicht: wozu braucht man RTC ohne Interruptausgang?
Einfach nur als Uhr/Datum für den µC wenn der startet oder was ins Log
schreibt. Will ja nicht jedes mal nach dem Einschalten, erstmal die Uhr
stellen. ;.)
Gerhard O. schrieb:> Da ist ein 4kB AT24C32 EEPROM drauf.
Ahh, OK - habe bei dem Projekt eine 2GB SD Karte mit an Board. Also
komme ich mit der kleinen Version, ohne dem TWI EEPROM, gut aus. ;-)
Super, dann freue ich mich das sich das insoweit aufgeklärt hat, dass es
an dem Chip lag und ich nun mit dem Projekt weiter machen kann.
AVRli .. schrieb:> Einfach nur als Uhr/Datum für den µC wenn der startet oder was ins Log> schreibt.
Int von RTC könnte für Systemtakt benutzt werden und somit interne Timer
für andere Zwecke befreien. 1024 Hz paßt sehr gut dafür. Auch nützlich,
daß diese Frequenz deutlich genauer ist, als Quarz von AVR.
Gut das ist ein Argument!
Ich habe es nun so gemacht das ich mir beim Start einmal die Zeit aus
dem RTC Chip hole und dann mit dem auf dem ATmega erzeugten 1s Takt
(abgeleitet von 16 MHz Quarz und Timer Interrupt) die Zeit für die
Anzeige weiter laufen lasse. Die Genauigkeit geht dann natürlich
verloren, umso länger man nicht erneut mit der RTC synchronisiert.
Man könnte nun auch festlegen, synchronisiere dann 1x in 60 Sekunden.
Das nimmt ja auch nicht viel Zeit in Anspruch aber ich glaube aus reinem
Interesse schau ich mir den Vorschlag auch noch einmal an.
Habe heute dann nochmal Module bestellt, welche dieses Signal auf PINs
raus führt. Mal sehen wie sich die sonst noch so verhalten...
Falls noch von Interesse:
Ich habe nun mittlerweile das gezeigte selbstgebaute DS3232M Modul seit
über einer Woche bei Zimmertemperatur in ständigen Betrieb und es zeigte
sich bis jetzt noch keine bemerkbare Abweichung mit dem
Vergleichsnormal. Das ist auf jeden Fall ermutigend.
Gerhard O. schrieb:> Falls noch von Interesse:
Ja klar! Dann sieht das mit Deinen Modulen ganz gut aus!
In der Zwischenzeit sind hier auch noch Module eingetroffen, welche die
PIN's nach draußen führen, wo man den INT und das CLK Signal zum µC
führen kann. Da ich es angekündigt hatte, hier die Ergebnisse der
zweiten, "neuen" Module... verbaut sind darauf auch: DS3231SN (!)
0x00 12 58 07 05 03 05 18 00 04 01 20 00 00 00 1c 08
0x10 00 1a 40
2625
03/05/18 07:58:12
1525334292 (unix)
Uhrzeit läuft seit mehreren Tagen auf die Sekunde genau und die
Temperaturwerte (26,25 °C) sind auch plausibel.
Das Geld von den DS3231M Module habe ich zurück, die Module darf ich
nun entsorgen.. ;-)
Grüße AVRli...
Na einen Händler hier zu nennen ist nicht fair... schau Dich mal in der
Bucht um. Es ist ein Modul mit einer CR2032 Backup-Batterie, 6 Pins im
2,54mm Raster und eben dem DS3231SN. Auf dem Foto war die Bezeichnung
leider nicht zu erkennen... :-(
AVRli .. schrieb:> Na einen Händler hier zu nennen ist nicht fair... schau Dich mal> in der> Bucht um. Es ist ein Modul mit einer CR2032 Backup-Batterie, 6 Pins im> 2,54mm Raster und eben dem DS3231SN. Auf dem Foto war die Bezeichnung> leider nicht zu erkennen... :-(
Auf den in Frage kommenden RTC Modulen steht die Modellnummer SX-42
drauf.
Ich habe mir übrigens einige LIR2032 aufladbare Zellen aus den USA
schicken lassen. Es interessiert mich wie haltbar diese Art ist.
Ich vermute, daß die einfache Ladeschaltung mit R+Diode, wie man sie auf
den genannten RTC Modulen findet, nicht unbedingt ideal ist. Da muß ich
mich erst klug machen um solche aufladbare Zellen richtig anzuwenden.
Hier ein Datenblatt:
https://www.powerstream.com/p/Lir2032.pdf
Nachtrag: nach etwas Recherche stellte es sich heraus, daß man besser
die Ladeschaltung entfernen und mit nicht aufladbaren Zellen arbeiten
sollte. Die LIR2032 sind für andauernde Ladung nicht wirklich geeignet
und haben abgesehen davon nur ein Bruchteil der Kapazität einer CR2032.
Das dürfte diese Frage ausreichend beantworten.
900ss D. schrieb:> Damit ein Händler Geld verdient, der "Müll" verkauft?
Da ich mein Geld komplett zurück bekommen habe, stimmt Deine Aussage
einfach nicht.
Weiter kann ich auch nicht garantieren, dass der letzte Händler nur
diese mit dem DS3231SN verkauft. Deshalb halte ich mich mit einer
konkreten Empfehlung zurück.
Die werden sicher alle in China gefertigt, kauft bei einem Händler in
Deutschland. Da könnt ihr Euch, bei Problemen, auf das Fernabsatzgesetz
berufen.
AVRli .. schrieb:> Deshalb halte ich mich mit einer konkreten Empfehlung zurück
Ich hatte überhaupt nicht nach einem Händler gefragt. Und auch nicht
nach einer Garantie.
Gerhard O. schrieb:> Nachtrag: nach etwas Recherche stellte es sich heraus, daß man besser> die Ladeschaltung entfernen und mit nicht aufladbaren Zellen arbeiten> sollte. Die LIR2032 sind für andauernde Ladung nicht wirklich geeignet> und haben abgesehen davon nur ein Bruchteil der Kapazität einer CR2032.> Das dürfte diese Frage ausreichend beantworten.
andere Quellen nennen für die LiR 53mAh für eine CR um 230mAh
Bis jetzt laufen meine LiR über 3 Jahre, natürlich nicht unter
Dauerspannung dort nur in meinen Uhren 3 Jahre ohne Probleme.
Für Dauerspannung wäre ja eine CR oder LiR auch nicht nötig, aber man
zieht schon mal den stecker beim Staubwischen oder bei Netzausfall dafür
reicht die kleinere LiR und wenn sie dabei Kapazität verliert, wen
juckst?
Man könnte auch für eine Uhr dauernd am Netz über 0,1F Supercap
nachdenken.
Die CR ohne Ladeschaltung sehe ich eher für mobile Geräte die oft nicht
am Strom sind.
Ich hatte bei Bestellung meiner RTC Module mit 2032 immer auf incluse
LiR geachtet, entweder der Händler schreibt es rein oder wenn nicht aber
abgebildet frage ich nach.
Früher waren die immer im Modul eingesetzt, durch neue Postvorschriften
kommen die immer extra eingetütet.
Jedenfalls wer Module ohne LiR bekommt muss hier in D für die LiR ein
vielfaches zahlen was kompette Module kosten, die CR bekommt man ja im
Dutzend billig überall nachgeworfen.
> über 0,1F Supercap nachdenken
Die Dinger altern leider auch ziemlich, die von mir eingesetzten 0.22 F
(Panasonic) zeigen nach etwa 5..7 Jahren nur noch die halbe Kapazität.
(zum Staubwischen wird's aber wohl immer reichen)
S. Landolt schrieb:>> über 0,1F Supercap nachdenken>> Die Dinger altern leider auch ziemlich, die von mir eingesetzten 0.22 F> (Panasonic) zeigen nach etwa 5..7 Jahren nur noch die halbe Kapazität.> (zum Staubwischen wird's aber wohl immer reichen)
auch das, meine erste Verwendung im FotoTimer ist nie so alt geworden,
Designfehler von mir, ich vergaß das ein AVR im deep sleep zwar keinen
nennenswerte Stromaufnahme hat, aber der DC/DC switcher buck/boost immer
die Akkus leernuckelt, zu einer Neuentwicklung hatte ich dann keine Lust
mehr, Hobbyaufgabe, Fotografie.
Habe von einem Bekannten zwei ähnliche RTCs mit DS3231M zum Testen
bekommen. Diese Bords verhalten sich mit denen von AVRli recht ähnlich
und gehen pro Tag um 3 Minuten nach. Die Temperaturanzeige gibt fast 40
Grad aus.
DS323x System dump:
CTL: 00
STA: 00
AGO: 00
TMSB:27
TLSB:80
DEGC:39.50 (Ist auch viel zu hoch. Raumtemperatur ist 20.5 Grad)
Ein Referenz Modul, von mir selbst gebaut mit einem DS3232M drauf, geht
sehr genau und die Temperaturanzeige ist innerhalb 0.5 Grad von einem
TMP101 "Referenzthermometer":-)
Es scheinen also einige zwieträchtige (Ausschuss) DS3231M in der Welt
herum zu schwirren.
Die Beobachtungen von AVRli sind auf jeden Fall von Bedeutung und
realistisch.
Wobei mich jetzt doch interessieren würde, was der Bekannte mit zwei
"Echtzeituhren" anfängt, die pro Tag 3 Minuten nachgehen - also derart
gemütlich habe ich Kanada nicht in Erinnerung.
S. Landolt schrieb:> also derart> ...gemütlich habe ich Kanada nicht in Erinnerung.
Naja, dort wo die Wölfe sich guten Tag sagen, macht es bestimmt nichts
aus:-)