Forum: Mikrocontroller und Digitale Elektronik I2C Problem mit Sensor VEML6075


von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Ich versuche diesen Sensor 
(https://eckstein-shop.de/Adafruit-VEML6075-UVA-UVB-and-UV-Index-Sensor-Breakout) 
in Betrieb zu nehmen.

Leider funktioniert die I2C Kommunikation nicht. Im Anhang ist ein Oszi 
Bild der SCL und SDA Signale direkt am Sensor gemessen. Wenn ich es 
richtig sehe, sendet der Sensor kein ACK. Die Adresse ist 0x10, Pullup 
1K, Frequenz 50kHz (Datenblatt: 10-100kHz). Habe ich vielleicht noch 
etwas übersehen? Woran könnte es liegen, dass der Sensor nicht 
antwortet? Was könnte ich noch ausprobieren?

Vielen Dank im Voraus für eure Tips!

von STK500-Besitzer (Gast)


Lesenswert?

Tobias schrieb:
> Woran könnte es liegen, dass der Sensor nicht
> antwortet?

Dass er gar nicht am Bus hängt?! Oder keinen Strom bekommt.

von Helmut -. (dc3yc)


Lesenswert?

Schaltplan, Programm, welcher Prozessor???

von Tobias (Gast)


Lesenswert?

Hier der Schaltplan von der Breakout Platine:
https://cdn-learn.adafruit.com/assets/assets/000/062/587/original/adafruit_products_schem.png?1537993764
SDA und SCL sind 1 zu 1 mit 15cm Jumper Kabeln am Controller Board 
verbunden.

Spannugnsversorung 3,3V (direkt am Chip gemessen). Inwieweit der 
Prozessor (STM32) eine Rolle spielt, erschließt sich mir nicht ganz. Man 
sieht doch auf dem Oszilloskop Bild, dass die korrekte Adresse gesendet 
wird und kein ACK vom Sensor kommt. Sehe ich das falsch?

von STK500-Besitzer (Gast)


Lesenswert?

Tobias schrieb:
> Hier der Schaltplan von der Breakout Platine:
> 
https://cdn-learn.adafruit.com/assets/assets/000/062/587/original/adafruit_products_schem.png?1537993764

Wen interessiert der?

> SDA und SCL sind 1 zu 1 mit 15cm Jumper Kabeln am Controller Board
> verbunden.
Daher kommt das Geklingel.
Runter mit der Taktfrequenz!

von Tobias (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Runter mit der Taktfrequenz!

Mit 10kHz antwortet der Sensor auch nicht. Aber ich versuche noch mal 
den Aufbau zu optimieren.

von STK500-Besitzer (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Tobias schrieb:
>> Hier der Schaltplan von der Breakout Platine:
>>
> 
https://cdn-learn.adafruit.com/assets/assets/000/062/587/original/adafruit_products_schem.png?1537993764
>
> Wen interessiert der?

Das war ein Wink mit dem Zaunpfahl!
DEINEN Schaltplan sollst du posten.

von neuer PIC Freund (Gast)


Lesenswert?

> Was könnte ich noch ausprobieren?

Viele interpretieren die Chips, als hätten sie 2 Adressen. Einmal zum 
Lesen und einmal zum Schreiben. Aber die I2C-Spezifikation spricht von 
einer Adresse und einem R/W-Bit. Demnach hättest du 0x08 adressiert. Es 
sei denn, 0x10 bezieht sich auf den "2-Adress-Quatsch".

Also probier in deinem Modell mal mit 0x20 zu adressieren.

von Tobias (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Das war ein Wink mit dem Zaunpfahl!
> DEINEN Schaltplan sollst du posten.

Ich wüsste nicht, was ich noch dazu sagen soll. Die Breakout Platine ist 
- wie gesagt - direkt über Jumper Kabel mit dem Controller verbunden. 
Controller ist in diesem Fall ein STM32 Eval Nucleo Board.

von Tobias (Gast)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #5848066:
> Also probier in deinem Modell mal mit 0x20 zu adressieren.

Tatsächlich hatte ich die Idee schon. Leider erfolglos.

von TK (Gast)


Lesenswert?

Hallo,
aus dem DB wird man ja nicht schlau, wie die Übertragung durchgeführt 
werden muss. Aber ich denke mal, dass der Sensor wohl lieber Daten 
senden möchte, als parametriert zu werden. Daher vermute ich jetzt mal 
(spekulativ), dass die IIC Adresse mit einem gesetzten R/W-Bit (FÜR 
LESEN) übertragen werden sollte.
Vielleicht bringt das ja den Durchbruch.

Gruß
TK

von Tobias (Gast)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #5848066:
> Viele interpretieren die Chips, als hätten sie 2 Adressen. Einmal zum
> Lesen und einmal zum Schreiben. Aber die I2C-Spezifikation spricht von
> einer Adresse und einem R/W-Bit. Demnach hättest du 0x08 adressiert. Es
> sei denn, 0x10 bezieht sich auf den "2-Adress-Quatsch".
>
> Also probier in deinem Modell mal mit 0x20 zu adressieren.

Es lag doch daran! Jetzt funktioniert es. Vielen lieben 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
Noch kein Account? Hier anmelden.