PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RTC für kalte Tage.....



oderlachs
27.09.2018, 16:07
Hallo Freunde !
Der Bastelwinter kommt in Sicht und schon steh ich vor einem Rätsel. Ich möchte ein RTC Modul in der "Wildnis" betreiben, wo auch mal im Winter gut -20°C auftreten können.
Nun, ich bräuchte nur den 0-8-15 RTC Chip(Tiny-RTC), mit einem Industrienorm Chip tauschen auf der Platine, aber leider machen das meine Finger Augen und Lötfähigkeiten nicht mehr mit.

Hat jemand 'ne Idee, wie ich das lösen könnte...gibt es preiswerte Module ,mit Industrienorm-Chip -40...+85° C ??

Gewiss gibt es sowas, aber es sollte sich aber auch in der Bastler-Preisspanne bewegen.

Nun vielleicht kann wer bitte einen Tip geben...

Gruss und Dank

Gerhard

seite5
29.09.2018, 11:56
Bei Reichelt gibt's den DS1337 im DIP-8 mit -45°C...85°C für 2.99Eus
Bei den meisten Fertig-Modulen mit DS3231 kann man leider nicht rausfinden, ob Chips mit dem geforderten T-Bereich eingebaut sind, würde mich
da auf die recht zwielichtigen Angaben auch nicht verlassen.
mfg
Achim

Rabenauge
29.09.2018, 13:34
Nur, weil etwas nicht für minus 20 Grad ausgelegt ist, heisst das nicht, dass es dann nicht mehr funktioniert- ich würd das Ding kurzerhand mal in die Tiefkühltruhe packen, für einige Tage, und gucken, was passiert....

Klebwax
29.09.2018, 15:31
Der Temperaturbereich im Datenblatt bedeutet ja nur, daß der Hersteller alle Parameter im Datenblatt für diesem Bereich garantiert. Über das Funktionieren außerhalb diese Bereichs ist damit nichts gesagt.


Nur, weil etwas nicht für minus 20 Grad ausgelegt ist, heisst das nicht, dass es dann nicht mehr funktioniert- ich würd das Ding kurzerhand mal in die Tiefkühltruhe packen, für einige Tage, und gucken, was passiert....

Richtig. Die mit dem erweiterten Temperaturbereich sind ja die gleichen Chips. Wenn ein Chip neu ist, mögen die schon mal ausgemessen sein. Wenn die Produktion dann eingefahren ist, werden alle auch alle Parameter im erweiterten Temperaturbereich einhalten.

MfG Klebwax

oberallgeier
29.09.2018, 15:40
.. Ich möchte ein RTC Modul in der "Wildnis" betreiben, wo auch mal im Winter gut -20°C auftreten können .. sollte sich aber auch in der Bastler-Preisspanne bewegenHallo Gerhard, Wildnis im Oderbruch?

Egal. Mein Bastler-Preisparadies liegt derzeit im Reich der Mitte in so ner Art Amazon-Kopie, also viele Shops unter einem Dach (mit einer Kasse). Dort gibts solche Teilchen kplt mit Batteriehalter für unter einen Euro. Ich kaufe meist dann, wenns die Lieferung per "..Economic Air Mail.." und möglichst kostenlos gibt, weil ich die Sachen dann in zehn bis vierzehn Tagen habe. Beispiel eins - im Langformat mit NXP8563 (https://de.aliexpress.com/item/PCF8563-PCF8563T-8563-IIC-Real-Time-Clock-RTC-Module-Board-For-Arduino/32805458289.html?spm=a2g0x.10010108.1000016.1.64c2 2a53x0vGpl&isOrigTitle=true) für 56 Bastlercent pro Stück kplt auf Board mit Batteriehalter. Das Datenblatt (https://www.nxp.com/docs/en/data-sheet/PCF8563.pdf) des RTC-Chips zeigt auf Seite 30, Fig 25, die Stromaufnahme bis runter auf -40 °C. N anderes Beispiel mit quadratischem Board wäre dies hier (https://de.aliexpress.com/item/1pcs-LOT-I2C-RTC-DS1307-AT24C32-Real-Time-Clock-Module-with-battery-For-AVR-ARM-PIC/32719691463.html?spm=a2g0x.search0104.3.1.e79d618d PL0sVw&ws_ab_test=searchweb0_0,searchweb201602_2_10320_10 065_10068_10843_10547_10059_10884_10548_10887_1069 6_100031_10319_10084_10083_10103_10618_10304_10307 _10820_10821_10302,searchweb201603_60,ppcSwitch_0&algo_expid=d9b02307-095c-458f-9982-b51b5ffda8b6-0&algo_pvid=d9b02307-095c-458f-9982-b51b5ffda8b6&transAbTest=ae803_5&priceBeautifyAB=0), keine Ahnung was für ein Chip drauf ist.

Viel Erfolg.

oderlachs
30.09.2018, 14:02
Hallo und Danke für Eure Vorschläge !!

@oberall : Ja ich sag noch Wildnis, heute sagt man wohl Outdoor dazu ;)

