PCF8583 am AVR Mega 32

Gast #427755
Lesenswert?

Hallo,
ich möchte über das IC mit I2C eine Uhrzeit lesen / schreiben. Ich weiss 
aber nicht, wie ich den Slave parametrieren und auslesen kann. Ich habe 
einen AVR 32 Mega und arbeite mit Programmer's Notepad. Die Hardware 
habe ich erstellt (www.fernando-heitor.de), nur mit der Adressierung 
habe ich Probleme.
Schonmal danke
Moderator Persönliche Seite #427789
Lesenswert?

Ziemlich allgemein gehalten, deine Frage.  Ohne genaue Beschreibung,
was bei dir denn nicht so recht klappt, wirst du kaum vernünftige
Hilfe bekommen.

Ich habe mal mit einem PCF8583 experimentiert, das Ergebnis hab' ich
aber nicht mehr.  Im Prinzip wird das Teil aber genauso wie ein
I²C-EEPROM angesprochen, und für den hast du bei der avr-libc ja das
twidemo dabei.  In der Tat habe ich damals die dort vorhandenen
Routinen benutzt, nur das main() war anders.
Gast #427997
Lesenswert?

Hallo,
ich habe das Programm angehangen. Die Leseadresse sollte laut Vorgabe 
0xA1 sein, die Schreibadresse 0xA0. Als Rückgabewert bekomme ich aber 
beim i2c_start(Devclockwrite+I2C_WRITE) eine "1" zurück, also erreiche 
ich den Teilnehmer nicht.
Ich habe SCA und SCL mit je 2,7KOhm Pull-up Widerständen versehen.
Schonmal danke
Angehängte Dateien:
Gast #428656
Lesenswert?

Hallo,
das Schreiben klappt jetzt mit Adresse 0xA0
(i2c_start(0xA0+I2C_WRITE);)
über die angegebene Leseadresse 0xA1 erreiche ich den Teilnehmer nicht.
(i2c_start(Devclockread+I2C_READ);)
woran könnte das liegen ?
Moderator Persönliche Seite #428901
Lesenswert?

Gurke wrote:

> über die angegebene Leseadresse 0xA1 erreiche ich den Teilnehmer nicht.
> (i2c_start(Devclockread+I2C_READ);)
> woran könnte das liegen ?

Daran, dass du Devclockread bereits zu 0xA1 definiert hast und dass du
I2C_READ nicht etwa einfach noch ver-oderst (|) sondern addierst (+)?

Du solltest dich wohl für eine von beiden Varianten entscheiden: das
R/¬W-Bit entweder mit ins #define nehmen oder separat hinzufügen (und
dann bitte mit "|").

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren