STM32F1 Probleme mit Frings I2C-Bus Routine

OP #6930541
Lesenswert?

Hallo zusammen,

ich versuche gerade einen VL6180 TOF Sensor am laufen zu bekommen. 
Jedoch scheitert es nach dem ersten schreiben eines Registers. Ich 
bekomme danach nur immer ein NACK des Sensors. Nachdem ich zwischen den 
ersten paar Schreibvorgänge ein 10 Millisekunden-Delay eingefügt habe, 
gehts es bis zum nächsten weiter.

Weiß einer, woran es liegen könnte?

Gruß Sascha
Angehängte Dateien:
Gast #6930570
Lesenswert?

Hast du mal die Qualität der Signale am I²C Bus kontrolliert? Wie viel 
Ohm haben deine Pull-Up Widerstände?

Schon 100 kHz Bustakt versucht?

Vielleicht gucke ich falsch, aber ich sehe im DB keine Dokumentation von 
Register 0x0096. Wird der Fehler vielleicht durch Beschrieben eines 
ungültigen Registers ausgelöst?
OP #6930588
Lesenswert?

Hi,

also bei 100kHz ist dasselbe. Widerstände sind 4.7k. Das Register wird 
von ST so empfohlen:

AN4545 vl6180x basic ranging application note stmicroelectronics
Seite 24.
Die Initialisierung funktioniert mit HAL einwandfrei. Ich habe nur die
Routinen zum lesen und schreiben angepasst. Daher wundert es mich ja. Es 
ist das gleiche Board, gleiche Hardware. Nur diesmal ohne HAL.

Wenn ich die Warteschleife nach
1
VL6180x_writetRegister(I2C_Port,Adresse, VL6180X_SYSTEM_FRESH_OUT_OF_RESET, 0x00);
entferne, bekomme ich schon ein NACK.

Gruß Sascha
Gast #6930597
Lesenswert?

Sascha S. schrieb:
> Die Initialisierung funktioniert mit HAL einwandfrei.

Dann ist es bestimmt am einfachsten, die Kommunikation mit einem Logic 
Analyzer aufzuzeichnen und mit beiden Bibliotheken zu vergleichen. 
Irgendwas muss ja anders sein.

Dein obiges Diagramm bestätigt, dass der Mikrocontroller wie 
erwartet/programmiert sendet und das der Sensor wirklich nicht mit ACK 
antwortet.

Wie kommuniziert denn das LCD, hoffentlich über die selben I/O Pins?
Gast #6930629
Lesenswert?

Da frage ich mich jetzt aber, wer denn die ersten 3 Bytes acknowledged 
hat. Hast du noch andere Sensoren an dem Bus?

Unabhängig davon empfehlen ich trotzdem stärkere Pull-Ups, um auf 
mindestens 1 mA zu kommen.

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