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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.