Hallo,
ich möchte eine TWI verbindung mit einem Sensor herstellen.
Ich kapiere nicht wie die adresse zustande kommt.
Um eine Verbindung herzustellen schickt man die Adresse, wie bekomme ich
diese?
Gruß Michael
Und nicht verwirrt sein, wenn die Adresse nur aus sieben Bit besteht.
Das niederwertigste Bit gibt an, ob das Telegramm eine Lesezugriff (1)
oder eine Schreibzugriff (0) sein soll.
Jo, Datenblat ist immer gut. Die Adresse ist zu (bei den von mir
verwendeten Teilen) Teilweise Festverdrahtet, rest geht über die Pins.
Aber frag jetzt nicht welche Pins.
PS: Eigentlich hättest Du das schon längst wissen müssen, denn wenn due
das Teil ansprechen willst, dann muss man zwangsläufig ins DB guggn,
ausser, du fragst das auch noch.
sieben Bits ist klar, also bis zu 127 devices.(bei manchen bis 10 Bits)
Im DB vom Sensor steht nirgends was über diese Adresse.
Aber es gibt doch mehr wie 127 verschiedene TWI Bauteile.
Du wirst doch wohl nie alle auf dem Markt befindlichen I2C Bauteile
gleichzeitig an einem Bus anschließen wollen!? - würde auch elektisch
nicht gehen.
Vielleicht willst du uns ja mal verraten um was für einen Sensor es sich
handelt?
Sascha
Hallo,
was schiebst Du da?
Steht doch auf Seite 15 eindeutig:
0xEF (read) 0xEE (write)
Ansosnsten viel Erfolg und viel Spaß beim Rechnen... ;)
Gruß aus Berlin
Michael
Michael wrote:
> Im DB vom Sensor steht nirgends was über diese Adresse.
Seite 15, 4.2 Device and register address
> ich habe es mit (0xEE>>1) versucht.
und warum das?
beim Ansprechen des Sensors werden SCL und SDA auf Low gezogen und
bleiben auch Low.
An was kann das liegen?
Wenn ich einen anderen i2c Baustein dranhänge gehts.
Angeschlosesen GND, VCC, SCl und SDA.
SCL und SDA mit Pullup.
Wenn die wirklich nur einmal auf low gehen, sendet der Master Start (SDA
auf low), setzt danach SCL auf low, und hängt dann. Entweder, weil der
Slave SCL low hält (was er auf Dauer aber gar nicht darf), oder weil im
Programm des Masters irgendwas klemmt.
Welche Software verwendest du denn?
Oliver
Zu diesem Thema hätte ich auch eine Frage.
Ich möchte zwei Atmega 8 über I2C Bus betreiben, wo wird die Adresse
eingestellt?
An welchen Pins werden die letzten 3 Stellen eigestellt?
Die Suche im Forum und DB hat auf den ersten Blick nichts ergeben.
Max schrieb:
> Sorry aber ein Verweis auf die richtige Seite wäre hilfreicher.
einfach mal im Acrobat nach "TWI address" zu suchen wäre auch eine
Möglichkeit oder nicht?
OK ich habe es gefunden, dann stimmt das aber nicht mit dem Grundwissen
überein.
http://www.elektronik-magazin.de/page/der-i2c-bus-was-ist-das-21
Da steht, dass die ersten 4 bits nicht verändert werden können und die
letzten
3 über herausgeführte Pins einzustellen sind. Und das war auch meine
Frage aber anscheinend kann man die ganze Addresse verändern.
Dann könnte ich ja auch irrtümlicherweise auch eine Addresse von einem
anderem
IC eingeben oder sehe ich es falsch???
Hallo,
warum seht ihr alles immer so absolut...
Es gibt mittlerweile viele I2C-Bausteine. Jeder Hersteller kocht da
seine Suppe und dim Zweifel hilft das Datenblatt des konkreten
Bausteins.
Ein EEPROM mit 8 Pin und VCC, GND, SDA, SCL, WE wird vielleicht die
restlichen 3 Pin für die I2C-Adresse nehmen. Es gibt aber da schon
einige, da steht im Datenblatt: wird nicht genutzt, gibt nur eine feste
Adresse, kann man nicht ändern.
Der AVR ist kein I2C-Baustein, er kann einen I2C Master oder Slave in
Software machen mit etwas interner Hardwareunterstützung.
Natürlich kann ich dem jede zulässige Adresse per Software geben.
Natürlich bin ich als Programmierer dafür zuständig, daß ich keine
doppelten Adressen am Bus einstelle.
Ob Dein AVR die Adresse eines PCF 8574 benutzt, ist doch völlig egal,
solange nicht ein solcher mit genau dieser Adresse auch an Deinem
I2C-Bus hängt.
Gruß aus Berlin
Michael
>Da steht, dass die ersten 4 bits nicht verändert werden können und die>letzten>3 über herausgeführte Pins einzustellen sind. Und das war auch meine>Frage ...
die zeigt, daß du nicht richtig gelesen hast. Das ist nur beim PCF 8574
so. Bei anderen Bausteinen ist es anders.
TWI hat keine zentrale, weltweit gültige Adressvergabe. Bei nur 127
möglichen Adressen im Standardsystem kommen halt welche doppelt vor.
Und ja, du kannst beim AVR jede der 127 möglichen Adressen einstellen.
Es bleibt dir überlassen, dafür zu sorgen, daß in deinem System keine
Adresse zweimal vorkommt.
Oliver
Sorry für die Dumme Frage aber ich bin noch ein I2C Neuling.
Danke für die Aufklärung, jetzt verstehe ich es.
Und denkt dran, Wissen ist das einzige Gut das sich vermehrt wenn man es
teilt