Forum: Mikrocontroller und Digitale Elektronik DS3231 im VBAT Betrieb kein SQW Interrupt möglich?


von Olli Z. (z80freak)


Lesenswert?

Ich habe einen DS3231 und möchte diesen nicht permanent mit VCC 
versorgen um maximal Strom zu sparen. Dazu steuere ich vom 
Mikrocontroller die VCC über eine GPIO nur für die Zeiten an in denen 
ich per Software mit dem Chip kommunizieren will, ansonsten ist VCC aus 
und der DS läuft auf Batteriepuffer mit einer CR2032.
Er soll bei Alarm den SQW Pin auf LOW ziehen (ext. Pullup vorhanden). 
Ich hatte gehofft das dies auch im VBAT Modus funktioniert wenn das 
BBSQW-Bit gesetzt ist? Leider klappt das nicht.

von Nemopuk (nemopuk)


Lesenswert?

Im DB steht: Because the INTCN bit is set to logic 1
when power is first applied, the pin defaults to an interrupt output 
with alarms disabled.

Womöglich musst du den Alarm jedes mal wieder einschalten, wenn du die 
Versorgungsspannung anlegst.

von Olli Z. (z80freak)


Lesenswert?

Hm, ich hab gleich versucht im Puls-Betrieb zu arbeiten. Jetzt hab ich 
mal auf Dauerspannung geschaltet und da passiert dasselbe. Wenn ich die 
Verbindung vom DS zum ESP-GPIO trenne geht der Ausgang auf Low, es 
scheint also wirklich das der Output nicht kommt...
Laut meiner Info muss INTCN auf 1 stehen, ebenso BB_SQW auf 1.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Uuh, ich hab nen Verdacht! Wenn auf dem DS Board ein Pullup drauf ist 
(was recht wahrscheinlich ist) und ich den VCC mit dem GPIO auf LOW 
ziehe anstelle ihn "offen" zu lassen dann wird der Pullup zum Pulldown 
und den Open-Drain Output des DS stören?

von Nemopuk (nemopuk)


Lesenswert?

Olli Z. schrieb:
> Uuh, ich hab nen Verdacht!

Das ist wohl richtig. VCC einfach offen zu lassen ist dann aber auch 
keine Lösung, weil der HIGH Pegel über den Widerstand nach VCC fließt.

Ob der Widerstand wue befürchtet existiert, lässt sich leicht ausmessen.

von H. H. (hhinz)


Lesenswert?


Beitrag #7979241 wurde vom Autor gelöscht.
von Nemopuk (nemopuk)


Lesenswert?

Ich hoffe, du ziehst auch die I2C Leitungen auf LOW, wenn du der RTC 
ihre Versorgungsspannung weg nimmst. Sonst hast du auch dort verbotene 
Pegel. Warum machst du das überhaupt?

von Rahul D. (rahul)


Lesenswert?

Olli Z. schrieb:
> (was recht wahrscheinlich ist)

sollte man messen können...

von Nemopuk (nemopuk)


Lesenswert?

Nemopuk schrieb:
> Sonst hast du auch dort verbotene Pegel.

Sorry, das war voreilig. Bei diesem IC sind ausnahmsweise bis zu 5,5 V 
unabhängig von VCC erlaubt.

von Olli Z. (z80freak)


Lesenswert?

Nemopuk schrieb:
> Ich hoffe, du ziehst auch die I2C Leitungen auf LOW, wenn du der RTC
Guter Tipp, werde ich berücksichtigen!

> Pegel. Warum machst du das überhaupt?
Um möglichst wenig Strom zu verbrauchen. Im dauerhaften VCC Betrieb 
schluckt das Board gute 1,7 mA. Im VBAT Modus nur wenige µA.

von Olli Z. (z80freak)


Lesenswert?

H. H. schrieb:
> 
https://forum.arduino.cc/t/mods-to-ds3231-zs-042-module-for-power-control/1101164

Ja, genau das hatte ich befürchtet. Die "Ladeschaltung" hatte ich 
bereits eliminiert und anstelle der LIR eine CR2032 eingesetzt. Auch die 
LED ist schon raus. Dann werde ich das mal cutten und dann nochmal 
schauen.

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

HA! Kaum macht man es richtig, schon funktioniert es :-) Es war der 
Pullup auf dem Board.
Zum Glück war es der oberste Widerstand des oberen Widerstandsarrays an 
dem der verbunden war. Ich habe das Array kurzerhand per Heißluft um 
eine Etage tiefer gesetzt um die I2C Pullups zu erhalten ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.