www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PCF 8583 Problem


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi!

Nachmal zur Klarstellung:

Im Datenblatt steht: on-chip 32.768 kHz oscillator circuit

Braucht der jetzt trotzdem einen externen Quarz?

Autor: Oliver J. (skriptkiddy)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Fire Eagle schrieb:
> Braucht der jetzt trotzdem einen externen Quarz?
Mal im Datenblatt nachgesehen? (Hint: 7.10)

Gruß Oliver

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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?

Autor: Martin Wende (Firma: fritzler-avr.de) (fritzler)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
>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.

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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.

Autor: Martin Wende (Firma: fritzler-avr.de) (fritzler)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Machmaln Pullup auf VDD, ich glaub der war open drain

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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

Autor: G. G. (g_g)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Martin Wende (Firma: fritzler-avr.de) (fritzler)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
nah, der pcf hat nachm reset zustand abern 1hz takt am \int

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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?

Autor: Falk Brunner (falk)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
@  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.

Autor: Fire Eagle (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net