Werde mir mal auch solch ein Teil über Amazonien ordern....zur Zeit werkel ich noch am DS1307 der sich einfach nicht beschreiben lassen will (Datum setzen) :(
Na werde ich auch noch schaffen , wollte mal den Wochentag neu setzen, aber nix...
Hier mal der Code, vielleicht mache ich ich ja grundsätzliche Fehler:



void SET_Day(uint8_t s_day)
{
if (s_day < 1) s_day = 1;
s_day = Decimal_To_BCD(7); // mal 7 festgelegt zum Test für Sonntag
TWI_Start();
TWI_Write_Adr(0xD0); /* Sende Chip Adresse = 0xD0 für DS1307*/
TWI_Write_Data(0x03); /* drittes Zeitregister = weekday*/
TWI_R_Start(); /* Repeated start */
TWI_Write_Adr(0xD0); /* Write Adresse schreiben*/
TWI_Write_Data(s_day); // BCD Wert ins Register schreiben 7 für Sonntag
TWI_Stop();

}


Gruss und Dank

Gerhard

Klebwax
30.09.2018, 15:34
void SET_Day(uint8_t s_day)
{
if (s_day < 1) s_day = 1;
s_day = Decimal_To_BCD(7); // mal 7 festgelegt zum Test für Sonntag
TWI_Start();
TWI_Write_Adr(0xD0); /* Sende Chip Adresse = 0xD0 für DS1307*/
TWI_Write_Data(0x03); /* drittes Zeitregister = weekday*/
TWI_R_Start(); /* Repeated start */
TWI_Write_Adr(0xD0); /* Write Adresse schreiben*/
TWI_Write_Data(s_day); // BCD Wert ins Register schreiben 7 für Sonntag
TWI_Stop();
}


Ich hab jetzt nicht ins Datenblatt geschaut, aber was mir auffällt:
Es geht mit Start los, ok. Dann kommt die Adresse und das R/W Bit. Soweit auch ok.

Nur eine Bemerkung: Auch wenn ich die Funktion "TWI_Write_Adr()" nicht kenne, sollte sie melden, ob ein ACK vom Slave gekommen ist. Wenn man das auswertet weiß man, ob der Slave sich angesprochen fühlt, die Adresse also richtig ist.

Jetzt kommt die Registeradresse, auch ok.

Aber warum jetzt ein Start? Der Slave ist im "Write Mode" (R/W Bit war auf Write), also kann man jetzt den Wert ins Register schreiben. So ist das jedenfalls bei den meissten I2C Bausteinen gängig. Nur wenn man lesen will, bricht man die Übertragung nach dem Schreiben der Registeradresse ab und startet neu mit R/W Bit auf Read. Zusammengefasst : Das zweite Start() und Write_adr() weglassen.

MfG Klebwax

oderlachs
30.09.2018, 15:51
Hallo Klebwax !

Vielen Dank !!
Du hast genau das mir aufgezeigt, was ich eben gerade selber herrausfand.


Aber warum jetzt ein Start? Der Slave ist im "Write Mode" (R/W Bit war auf Write), also kann man jetzt den Wert ins Register schreiben. So ist das jedenfalls bei den meissten I2C (http://rn-wissen.de/wiki/index.php?title=I2C) Bausteinen gängig. Nur wenn man lesen will, bricht man die Übertragung nach dem Schreiben der Registeradresse ab und startet neu mit R/W Bit auf Read. Zusammengefasst : Das zweite Start() und Write_adr() weglassen.

Nun ja wenn man zu oft gestört wird mit anderen Aufgaben, da kann man solche Stolpersteine mit einbauen und übersehen. Aber es ist schön zu wissen , das zur Not immer Helfer zu finden sind.

Einen schönen Sonntag noch

Gruss und Dank

Gerhard