Forum: Mikrocontroller und Digitale Elektronik PCF8583


von Steffen (Gast)


Lesenswert?

hi @ all

ich arbeite gerade an einem schulprojekt bei dem ich eine RTC benötige. 
In meinem projekt soll die RTC (PCF8583) an einen I²C bus angeschlossen 
werden.
nun meine frage, weiss jemand ob es schon einen fertigen schaltplan mit 
dieser Uhr gibt, am besten noch inkl. knopfzelle?
da ich noch ein "frischling" auf dem gebiet bin wär das für ,mich das 
praktischste...
thx im vorraus
cya steffen

von Michael (Gast)


Lesenswert?

Besorg Dir einfach mal das Datenblatt von Philips. Dort steht das alles 
drin!

von Sebastian Wille (Gast)


Lesenswert?

Hi,

ich "kämpfe" auch gerade mit dem exakt gleichen Chip rum. Vor ein paar 
Wochen habe ich hier gepostet, weil mein Code den Chip wohl beschreiben, 
nicht aber von ihm lesen konnte.

Leider hatte ich keine Zeit bisher, das Problem zu beheben. Such doch 
mal nach "8583" mit der Suchfunktion.

Grüße,

   Sebastian

von chris (Gast)


Lesenswert?

welchen kondensator hast du zwischen OSCI und + geschalten ?

von BernhardT (Gast)


Lesenswert?

Chris,
steht doch im Datenblatt 10p oder besser gleich ein Trimmer 3,4 bis 22pF 
oder so.
Steffen,
wer fertige Lösungen muss googeln lernen.
Gruß Bernhard

von zu faul zum suchen? (Gast)


Lesenswert?


von Sascha (Gast)


Lesenswert?

Hallo Steffen,

ich habe vor kurzem mit einem PCF8563 gearbeitet, falls Du Interesse an 
dem Source hast (Atmel AVR´s, AVR-GCC) gib bescheid.

Gruß,
Sascha

von Steffen (Gast)


Lesenswert?

hi...erstmal danke für die antworten :)...
jetzt hab ich nochn problem...und zwar find ich den trimmer nicht in den 
eagle librarys...und über GOOGLE (ja ich weiss was google is :-P) find 
ich keine library....hat den jemand zufälligerweise schon???

thx steffen

von chris (Gast)


Lesenswert?

wie kann ich testen ob der fehler bei meinem programm liegt oder ob der 
pcf 8583 defekt ist ?

ich hab den 8583 an den I2C bus angehängt (mit pull-up wiederständen), 
einen 32 kHz quarz an die ensprechenden pins gelegt, an den OSCI pin 
noch einen 10pF kondensator auf +5V  gehängt !


dann ahb ich an den interrupt pin einen 10k widerstand auf + gehängt 
sowieeine LED auf GND!

da ja im register 0, 0 steht sollte an diesem ausgang ja eine freuquenz 
von 1Hz anliegen.
also die lED blingt anfangs auch, allerdings nach ca. einer minute hört 
sie auf zu blinken und leuchtet permanent !

ist das "normal" ?

von A. Arndt (Gast)


Lesenswert?

Hallo,

ich nutze den Maxim-Chip 1307, habe auch komplette Platine mit 
Stützbatterie. Vorteil : die Batterie wird nur aktiv, wenn die 
Versorgungsspannung unter 2,4V (oder so) fällt.
Läuft astrein über I2C...

Gruss
Alex

von Sven (Gast)


Lesenswert?

Hi Steffen und Chris!

Sofern ich weiß, sollten die Register der Uhr am Anfang beschrieben 
werden, da es sonst sein kann, dass das Flag (im-Sekunden-Register) für 
das Enable der Uhr falsch gesetzt ist und die Uhr nicht losläuft. 
Eventuell könnte ein Überlaufen des Sekunden-Registers bei unsinnigen 
Startwerten den Stop nach einer Minute verursachen.

Der Trimmer am Quarz gegen +5V ist wohl nicht unbedingt nötig. Eine 
Messung des Quarztaktes direkt mit dem Oszi geht nicht, da das Oszi die 
Schaltung zu stark belastet. Ob ein 10/1-tastkopf geht, weiß ich nicht. 
Ein schneller hochohmiger Spannungsfolger mit OPV und geringen 
Eingangskapazitäten direkt am Pin könnte helfen.

Hi A. Arndt!

Ich habe auch den 1307 von Maxim in Arbeit, funktioniert ganz gut, die 
Batteriepufferschaltung ist besser als beim PCF8583. Allerdings hat der 
1307 keine Alarmregister und folglich auch keinen Alarminterrupt.

Beste Grüße

Sven

von Christoph (Gast)


Lesenswert?

Hallo Steffen,

mit welchem Prozessortyp möchtest Du denn arbeiten. Für den
Atmel AVR gbt es Beispielprogramme von BASCOM der den PCF
ansprechen kann. Habe ich schon mehrfach erfolgreich getestet.

