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
>wie bekomme ich diese?
Die ist vermutlich im Sensor fest verdrahtet und sollte im Datenblatt
des Sensors stehen.
Oliver
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, nein natürlich nicht. Es handelt sich um einen Bosch BMP085. ich habe es mit (0xEE>>1) versucht.
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?
0xEE ist schon richtig aber das shift nicht. Zum Lesezugriff einfach 0xEE und zum Schreiben 0xEF.
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.
Mach ein neues Thema auf.
>Die Suche im Forum und DB hat auf den ersten Blick nichts ergeben.
Na dann, Brille aufsetzen.
Oliver
Wozu neues Thema aufmachen? Um solche Antworten zu kassieren? Sorry aber ein Verweis auf die richtige Seite wäre hilfreicher.
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
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.