mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik i2c grundlagen


Autor: Thorsten Fritzke (Gast)
Datum:
Angehängte Dateien:
  • i2c.txt (506 Bytes, 159 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Moin

Ich habe wirklich jetzt schon einige tage hier im forum herumgesucht
und einiges selbst ausprobiert, aber anscheinend fehlt mir doch noch
etwas basiswissen um ein i2c eeprom richtig anzusteuern.

meine fragen sind
wie muss ich die beiden pins für scl und sda im DDR definieren?
ich benutze einen 90s2313, der kein hardware twi interface hat.
nach ein bisschen überlegen meine ich einfach mal, dass scl als ausgang
definiert werden könnte, da der takt ja immer vom master kontrolliert
wird. sda müsste quasi immer die richtung wechseln. zusammen mit den
pullup widerständen hats mich dann aus dem konzept gehauen.

in anhang habe ich mal 2 routinen angehängt, die ich fürs byte senden
und empfangen geschrieben habe.. sind die vom prinzip richtig oder
gibts da auch noch gravierende fehler?

danke im voraus
mfg

Autor: Volkhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Tipp zum Thema Hintergrundwissen:
Schau doch mal auf
www.roboternetz.de
nach. Wenn du dich dort kostenlos registrieren lässt, hast du Zugriff
auf die "Artikel" zu bestimmten Themenschwerpunkten. Darunter ist
auch etwas zum Them I2C.
Gruß
Volkhard

Autor: Markus_8051 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest für den I2C-bus auf jedenfall open-drain bzw open-collector
Ausgänge benutzen. Diese können nur gegen Masse treiben, für den
High-Pegel sorgt ein Pullup-Widerstand.

Kennst Du GOOGLE? Suche nach I2C, direkt der erste Treffer führt dich
auf die Seite von Philips, dem Entwickler des I2C-bus. Hier solltest Du
eigentlich alles an Infos kriegen.

Markus_8051

Autor: Achim Walther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"nach ein bisschen überlegen meine ich einfach mal, dass scl als
ausgang
definiert werden könnte, da der takt ja immer vom master kontrolliert
wird."

Da wäre ich mir nicht so sicher. Schliesslich kann ja der Slave den
Takt auf Low ziehen um damit dem Master mitzuteilen, dass er
"langsamer machen" soll.

Habe irgendwo mal (hier?) ein Codebeispiel für das Auslesen eines
Temperatursensors DS1621 gefunden, das ohne Hardware-TWI auskommt.
Vielleicht suchst Du mal danach.

Achim.

Autor: Thorsten Fritzke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin

@markus klar kenn ich google. und das pdf von philips habe ich auch
schon.

mein problem besteht eher darin wie ich die pins vom avr softwaremässig
bearbeiten muss. also was genau muss ins DDRD etc...(quellcode
schnipsel)

die funktionsweise vom i2c bus habe ich mittlerweile verstanden.

@achim
jo ich werd mal suchen gehen

mfg

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.