PCF 8583 Problem

Gast #2656044
Lesenswert?

Hallo!

Ich hab ein Problem mit meinem PCF 8583 von NPX, den ich mit einem 
Atmega8 über I2C ansteuere.

Nach dem Reset beginnt er nicht, automatisch zu zählen, so wie es im 
Datenblatt steht:

Initialization
When power-on occurs the I2C-bus interface, the control and status 
register and all clock
counters are reset. The device starts time-keeping in the 32.768 kHz 
clock mode with the
24 hour format on the first of January at 0.00.00:00. A 1 Hz square wave 
with 50 % duty
cycle appears at the interrupt output pin (starts HIGH).

Ich kann zwar über I2C Daten z.B. ins Minuten und Sekundenregister 
schreiben und auch richtig wieder zurücklesen, aber zählen tut er weder 
von selbst noch wenn ich der Bit start counting lösche.

Habe alle pins bis auf OSCI und OSCO an den Atmega8 angeschlossen.
Liegt da vielleicht der Fehler?

Ich wäre für jede Hilfe dankbar.
Gast #2664359
Lesenswert?

Hi!

So, habe jetzt hardwaremäßig alles richtig.
Leider funktioniert der Interrupt noch nicht.

Im Datenblatt steht:

When power-up occurs the I2C-bus interface, the
control/status register and all clock counters are reset.
The device starts time-keeping in the 32.768 kHz clock
mode with the 24 h format on the first of January at
0.00.00: 00. A 1 Hz square wave with 50% duty cycle
appears at the interrupt output pin (starts HIGH).

Ich habe in meinem Code keine Initialisierung des PCF8583, sondern polle 
zum Testen alle 0,5 Sekunden das Sekundenregister des PFC8583 via I2C. 
Er zähle auch nach Reset von 0 an wie gewollt, nur bekomme ich am Pin 7 
des PCF (Open drain Interrupt) kein 1Hz Signal (so wie es im Datenblatt 
steht). Pin7 habe ich über einen 4,7kOhm Wdst an INT1 meines Atmega8 
angeschlossen. Interrupt am ATmega ist richtig eingestellt, habe ich 
gtestet. Pin7 am PCF habe ich gemessen, der ist konstant auf 0,02 Volt.

Hat jemand eine Idee, was ich falsch machen?
#2664525
Lesenswert?

Hallo,


Fire Eagle schrieb:
> nur bekomme ich am Pin 7 des PCF (Open drain Interrupt) kein 1Hz Signal (so wie 
es im Datenblatt> steht)

Am Pin 7 wird doch nur im Alarmfall der Interrupt ausgelöst.

Wenn keine Alarmeinstellung und kein Alarmcontrolregister beschrieben 
wird macht das Teil nichts!

Verwechsle das nicht mit einem DS1307. Der kann wahlweise Interrupt und 
Taktungen von 1 Sekunde bis..xx am Int-Ausgang.


Gruß G.G.
Gast #2665563
Lesenswert?

Hi!

Aber warum bekomme ich den 1 Mz Takt dann nicht zu sehen?

Ich hab auch probiert Register 0x08 = 0x09 (d.h. timer flag interrupt + 
timer counts hundredths of seconds) und register 0x00 = (1<<3) (d.h. 
alarm register (Reg 0x08) enable). Aber auch bei diser variante bekomme 
ich am int-pin keinen Interrupt. Der Interrupt Pin hängt wie gesagt umer 
4,7kOhm an vcc.
Gast #2666782
Lesenswert?

Hallo!

Ich hab jetzt gerade am INT-Pin den 4,7 KOhm Widerstand weggelassen und 
stattdessen den internen pull-up aktiviert und jetzt funktioniert es.
Aber an den SCL und SDA Pins habe ich einen 4,7 KOmh Widerststand und es 
geht und die sind ja auch Open Collector so wie INT. Sehr seltsam.
Kann sie das jemand erklären?
Gast #2666868
Lesenswert?

Hi!

Laut Farbcode sind es 4,7 kOhm, laut Multimeter 4,6.
Komisch das ganze. Aber vielleicht braucht der Int Pin einen höheren 
pull-up Widerstand als SCL, SDA. Der Atmega hat doch 20KOHm pull-ups, 
oder?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren