www.mikrocontroller.net

Forum: Compiler & IDEs PCF8583 am AVR Mega 32


Autor: Gurke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gurke (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Gurke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... oder kann das mit 7 oder 8-Bit-Adressierung zusammenhängen ?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gurke wrote:

> ... oder kann das mit 7 oder 8-Bit-Adressierung zusammenhängen ?

Nein, I²C wird immer mit 7 Bits adressiert, weil Bit 0 zwischen
lesen und schreiben umschaltet.

Autor: Gurke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Gurke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo finde ich denn twidemo ???
Schonmal vielen dank

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wo finde ich denn twidemo ?

In der avr-libc-Doku.  Online z. B. hier:

http://www.nongnu.org/avr-libc/user-manual/group__...

Wenn du ein WinAVR hast, müsste es aber auch auf deiner Platte sein.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 "|").

Autor: Gurke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, kaum machst man es richtig, schon funktioniert's.
Vielen Dank, echt super.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.