Forum: Mikrocontroller und Digitale Elektronik DS3231 Alarm Register aktivieren


von Ardu (Gast)


Lesenswert?

Hallo,

ich möchte, dass der Ausgang INT/SQW einmal pro Sekunde oder einmal pro 
Minute schaltet. Wenn ich INTCN auf 0 setze, sehe ich meine LED im 
Sekundentakt blinken. RS1 und RS2 auf 0.

Ich möchte jedoch die andere Konfigurationen mit das Alarmregister 
ausprobieren. Dazu habe ich immer das 7.Bit auf 1 gesetzt. Wenn ich 
jetzt INTCN und A1IE auf 1 setze, sollte doch der Ausgang auch im 
Sekundentakt arbeiten. Ich sehe jedoch weder meine LED leuchten noch 
mittels Logikanalyzer einen kurzen Puls. Wenn ich A2IE auf 1 setze müßte 
sie analog dazu im Minutentakt auslösen. Geht funktioniert auch nicht.

Übersehe ich irgendwas?

Registeradresserinhalte:
07: 10000101
08: 10000000
09: 10000000
0A: 10000000
0B: 10000000
0C: 10000000
0D: 10000000
0E: 00000101
0F: 10001011

Tschau
Ardu

von Ardu (Gast)


Lesenswert?

Ergänzung:

der Ausgang wird als low aktiv beschrieben. Das sollte doch bedeuten, 
dass er in Ruhezustand High ist? Ich messe aber dauerhafte 0,04V, also 
eindeutig Low Pegel.

Wer kann helfen?

von Karl H. (kbuchegg)


Lesenswert?

Ähm. Du hast aber schon Pullup Widerstände angeschlossen?

von Ardu (Gast)


Lesenswert?

Hallo,

das ist ein ein fertiges kleines Modul vom Chinesen über ebay. Hatte 
schon den Pin vermessen. Es ist ein 2,7k Pullup vorhanden. Habe jetzt 
noch einen 10k Pullup zusätzlich verbunden. Ändert leider nichts.

von Ardu (Gast)


Lesenswert?

Hallo,

wenn ich in 0x0E Bit 2 INTCN auf Null setze, taktet er im festen 1Hz 
Takt, was man noch mit RS1/RS2 ändern könnte. Die LED blinkt ebenfalls.

Registeradresse:  Byte
07: 10000101
08: 10000000
09: 10000000
0A: 10000000
0B: 10000000
0C: 10000000
0D: 10000000
0E: 00000001
0F: 10001011

Setze ich INTCN auf 1, passiert nichts mehr.

von Ardu (Gast)


Lesenswert?

setze ich INTCN auf 1 und A1IE/A2IE auf 0 (Alarm Interrupt Enable) dann 
ist der Ausgang dauerhaft auf High. Damit wäre kein Alarm aktiv.
Sobald ich A1IE oder A2IE auf 1 setze geht der Ausgang auf dauerhaft auf 
Low. Genau das verstehe ich nicht.

von Ardu (Gast)


Lesenswert?

Hallo,

sagt mal, muß man etwa das Alarm Flag A1F/A2F nach jedem Alarm löschen? 
Also ständig auf 0 setzen wenn er ausgelöst hat? Das könnte den Effekt 
irgendwie erklären.

von Ardu (Gast)


Lesenswert?

Hallo,

okay, hab eine Alarmzeit vorgegeben und beide Alarmflags vorher auf 0 
gesetzt. Bis die Zeit ran war, lag High Signal an, dann war die Zeit 
erreicht und das Signal ging dauerhaft auf Low. Das heißt, man muß 
ständig den Alarm löschen bevor er neu triggert. Ich dachte der löst nur 
einen kurzen Low Impuls aus wartet erneut bis irgendwas "matched".

Klingt das logisch?

von Klaus R. (klaus2)


Lesenswert?

Klingt logisch. Denn genau das ist ja auch die Idee des ganzen, der uC 
wacht dann auf, macht dies & das und setzt das flag vorher zurück, dann 
legt er sich wieder schlafen.

Klaus.

von Ardu (Gast)


Lesenswert?

Hallo,

i.O. klingt alles einleuchtend. Der Programmieraufwand steigt jedoch. 
:-)
Wie oft kann man die Register denn beschreiben? Wenn ich jede Sekunde 
löschen müßte, wäre das viel Stress für das Register?

von kahese s (Gast)


Lesenswert?

Habe eine frage dazu. in welchem Register löscht du den die flags?

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.