Gruß Christoph

von Steffen (Gast)


Lesenswert?

Hi

also ich möchjte gern mit dem 80C535 von siemens/infineon arbeiten, den 
hat mir mein lehrer empfohlen, da die schule schonmal mit dem ne 
wetterstation aufgebaut hat und da ich genauso luftfeuchtigkeit und 
temperatur messen möchte kann ich auch weitgehend nach dem vorbild der 
wetterstation bauen...nur leider ist keine echtzeituhr eingebaut, da sie 
direkt mit dem PC kommuniziert und so der PC die zeiterfassung vornimmt 
:(

von chris (Gast)


Lesenswert?

ich habe leider noch immer ein problem mit dem pcf 8583, muss es aber 
dieses wochenende lösen !

also, ich möchte nur einmal die aktuelle sekunden aus dem baustein 
auslesen !

gleich zur erstenfrage, muss ich irgendwelche konfigurationsbits setzen 
wenn ich den baustein ganz normla als uhr verwende ? (laut meiner 
auffassung nicht, aber vielleicht hab cih ja etwas übersehen)

fogendermaßen habe ich versucht die sekunden auszulesen:

zuerst schreibe ich die Adresse des bausteins (0xA0), dann schreibe ich 
die Adresse des entsprechenden registers (0x02), anschließend adressiere 
ich den baustei zum lesen (0xA1) und schlussendlich lese ich die daten 
vom bus ein.

habe ich da einen prinzpiellen fehler ?

von Christoph (Gast)


Lesenswert?

Hallo Chris,

versuch es unter www.mcselec.com  Unter Applictaion Nr. 11 findest Du 
sowohl einen Schaltplan als auch ein Beispiel-Programm. In Bascom51. Den 
Compiler gibt es dort auch umsonst (bis 2K-Code) falls Du diesen noch 
nicht hast.

Gruß

Christoph

von chris (Gast)


Lesenswert?

naja, bis jetzt hab ich C unter CC5X programmiert.

und eigentlich möchte ich mein ,schon recht umfangreiches proramm, nicht 
umschreiben.

von chris (Gast)


Lesenswert?

also ich hab jetzt folgendes problem. der i2c bus scheint jetzt zu 
funktionieren, unter dem oszi habe ich gesehen das die adressierung des 
PCF auch funktioniert, nur als antwort bekomme ich vom pcf nur 1er !

also mein programm shaut folgendermaßen aus:

void RTC_auslesen ()
{
 I2C_BUS_START ();      // Startbit
 I2C_W (0xA0);    // Adresspointer auf die auszu-
 I2C_W (0x02);    // lesende adresse stellen
 I2C_BUS_START_rep ();
 I2C_W (0xA1);    // zum lesen adressieren
 I2C_R ();    // Daten vom bus einlesen
 I2C_NACK ();
 sek = I2Cempfang;      // Daten ins register sek kopieren
 I2C_BUS_STOPP ();
}

wo könnte der fehler liegen ?

von Christoph (Gast)


Lesenswert?

Hallo Chris,

auch wenn meine C-Kenntnisse sich in Grenzen halten sieht das
eigentlich ok aus. Aber vielleicht eine ganz dumme Frage:
hast Du den Adresspin A0 (Pin 3) auf Masse gelegt, sonst stimmt
nämlich die Adresse nicht !

Gruß

Christoph

von chris (Gast)


Lesenswert?

ja, der liegt auf masse !

von Bert D. (broetl)


Lesenswert?

Hallo Sascha,

...auch wenn die Einträge hier schon etwas älter sind...

ich versuche mit dem PCF8563  zu arbeiten. es währe mir sehr hilfreich, 
wenn du mir deinen Source code schicken könntest. (Atmel AVR´s, AVR-GCC)

Wenn noch jemand anders Programmbeispiele in C-Code hatt, ich bin jedem 
sehr dankbar! Ich Kämpf mit dem Ding schon ein par wochen rum.

Vielen Dank und Gruß,
Bert.

von Bert D. (broetl)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Problem mit der Zeitabfrage bei der RTC PCF8583.
Ich verwende einen Atmega16, ein EasyAVR5 Board, Programmiere in Visual 
Stuio und Flashe das Programm mit dem AVRFLASHPROGRMMER von 
EasyAVR(2.10).

Mein Problem liegt darin, dass ich die aktuelle Zeit nicht aus dem 
Speicher der RTC lesen kann. Die Routinen für den I²C Bus habe ich aus 
dem Buch von G.Schmitt "Mikrocomputertechnik mit Controllern der Atmel 
AVR-RISC-Familie" entnommen und sie nach dem Datenblatt des  PCF8583 
angepasst.

Für Lösungen und Tipps währe ich sehr dankbar!

Gruß, Bert.

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.