PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Bus anzapfen ?



Looser
01.11.2005, 22:12
Ist es möglich den I2C Bus abzuhorchen. Also nur den Datentransfer sehen ohne einen Slave oder Master anzusprechen ? Ich dachte da an eine Verbindung mit dem Rechner über ein Atmega mit Max232. So daß man den Datentransfer protokolieren kann.

ZB. Der Lichtschalter wird betätigt und sendet über den I2C Bus die Daten an die Steuerzentrale. Und diese Leitung möchte ich anzapfen.

Geht das oder ist das nur Utopie ???

skillii
01.11.2005, 22:15
natürlich geht das ...

RHS
01.11.2005, 22:33
Hallo Looser,

schau mal hier: http://www.channaa.com/html/little_i2c_tool.html

Gruß: - Reinhard -

tristate
01.11.2005, 22:35
wenn sowas nicht gehen würde wüsste nicht einmal der slave oder master was gerade auf dem bus passiert..
soviel passiert da ja auch nicht schau dir das protokoll vom I2C an und du hast die lösung
einlesen der zustände, auswerten, und an PC schicken

für was soll das ganze überhaupt sein wenns funzt dann funzts dann interessiert mich nicht mehr was auf dem bus abgeht..

mit proteus kann man sowas schön simulieren (hat nen I2C "debugger")..naja mehr als die adresse & daten & ack's & nack's & start & stop & repeated start kanst da auch nicht rauslesen.. mehr gibts au ned...
mfg

01.11.2005, 22:38
natürlich geht das ...Mit welchem Befehl lese ich die Daten ?
Gibt es soetwas ähnliches schon als vergleichbares Beispiel irgentwo ?
In der Hilfe von Bascom habe ich nichts gefunden.
Sorry ich bin halt ein BASCOMANFÄNGER !
ABER das ist ein SUPER Board hier !!!

skillii
01.11.2005, 22:47
ich kenn mich zwar mit BASCOM nicht aus aber ich glaube kaum dass es da einen fertigen Befehl dafür gibt...
Das musst du dir denke ich selber ausprogrammieren... schau dir am Besten dazu das I2C Protokoll an...(wie eh tristate bereits gesagt hat ...)

skillii
01.11.2005, 22:54
vielleicht hilft dir das hier weiter:
http://www.sprut.de/electronic/pic/grund/i2c.htm#fluss

SprinterSB
02.11.2005, 09:09
IMHO geht das nicht, ohne selber Hand anzulegen.

Mit einem IIC Master oder Slave kannst direkt nichts anfangen, weil du selbst nicht senden darfst. Die TWI-Hardware der AVRs kannst dafür also nicht hernehmen.

Deinen I²C-Snoopy müsstest du daher als reine Software-Lösung bauen. SCL und SDA würde ich an die externen Interrupts INT0 bzw INT1 anschliessen. Die Herausforderung besteht dann darin, bei einem externen INT schnell genug nachzuschauen, welchen Wert der andere INT-Pin hat. Wenn man zu lange rumschnarcht wegen langen Interrupt-Latenzen oder zu langsam das zweite Signal sich anschaut, dann wird der Snoopy nicht richtig funktionieren und Daten für START oder STOP halten oder umgekehrt.

Ausserdem weiß ein Snoopy weniger als ein Master/Slave. Der Master/Slave weiß, daß er sendet oder empfängt. Der Snoopy sieht nur, daß was abgeht aufm Bus. Was aber keine große Rolle spielen sollte.