RTC PCF8583 - Quarz geht nicht

Gast #61094
Lesenswert?
• ▲
▼
Hallo Leute!

Und schon komme ich wieder mit dem nächsten Prob angenervt g

Ich habe gerade die Software für den I2C RTC - Chip gebastelt. Doch
irgendwie scheint die Uhr zu stehen. Hab einen 3,2768 MHz Quarz zw.
OSCI und OSCO gehängt und von OSCI nach 5V+ einen Trimm-Elko. Leider
bleiben die Register im IC immer gleich. Wenn ich eine Uhrzeit rein
schriebe, dann kann ich diese anschliesen wieder lesen.

Wenn ich OSCI u. OSCO kurz miteinander verbinde, dann zähl er ein paar
1/100 weiter. Muss ich evtl. an den Quarz noch Masse anlegen (an's
Gehäuse?) ? Kann ich  mit einem einfachen Multimeter (Strom, Spannung,
Wiederstand) bestimmen, ob der Quarz funktioniert?

...puh

Also wie immer hoffe ich, dass ihr mir helfen könnt.

MfG
Sascha
Gast #61097
Lesenswert?
• ▲
▼
mist... man(n) darf halt nicht mit ausgeschaltetem Hirn Teile aus dem
Katalog suchen...

3,2768MHz sind nun mal nicht 32,768kHz g

naja... hab eine alte Armbanduhr geplündert, jeztz geht's...

Danke für den Tipp!

MfG
Sascha
Gast #61098
Lesenswert?
• ▲
▼
Hallo Sascha,

ich bin neu in dem AVR Geschäft, kannst du mal Deinen Code oder Teile
davon posten.
Wie spricht man den PCF8583 an?
Hast Du einen Atmega mit TWI interface oder die I2C Sodtwarelösung?
Ich habe bisher weder mit I2C noch mit AVR was gemacht.

Grüße Achim
Gast #61099
Lesenswert?
• ▲
▼
Hallo Achim!

Also ich habe diese TWI-Lib (für das HW-TWI des Mega32) genommen:
http://www.mikrocontroller.net/forum/read-4-50052.html

Im Datenblatt ist eigentlich alles recht schön beschrieben. Hier meine
aktuelle Code (AVR-GCC):

unsigned char tmp,sec,std,min,t,m,w;
unsigned int j;
unsigned char str[21];
unsigned char wota[7][3] = {
"Mo","Di","Mi","Do","Fr","Sa","So" };

    // dummy-write um RAM-Addi zu setzen

    if (start_i2c(0xA0)==0) GR_ON;
    else {RT_ON; GR_OFF;}
    write_i2c(0x02);

    // zum lesen wechseln
    if (rep_start_i2c(0xA1)==0) OR_ON;
    else { RT_ON; OR_OFF;}

    // Sek. lesen, und in einen Char umwandel (High-Nibbel=10sek,
Low-Nibbel=sek)
    tmp = read_i2c_ack();
    sec = ((tmp>>4)*10) + (tmp&0x0F);

    // wie bei den sek.
    tmp = read_i2c_ack();
    min = ((tmp>>4)*10) + (tmp&0x0F);

    // siehe Datenblatt
    tmp = read_i2c_ack();
    std = ( ((tmp>>4)&0x03)*10) + (tmp&0x0F);

    // siehe Datenbaltt
    tmp = read_i2c_ack();
    j = (tmp>>6)+2004;
    t = ( ((tmp>>4)&0x03)*10) + (tmp&0x0F);

    tmp = read_i2c_nack();
    w = (tmp>>5);
    m = ( ((tmp>>4)&0x01)*10) + (tmp&0x0F);

    stop_i2c();
    delay_ms(100);

      sprintf(str, "%s, %02u.%02u.%04u",wota[w],t,m,j);
      lcd_gotoxy(0,0);
      lcd_puts(str);
      suart_puts(str);
      suart_puts_P("\r\n");

      sprintf(str, "%02u:%02u:%02u",std,min,sec);
      lcd_gotoxy(0,1);
      lcd_puts(str);
      suart_puts(str);
      suart_puts_P("\r\n");

Falls du noch Fragen hast, dann sag bescheid.

MfG
Sascha

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.