Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: PCF 8583 läuft nicht! Kategorie: I²C-Bus (von Tieli - 21.07.2002 19:12)
Als Antwort auf Re: PCF 8583 läuft nicht! von André H. - 21.07.2002 13:39

Hallo André,

danke für den Tipp.

Es lag am Kondensator.
Ich habe jetzt einen 10pF eingebaut.
Läuft perfekt.

MfG
Tieli


> Hallo Tieli,
>
> Zuerst: Ein Ausrufezeichen im Betreff reicht. Dein Posting wird schon nicht übersehen. :-)
>
> Hast Du zum Quarz auch einen Trimmerkondensator, wie im Datenblatt des PCF8583
> beschrieben, zwischen OSCI und VDD gesetzt. Sonst schwingt der Quarz nicht an.
> Ich habe den PCF8583 gerade angeschlossen und dies auch festgestellt. Da ich keinen
> Trimmer zu Hand hatte, habe ich  einen Keramikkondensator mit 22pF benutzt.
> Der Quarz hat erst nach ca. 1 Minute angefangen zu schwingen. Ich weiÃ? nicht, ob diese
> mit einem Trimmerkondensator schneller anfängt zu schwingen.
>
> Hier das kleine Testproggie:
> Es gibt die Uhrzeit(hh:mm:ss) des PCF8583 an der seriellen
> Schnittstelle aus (Hyperterminal, 57600Baud).
> Die Adresse für den PCF8583 ist auf 162/163 gesetzt (A0 auf VDD).
> Wenn Du A0 auf GND hast mu�t Du diese auf 160/161 ändern.
>
> thread main
> /* requires: i2c.c2, hwcom.c2 V2.x */
> {byte sec,min,std;string s;
>  hwcom.init();
>  hwcom.setspeed(8);
>  hwcom.put(12);
>  loop
>   {
>   i2c.start(162);
>   i2c.write(0x02);
>   i2c.start(163);
>   sec=i2c.read();
>   min=i2c.read();
>   std=i2c.readlast();
>   i2c.stop();
>   s=((std shr 4) +0x30) + ((std & 0xf) +0x30);
>   s=s + ":";
>   s=s + ((min shr 4) +0x30) + ((min & 0xf) +0x30);
>   s=s + ":";
>   s=s + ((sec shr 4) +0x30) + ((sec & 0xf) +0x30);
>   hwcom.put(12);
>   hwcom.print(s);
>   sleep 995;
>  }
> }
>
>
> MfG André H.
>
>
>
> > Hallo alle zusammen,
> >
> > ich habe mir den PCF 8583 gekauft, das Modul pcfuhr heruntergeladen und eine Uhr programmiert (Anlage).
> >
> > Ich habe, wie im Datenblatt beschrieben, einen 32768Hz Quarz an OSCI und OSCO angeschlossen.
> >
> > Wenn ich jetzt die Systemzeit in den PCF lade und dann die Systemuhr neu abgleichen will, läuft die Uhr ab der zuletzt gespeicherten Zeit weiter!!!!!!
> >
> > Der PCF arbeitet also nicht.
> > Er arbeitet zur Zeit nur als Speicher.
> > Wenn ich 12:12:12 in den PCF einlese, 1 Minute warte, und die Systemuhr mit dem PCF abgleiche, müsste eigentlich 12:13:12 als Zeit angezeigt werden.
> > Aber die Systemuhr startet beim PCF-Abgleich wieder bei 12:12:12.
> >
> > Ich habe mit dem Ozilloskop am Quarz genau 50Hz gemessen, nicht 32768Hz, warum??????
> >
> > Ist der PCF defekt?
> >
> > Anbei mein Uhrprogramm.
> >
> > Wenn ich die Taste 7 drücke, wird die Systemzeit in den PCF geladen.
> > Wenn Taste 3 gedrückt wird, wird die Systemzeit mit der PCF-Zeit aktualisiert.
> >
> > Allerdings wird auch das Jahr genullt!
> >
> > Ist das Modul pcfuhr defekt?
> >
> > Danke für Eure Hilfe.
> >
> > thread main
> > {
> > lcdext.init();
> > i2c.init();
> >
> > byte a;
> > int s,m,h,t,mo,j;
> > string zeit,datum;
> >
> > loop
> > {
> > s=system.second();
> > m=system.minute();
> > h=system.hour();
> > t=system.day();
> > mo=system.month();
> > j=system.year();
> >
> > str.putintf(zeit,h,2);
> > str.putstring(zeit,":");
> > str.putintf(zeit,m,2);
> > str.putstring(zeit,":");
> > str.putintf(zeit,s,2);
> >
> > lcdext.print(zeit);
> > str.clear(zeit);
> >
> > lcdext.goto(1,0);
> >
> > str.putintf(datum,t,2);
> > str.putstring(datum,":");
> > str.putintf(datum,mo,2);
> > str.putstring(datum,":");
> > str.putintf(datum,j,4);
> >
> > lcdext.print(datum);
> > str.clear(datum);
> >
> > lcdext.home();
> >
> > if tast.taste()==3
> > {a=1;
> > pcfuhr.get_I2C_time (a);
> > }
> > sleep (200);
> > a=0;
> >
> > if tast.taste()==7
> > {pcfuhr.set_I2C_time ();}
> > sleep (200);
> >
> > }
> >
> >
> >
> > }
> >


    Antwort schreiben


Antworten: