I2C BeginnerFrage

OP #4623106
Lesenswert?

Hallo Community,
ich starte derzeit mein erstes Projekt mit I2C. Jedoch habe ich ein 
Problem, dass mein Sensor nicht erkannt wird vom Raspberry PI. Jetzt 
wollte ich einfach in einer While Schleife im Abstand von 0.1ms das 
Acknowledge des Sensores überprüfen. Dass ich mit dem Oszilloskop messen 
kann ob der Sensor funktioniert. Der Sensor hat die Adresse 0x78. Leider 
finde ich im Internet nichts dazu, wie man dies realisieren kann, da das 
Problem wohl zu einfach ist. Ich arbeite mit der Programmiersprache C. 
Vielleicht hat ja hier jemand einen BeispielCode, den ich mir mal 
anschauen könnte. Schonmal danke im Vorraus.

MfG Julian
#4623117
Lesenswert?

Julian M. schrieb:
> Der Sensor hat die Adresse 0x78

da gehts schon los, die Adressenbetrachtung ist ziemlich individuell

der eine betrachtet nur die rechts geshifteten Bits 1-7, der andere nur 
die ungeschifteten Bits 1-7 ausgeklammert das R/W Bit

solange du nicht weisst welche Guckweise und in der Software vorliegt 
hilft dir die Angabe nix.

Aber am PI war mir so das der nur bis 0x75 in seiner LIB schaut, du 
müsstest die Adresse nach unten verschieben oder einen I2C Controller 
per SPI zwischenschalten

http://www.forum-raspberrypi.de/Thread-i2c-adresse-0x78-ansprechen
http://www.roboternetz.de/community/threads/46616-Problem-mit-I2C-Sensor-DRMOD-I2C-RVI
http://www.instructables.com/id/Raspberry-Pi-I2C-Python/

 on the Pi, and I was using his code ... larger flexible UI system I'm 
working on, which will allow i2c GPIO expander classes to be assigned to 
.... 0x62, 0x92, 0x92, 0x94, 0x78,


!!!!!!!!!!!

und keine 5V I2C an den PI
(Firma: Vescomp) #4623147
Lesenswert?

Amateur schrieb:
> Hat der auch wirklich die Adressen: 0111.1000 und 0111.1001?
> Oder sind es 1111.0000 und 1111.0001?

 0xF0 und 0xF1 sind es bestimmt nicht, es ist (wie allgemein üblich)
 die Adresse 0x78 gemeint.

 Damit du es auch zukünftig weisst:

 0b1111 0xxx ist für 10 bit adressierung reserviert...

 Und Adresse wird immer als 8 bit angegeben, aber bit 0 ist R/W
 bit, somit ist lesen immer auf ungeraden und schreiben immer auf
 geraden Adressen.
OP #4623157
Lesenswert?

Erstmal danke für die schnellen Antworten. Pullups habe ich hinzugefügt. 
Diese betragen 1,7kOhm wie vom Hersteller empfohlen. Wenn ich Durchmesse 
haben auch sda scl und vcc die richtige Spannung von 5V. Jetzt wollte 
ich testen ob wenn ich direkt etwas auf die Adresse 0x78 sende die 
Spannung bei SDA und SCL abfällt. Jedoch weiß ich leider nicht wie ich 
etwas auf eine Adresse senden kann. Da ich schauen will ob der Sensor 
überhaupt funktioniert.
(Firma: Vescomp) #4623166
Lesenswert?

A. K. schrieb:
> Marc V. schrieb:
>>  Und Adresse wird immer als 8 bit angegeben
>
> I2C-Libs halten es mal so mal so.

 Ja, aber im Prinzip ist es so:

 Adresse wird als 8 bit angegeben, davon sind die oberen 7 bit die
 tatsächliche Adresse und bit 0 ist R/W.

 Nun kamm irgendein Schlaukopf auf die Idee, da nur 7 bit gebraucht
 werden, warum auch nicht die Adresse als 7 bit darstellen ?
 Die oberen 7 bits prompt 1 Stelle nach rechts geschoben und
 rausposaunt, dass er jetzt etwas revolutinäres erfunden hat.

 Dass er dann beim lesen oder schreiben wieder nach links schieben
 muss, hat er in seinem Anfall von Genialität vergessen...

 Auch die anderen Genitalien aus demselben Verein haben das ohne
 viel nachzudenken übernommen und so geistert es heute noch unter
 uns...
#4623167
Lesenswert?

Julian M. schrieb:
> Pullups habe ich hinzugefügt.
> Diese betragen 1,7kOhm wie vom Hersteller empfohlen. Wenn ich Durchmesse
> haben auch sda scl und vcc die richtige Spannung von 5V

was hast du an:

Joachim B. schrieb:
> !!!!!!!!!!!
>
> und keine 5V I2C an den PI

nicht verstanden? der PI ist nicht 5V tolerant, ja man kannn den sogar 
an den Ports mit 5V killen, wenn das dein Ziel ist brauchen wir über 
dein I2C nicht mehr zu schreiben!
(Firma: Vescomp) #4623185
Lesenswert?

A. K. schrieb:
> Nicht dass du dauernd durchs falsche Fenster guckst.

 Ich glaube, dass er momentan an die Wand guckt und erst mal
 entdecken muss, wo die Fenster überhaupt sind.

Julian M. schrieb:
> Acknowledge des Sensores überprüfen. Dass ich mit dem Oszilloskop messen
> kann ob der Sensor funktioniert. Der Sensor hat die Adresse 0x78. Leider
> finde ich im Internet nichts dazu, wie man dies realisieren kann, da das
> Problem wohl zu einfach ist. Ich arbeite mit der Programmiersprache C.
OP #4623226
Lesenswert?

ja, ich benutze i2cdetect -a 1 um bis 0x7F alle zu sehen.
ich schaue durch das Fenster /dev/i2c-1.
Einen anderen Sensor der die Adresse 0x77 hat kann ich auch ohne 
Probleme auslesen, jedoch ist dies auch ein 3,3V Sensor. Wenn ich das 
nun richtig verstanden habe, kann ich also einen 5V Sensor gar nicht mit 
dem Raspberry Pi verwenden?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren