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.
Hi! Nachmal zur Klarstellung: Im Datenblatt steht: on-chip 32.768 kHz oscillator circuit Braucht der jetzt trotzdem einen externen Quarz?
Fire Eagle schrieb: > Braucht der jetzt trotzdem einen externen Quarz? Mal im Datenblatt nachgesehen? (Hint: 7.10) Gruß Oliver
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?
>Im Datenblatt steht: on-chip 32.768 kHz oscillator circuit >Braucht der jetzt trotzdem einen externen Quarz? Nein natürlich nicht, der Quarz ist im DB nur zum Spaß eingezeichnet **ironie** http://www.fritzler-avr.de/HP/Librarys/PCF8583_his.php Damit ist der Oszillator gemeint, der nochn Quarz brauch.
Hallo! Du hast scheinbar in meiner Antwort übersehen, das ich jetzt die Hardware = Quarz und Kondensator richtig habe. Der PCF zählt ja richtig, nur der Interrupt funktioniert nicht.
Verwende einen 4,7KOhm pull-up, aber es tut sich nichts. Stimmt vielleicht der Widerstands-wert nicht? SCL und SDA verwenden aber auch 4,7KOhm
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.
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.
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?
@ Fire Eagle (Gast) >geht und die sind ja auch Open Collector so wie INT. Sehr seltsam. >Kann sie das jemand erklären? Vielleicht ware die 4,7k in Wirklichkeit 470 oder gar 47 Ohm. Miss mal nach.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.