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.
Datenblatt?? Evtl mal das Datenblatt eines ATMEGAs angucken der I2C kann oder unter google schauen, wie das Protokoll aussieht
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 ;-)
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
Hallo Das gleiche probiere ich auch gerade zu realisieren. Hat jemand ein Codebeispiel für eine Master Slave in ASM? Danke Gruss Frank
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.