Forum: Mikrocontroller und Digitale Elektronik Soft I2C


von Benjamin (Gast)


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.

von Jens D. (jens) Benutzerseite


Lesenswert?

Datenblatt??
Evtl mal das Datenblatt eines ATMEGAs angucken der I2C kann

oder unter google schauen, wie das Protokoll aussieht

von Benjamin (Gast)


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
;-)

von Andreas Hesse (Gast)


Lesenswert?

Hi,

schau mal in die ATMEL Application Note 300 -> bei AVRfreaks kann diese
geladen werden:
http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewItem&item_type=tool&item_id=75


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

von Benjamin (Gast)


Lesenswert?

Ein Traum ich danke dir...

von Frank (Gast)


Lesenswert?

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

von Peter Dannegger (Gast)


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

von Benjamin (Gast)


Lesenswert?

Genau danach habe ich gesucht!

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

Vielen Dank

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.