- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 11

Thema: Rtc ds3231

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    Du solltest die Code Tags verwenden, damit du den Code direkt in den Post integrierst. Wenn du auf Antorten gehst und dann auf Erweitert siehst du ein Raute Symbol. Damit kannst du den Code integrieren.

    Jetzt zu deinem Problem. Du solltest dich in die Bustopologie genau einlesen. Ich weiß zwar nicht wie du es angeschlossen hast, bei einem I2C hast du aber 2Leitungen (eigentlich min. 4 da du noch VCC und GND brauchst). Die anderen Leitungen sind der Takt und die Daten. Der Takt wird mit SCL (Serial Clock) und die Daten werden mit SDA (Serial Data) bezeichnet.

    Da du TWSR, TBSR,... Register verwendest, verwendest du Hardware I2C. Das bedeutet das du SCL des IC (dein RTC, könnte aber auch ein anderer sein) mit SCL von deinem µC (PC0). Das gleiche ist mit PC1 (das wäre SDA). Der Bus ist bidirektional. Es geht vom µC die Daten an den I2C-Teilnehmer über die SDA Leitung, aber auch vom I2C Teilnehmer zum µC. Der Clock wird immer vom Master erzeugt. Ich schreibe absichtlich nicht µC, da man den auch als Slave konfigurieren kann.

    Es gibt auch einen TWI-Interrupt, falls du die Übertragung Interrupt gesteuert haben willst.

    MfG Hannes

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    09.08.2012
    Beiträge
    6
    Hallo Hannes.
    Danke für deine Antwort.
    Ich habe nun einen anderen code verwendet (Peter fleury) da er für mich einfacher zu verstehen war. Unten ein kleiner auzug davon. Es klappt auch alles, habe es mit einem osziloskop nach geprüft. Nun wollte ich aber den INT/SQW am ausgang aktivieren (auskommentierter Teil) leider funktioniert das nicht.
    Was mache ich falsch?
    HIer ein auszug aus dem Datenblatt des DS3231
    Alarm1 can be set by writing to register 07h- to 0Ah. The alarm can be programmed to activate the INT/SQW output on an alarm match condition.
    Bit 7 of each of the time of day alarm registers are make bits.


    int main(void)
    { DDRC = (1<<PC0)|(1<<PC1);
    PORTC = (1<<PC0)|(1<<PC1);
    DDRD= (1<<PD6);
    PORTD=(1<<PD6);
    i2c_init();



    //i2c_start(0xD0);
    //i2c_write(0x07);
    //i2c_write(0x80);
    //i2c_write(0x80);
    //i2c_write(0x80);
    //i2c_write(0x80);
    //i2c_stop();
    //
    //i2c_start(0xD0);
    //i2c_write(0x0E);
    //i2c_write(0x05);
    //i2c_stop();



    while(1)
    {

    _delay_ms(1);

    i2c_start(0xD1);
    i2c_write(0x00); // write address = 5
    i2c_stop();

    _delay_ms(100);

    i2c_start(0xD0);
    i2c_write(0x0B);
    i2c_write(0x05);
    i2c_stop();


    }
    }

    LG simone

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo,

    funktioniert dein LCD schon? Wenn nicht würde ich erst mal daran gehen, um die Funktionsweise des Controllers besser zu verstehen. Und wenn das LCD läuft kann man seinen Code auch leichter debuggen, da man Statuswerte einfach anzeigen kann.

    Wie ist denn die Verdrahtung deines I2C-Busses? Hast du die Pull-Up-Widerstände richtig platziert? Vielleicht wäre es sinnvoll mal einen Schaltplan deiner Schaltung zu zeigen, damit wir hier eventuell Fehler erkennen können.

    Viele Grüße
    Andreas

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    09.08.2012
    Beiträge
    6
    Hallo Andreas,
    um mein LCD kümmere ich mich erst später wollte erst mal mein bauteil richtig ansteuern können.
    Der schaltplan ist im anhang. Da sind aber die 2 pull up widerstände noch nicht mit eingezeichnet, da ich sie nachträglich eingelötet habe.
    Zum debuggen brächte ich einen JATG, den ich aber leider nicht habe.

    LG
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken ds3231.jpg  

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo,

    Zitat Zitat von simonelein Beitrag anzeigen
    Zum debuggen brächte ich einen JATG, den ich aber leider nicht habe.
    Genau deshalb solltest du das LCD erst mal zum laufen bekommen. Wenn du dann mit den Ports des Controllers einigermassen vertraut bist würde ich erst mal testen, ob die ganzen Pins richtig geschaltet werden. Beim I2C ist das etwas tricky, da der Pin entweder als Eingang verwendet wird, oder als Ausgang um die Leitung auf Low zu ziehen. Das würde ich als nächstes mithilfe eines Meßgerätes und des LCD überprüfen. Mit dem Meßgerät messen, ob der Controller die Leitung korrekt auf Low zieht und dann auf dem LCD ausgeben, wie der Status der Leitung ist und diese dann mal mit einer Brücke auf Low ziehen.

    Wenn alle IOs funktionieren und das Problem immer noch besteht kann man sich mal den Code anschauen. Aber da er ja kopiert ist sollte dieser funktionieren, zumindest wenn er durch das kopieren nicht verändert wurde.

    Viele Grüße
    Andreas

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    09.08.2012
    Beiträge
    6
    hallo andreas,
    mit einem messgerät (oszilloskop) habe ich es schon überprüft. Wie gesagt das klappt alles. Nur den alarm kann ich nicht aktivieren.
    die 0x80 ist ein Datenbyte was in die RTC geschrieben werden soll. 0x80 bedeutet in binär 10000000. also eine 1 an die stelle wo die Alarmbits stehen.

    Datenblatt RTC Seite 11. Register adresse 0x07 bis 0x0A. Da sollen mit der 0x80 die bits A1M1 bis A1M4 gesetzt werden.

    ..und genau das funktioniert nicht. Das lässt sich ja ebenfalls mit dem oszilloskop nach messen.

    LG

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    09.08.2012
    Beiträge
    6
    hab meinen Fehler soeben selber gefunden.
    Trotzdem vielen Dank an alle

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests