Forum: Mikrocontroller und Digitale Elektronik i2c grundlagen


von Thorsten Fritzke (Gast)


Angehängte Dateien:

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

von Volkhard (Gast)


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

von Markus_8051 (Gast)


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

von Achim Walther (Gast)


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.

von Thorsten Fritzke (Gast)


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

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.