Forum: Mikrocontroller und Digitale Elektronik STM32F103 - I2C geht nur mit Oszi


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Niine (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

es gibt ja schon einige Themen zum Thema STM32 und HAL I2C.

Mein Problem ist aber etwas eigenartig:
Wenn ich das Programm starte und mit dem Oszi messe, dann sieht es ganz 
normal aus (siehe Anhang) und es funktioniert.
Sobald ich aber das Oszi abstecke, dann hängt sich der Bus auf. Dann 
bekomme ich den Status HAL_BUSY. Und dann passiert nichts mehr auf dem 
Bus, wenn ich dann messe.

Hatte das Problem schonmal jemand? Das sieht für mich eher nach 
irgendeinem Hardwareproblem aus. Also was bewirkt die Oszispitze?

Danke euch,

Niine

von jo mei (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Wichtig ist die Schaltung, die du uns nicht zeigst.

Das Anschliessen eines Oszilloskops übertüncht nur eine
Schwäche / Unzulänglichkeit oder einen Fehler in deiner
Schaltung.

von Thomas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Niine schrieb:
> Also was bewirkt die Oszispitze?

2 Dinge. Ein Cap im pF Bereich. Und vermutlich wird dein ground an den 
du dich dranhängst mit dem Ground des Oszis und übers Netz und 
Spannungsversorgung wieder mit dem Ground der Platine verbunden. Du 
könntest also ein Masseproblem haben. Aber ohne Schaltplan könnte die 
Antwort auch Kürbis heißen.

von Kevin M. (arduinolover)


Bewertung
0 lesenswert
nicht lesenswert
HAL_Busy bei I2C ist oft ein Stuck Low am Bus, wenn sich z.B. ein Slave 
verabschiedet, oder der STM während der Kommunikation neu startet und 
der Slave das nicht mit bekommt. Könnte ein Problem mit den Pull Ups 
sein, die hoffentlich vorhanden sind.

Falls es sein Stuck ist kann man das meistens durch mehrmaliges toggeln 
der Takt Leitung beheben, sofern der Rest natürlich passt.

von Nichtverzweifelter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dein Oszi liefert PE (Schutzerde), schliesst damit womöglich "Masse" 
erst richtig an, wurde schon geschrieben.
Und es belastet standardmässig, ohne Teilertastkopf, den Bus mit 1 
Megaohm, zusätzlich mit rund 35pF.

Was machst Du also am Besten:
1) Du schliesst mal nur Masse vom Oszi an
2) Du schliesst fest einen entsprechenden Widerstand an, dabei kann 
nichts passieren.
Wenn Du jetzt immernoch die Messspitze dranhalten musst, dann ist was 
oberfaul.

Sollte die Meldung "busy" aber gerade von dem Oszi kommen, dann gehört 
Dir die Rübe runtergerissen :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.