Forum: Mikrocontroller und Digitale Elektronik DS1307 RTC und xmega128a1


von Milan (Gast)


Lesenswert?

Hallo zusammen,
hat jemand ein beispiel für DS1307 unx xmega128a1??

ich würde mich echt freuen.

Gruss
Milan

von Milan (Gast)


Lesenswert?

PS: im C

von brunzbuschn (Gast)


Lesenswert?

forumsuche hilft dir ... bzw. google... da findet man ein 
stromflotutorial für i2c und hier im forum findest du eine ds1307 lib 
für avr... also gogo

von Milan (Gast)


Lesenswert?

Hallo,
stromflo ist offline! ich habe im google gesucht und nichts schlaues für 
xmega gefunden!
Bitte um hilfe!

Gruss
Milan

von Timmo H. (masterfx)


Lesenswert?

Für I²C beim Xmega würde ich einfach das aus AVR1308 nehmen (kann man 
quasi 1:1 kopieren). Dann liest du einfach die 8Bytes (also 
Uhrzeit-Dateum etc) in den Buffer:
1
TWI_MasterRead(&twiMaster,0xD0,8);
Und dann steht der ganze Kram in twiMaster.readData[0:7]

Und wenn du was reinschreiben willst, einfach die Adresse und Wert in 
den SendBuffer
1
SendBuffer[0] = 0x02; //Hours Register;
2
SendBuffer[1] = 3;
3
TWI_MasterWrite(&twiMaster, 0xD0, SendBuffer, 2);

von Gerhard G. (g_g)


Lesenswert?

Hallo,

Milan schrieb:
> beispiel für DS1307 unx xmega128a1

Schau dir mal das da an:

http://www.basteln-mit-avr.de/atxmega32a4.html#RTC1337_RTC1307
tools.h anschauen!


DS1307 ist für 5 Volt ausgelegt.
Besser: DS1338-3/DS1337




Gruß G.G.

von Milan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
ich habe mir den DS1337 besorgt.

Leider finde ich keine daten für wiederstände und den CRYSTAL???

Betriebsspannung 3.3V
XMEGA 32MHz takt

Bitte um hilfe.

von Timmo H. (masterfx)


Lesenswert?

Pull-Widerstände sind bei I2C eigentlich mit 4,7k immer die richtige 
Wahl (außer du willst sehr hohe Datenraten oder hast sehr lange 
Leitungen). 10k geht bei kurzen leitungen und langsamen Datenraten auch 
noch.

Und der Quarz... überleg doch mal. Das ist eine Echtzeituhr. Also 
braucht das Ding einen Uhrenquarz mit 32,768 kHz. Steht auch auch Seite 
5, bei Pin 1 & 2:
1
Connections for a Standard 32.768kHz Quartz Crystal. The internal 
2
oscillator circuitry is designed for operation with a crystal having a specified 
3
load capacitance (CL) of 6pF. For more information about crystal selection 
4
and crystal layout considerations, refer to Application Note 58: Crystal 
5
Considerations with Dallas Real-Time Clocks. An external 32.768kHz 
6
oscillator can also drive the DS1337. In this configuration, the X1 pin is 
7
connected to the external oscillator signal and the X2 pin is floated.

Der DS1337 C hat übrigens auch einen internen Quarz, der ist natürlich 
nicht ganz so genau (sie Seite 7. + Application Note 58).

von Gerhard G. (g_g)


Lesenswert?

Hallo,

Nachtrag:

> Besser: DS1338-3/DS1337

 sehr genau: RTC - DS3234

Habe zur Zeit diesen RTC-Baustein als Referenz-Quelle in meiner 
Schaltung.  PLus 2 Sekunden in 4 Monaten- das ist für Bastler TOP!

RTC - DS3234 Breakout: 
http://www.watterott.com/de/DeadOn-RTC-DS3234-Breakout

Gruß G.G.

von Milan (Gast)


Lesenswert?

Hallo zusammen,
ich habe den DS1337 gekauft und nach der ober gepostetem Plan eingebaut.
alle Wiederstände sind 4.7 Kohm.

Wenn ich die steuerung einschalte. Macht sie einen RESET danach läuft es 
zwar aber nur bis uhr lesen funktion, dann hängt sie sich auf. Warum 
weiss ich nicht ohne die uhr war es gut.

Kann mir einer einen Tipp geben.

Gruss
Milan

von Timmo H. (masterfx)


Lesenswert?

Was genau hängt sich auf? Der Controller? Dann wartet er vermutlich 
vergebens auf eine Rückmeldung des DS1337. Wenn die schaltung richtig 
ist, dann ist evtl. einfach nur die Adresse falsch (hast die um einen 
nach links geshiftet?  Muss nämlich weil die I2C Adresse 7 Bit ist und 
das unterste Bit das R/W).

Zeig mal code.
Ich vermute er hängt hier:
1
while (twiMaster.status != TWIM_STATUS_READY) {
2
    /* Wait until transaction is complete. */
3
}

Interrupts hast an ( sei() )?
Hast du HI MED oder LO Interrupt für den TWI an?
Hast du die auch im PMIC.CTRL aktiv?

von Gerhard G. (g_g)


Lesenswert?

Hallo,

schau mal ob SCL und SDA vertauscht sind?

Intrrupt scharf gemacht?

PMIC.CTRL |= PMIC_HILVLEN_bm;
PMIC.CTRL |= PMIC_MEDLVLEN_bm;
PMIC.CTRL |= PMIC_LOLVLEN_bm;

sei();


Zeige mal deinen Code, sonst ist da nichts zu machen!

Gruß G.G.

von Milan (Gast)


Lesenswert?

Hallo zusammen,
mein fehler!!!
ich habe die funktion vergessen zu kopieren:
ISR(TWIC_TWIM_vect) // TWI RTC DS1338 3,3V
{
  TWI_MasterInterruptHandler(&twiMaster);

}

Ohne gets nicht.
Trotzdem danke!

Gruss
milan

von Milan (Gast)


Lesenswert?

Hallo nochmahls,
also schreiben und lesen geht perfekt.

leider geht die uhr 5 so schnell wie sie sollte i 1 minute (normal) hat 
sie 5 minuten gemacht.

woran kann das liegen.

Gruss
milan

von Pete K. (pete77)


Lesenswert?

Es könnte daran liegen, dass Du das kopierte nicht verstanden hast...

P.S.: Ist es wirklich so schwer, die Shift-Taste zu benutzen?

von Ingo (Gast)


Lesenswert?

1. Du liest falsch aus.
2. Falscher Quarz

von Milan (Gast)


Lesenswert?

Pete K. schrieb:
> Es könnte daran liegen, dass Du das kopierte nicht verstanden hast...
>
> P.S.: Ist es wirklich so schwer, die Shift-Taste zu benutzen?

Ja, das habe ich nicht, sonst würde ich es nicht kopieren, oder???

P.S: Fals du nicht helfen kannst, mussst du auch nichts schreiben. 
KLUGSCH*****!

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.