www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Soft I2C


Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche gerade einen nicht ganz I2C kompatiblen Sensor an einem
Atmega8 anzuschließen.
Mein Problem ist das ich nicht weiß wie ich die Ports progammieren
muß.

- Als Ausgang?
- Als Eingang?
- Nach jeder Übertragung umschalten um Ack zu empfangen?

Wie ereiche ich das der Sensor die Datenleitung auf Low ziehen kann.
Wie macht es der Interne TWI.

Für einen Tipp wäre ich dankbar.

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt??
Evtl mal das Datenblatt eines ATMEGAs angucken der I2C kann

oder unter google schauen, wie das Protokoll aussieht

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Protokoll ist nicht das Prob. sondern die verwendung der Pins nicht
das ich den Sensor zerschieße wenn ich ihm High gebe und er Low will
;-)

Autor: Andreas Hesse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

schau mal in die ATMEL Application Note 300 -> bei AVRfreaks kann diese
geladen werden:
http://www.avrfreaks.net/index.php?module=FreaksTo...


Diese beschreibt einen Software I2C Master Implementierung.
Die I2C Pins werden mit Pullups (z.B.10K) versehen.
Das Datenrichtungsregister für diese PINs wird als Eingang
konfiguriert,interne Pullups nicht einschalten.
Durch Umschalten der Datenrichtung an den betreffenden Pin kann dann
zwischen Masse und +5V geschaltet werden, um die Signale zu erzeugen.

Gruss
Andreas

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Traum ich danke dir...

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Das gleiche probiere ich auch gerade zu realisieren.
Hat jemand ein Codebeispiel für eine Master Slave in ASM?
Danke
Gruss
Frank

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ausgangsbit wird einmalig auf 0 gesetzt und nie wieder angefaßt.

Zum Senden einer 0 das Richtungsbit auf 1 setzen.

Zum Senden einer 1 oder zum Empfang das Richtungsbit auf 0 setzen.

Das gilt für beide Signale (SDA und SCL) !

Damit simuliert man einen I2C-konformen Open-Drain Ausgang.


Peter

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau danach habe ich gesucht!

@Peter -Warst wieder mal eine sehr große Hilfe.

Vielen Dank

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.