STM32 5V tolerant, welcher Pegel?

OP #7470995
Lesenswert?

Ich hab nun zum zweiten Mal in das Datenblatt geguckt aber um die Uhrzeit fällt das denken schwer.

Ich hab einen unbekannten Aufbau, ein ESP32 und ein STM32 reden miteinander. Nach ca. drei Wochen funktioniert das Programm plötzlich nicht mehr, und da ich am Programm nichts geändert hab muss der Fehler in der Kommunikation liegen.

Nun fiel mir wieder ein dass ich lange zuvor beim sniffen festgestellt habe dass die ursprüngliche Hardware über 5V kommuniziert.

Baugleicher Aufbau STM32 <-> ESP32 funktioniert problemlos, aber mit dem betroffenen STM32 geht nichts los. Kann man den STM32 so abschießen dass er sich aufhängt?

Macht es Sinn einen Pegelwandler auf 5V zu setzen um evtl. Kommunikationsschwierigkeiten auf den Grund zu gehen?

Angenommen da sitzt ein Pegelwandler vor dem STM32 der die 5V wieder auf 3V3 runterteilt, kann es sein dass hier ein Pegel nicht erreicht wird?

Bei dem STM32 handelt es sich um diesen Controller.

https://www.mouser.de/datasheet/2/389/stm32f103c8-1851025.pdf

ESP32 ist ein DevKit und sendet mit 3V3 sollte klar sein.

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7471069
Lesenswert?

Alexander schrieb:

und da ich am Programm nichts geändert hab muss der Fehler in der Kommunikation liegen.

Diesen Schluss kann ich nicht nachvollziehen. Viele Softwarefehler treten erst nach einiger Zeit oder bei bestimmten Rahmenbedingungen suf.

ein ESP32 und ein STM32 reden miteinander. Nach ca. drei Wochen funktioniert das Programm plötzlich nicht meh .... Baugleicher Aufbau STM32 <-> ESP32 funktioniert problemlos .... dass die ursprüngliche Hardware über 5V kommuniziert.

Was ist "die ursprüngliche Hardware"? Wenn da nur diese beiden uC beteiligt sind, woher kommen dann die 5V?

kann es sein dass hier ein Pegel nicht erreicht wird?

Da würde ich einfach mal Oszilloskop nehmen und messen. Zur Analyse serieller Kommunikation ist so ein Gerät eh' unentbehrlich.

#7471077
Lesenswert?

Alexander schrieb:

Ich hab einen unbekannten Aufbau

Das ist ein sensorloser? BLDC kontroller aus einem Lime 2.0, steht doch auf der Platine. Sitzt der STM32 auch auf dieser?

Einen ESP 32 kann ich auf den Bildern nicht sehen. Der Motortreiber wird nicht unerhebliche Ströme recht schnell schalten und damit Störungen produzieren, ein Bild auf dem der geheime Aufbau zu sehen ist könnte helfen.

Was hast du an Messgeräten da, Oszi, Logic Analyzer?

#7471131
Lesenswert?

Uwe B. schrieb:

Nicht jeder STM32 Pin ist 5-Volt tolerant. Daher das Datenbatt genau lesen ! Und wenn der STM32 noch keine Spannung hat, gilt die 5-Volt Toleranz auch noch nicht.

Eben, dieses "5V tolerant" ist nur Marketing-Geblubber, dem sollte man nicht gedankelos aufsitzen. Die Datenblätter sagen typischerweise "max. VDD + 4.0V" unter den abs. max. ratings, und dann auch noch mit der netten Fußnote, dass pull-up deaktiviert ist. Stammen die 5V und die 3.3V (oder so) aus getrennten Quellen, oder gar aus verschiedenen Baugruppen o. Ä., ist's damit Essig.

Spätestens bei einer Reparatur wird einfach mal irgendwo eine Steckverbindung gelöst, und das war's dann ... Wenn man dieses Feature halbwegs sicher verwenden will, dann immer nur innerhalb einer Baugruppe ohne Trennstellen, von der 5V- auf die 3.3V-Versorgung eine Z-Diode und in der Firmware möglichst frühzeitig nach Reset die GPIO-Konfiguration verriegeln.

OP #7471149
Lesenswert?

Im ersten Post auf dem ersten Bild (Eröffnungspost!) sieht man rechts in der Ecke den STM32, sowie ein vorkonfektioniertes Kabel. Auf dem zweiten Bild sind die Pins markiert welche direkt mit dem ESP32 verbunden sind.

Ich weiß nicht warum die mit 5V arbeiten, es kann natürlich auch etwas mit EMS zu tun haben. Leider ist mein Oszilloskop ungeeignet.

Hier mal ein Schnappschuss von einem funktionierenden Aufbau. Die 5V Messung ist vom originalen Aufbau, die 3V Messung mit dem ESP32 Nachbau, jeweils an RX und TX gemessen (grüne+gelbe Pfeile im Eröffnungspost)

Kann jemand an der Platine erkennen wo die 5V herkommen?

Ich werde noch mal mit einem Arduino testen, die arbeiten ja mit 5V.

Angehängte Dateien:
Gast #7471179
Lesenswert?

Alexander schrieb:

Leider ist mein Oszilloskop ungeeignet.

Ich glaube eher, dass du es falsch bedient hast. Du hast das Gerät gnadenlos übersteuert.

Stelle mal den Schalter unten links auf X1 anstelle von X5. Und verschiebe die Y-Achse nach unten so dass du das ganze Signal sehen kannst.

OP #7471290
Lesenswert?

Alexander schrieb:

Könnte sein dass der Pegel über den blauen Pin mitgeliefert werden muss. Bisher dachte ich der dient nur zum wecken. Ist sowas üblich?

Dem ist nicht so, habe nachgemessen. Dass der ESP32 den Pegel nach unten zieht kann ich mir erstmal auch nicht vorstellen, da sich sein GPIO 3 als Input 4.9 V gefallen lässt. Außer der zieht so viel Strom dass die Spannung einbricht? Es kommen jedenfalls nur 2.8 V an.

Hier noch mal bessere Bilder vom TX Pin zum Vergleich. Mit dem Original sind es 5 V gleicher Pin gleiche Einstellung.

Das sollen 9600 baud sein.

Angehängte Dateien:
Gast #7474661
Lesenswert?

Alexander schrieb:

Bleibt die Frage was nun besser ist, 3V oder 5V.

STM32 Controller können weder mit 5V betrieben werden, noch können ihre Ausgänge 5V liefern. Gleiches gilt für dem ESP32.

Ohne Schaltplan sehe keine Chance, sich einen vernünftigen Grund aus den Fingern zu saugen, der für die Nutzung von Pegelwandlern zwischen diesen beiden IC plädieren würde.

#7474742
Lesenswert?

Alexander schrieb:

Ich hab Pfeile dran gemalt, reicht das?

reicht für was? Ich hab gefragt was für ein Controller bestückt ist. Wieso glaubst du das man das an den Pfeilen erkennen kann?

Also nochmal: Entweder ist ein STM Controller bestückt dann kommen keine 5V an TX raus oder es ist halt z.B. ein CH32F103 bestückt der mit 5V läuft. Dein MC33079 ist ein 4fach OP verwendet vermutlich für die Strommessung.

Ich glaube sowieso nicht dass dein Problem mit den Pegeln zusammenhängt

#7474744
Lesenswert?

Auf dem ersten Bild in diesem Thread kann man den Controller zwar erahnen, aber nicht erkennen.

Weil aus irgendwelchen Gründen das Bild aus einem schrägen Winkel aufgenommen wurde und weil aus irgendwelchen Gründen viel Wert darauf gelegt wurde, möglichst viele der Leitungen vor der Platine zu haben.

Ein gutes Bild sieht anders aus. Das wird einerseits mit einer exakt senkrecht auf die Platine ausgerichteten Kamera gemacht, das wird mit anständiger Beleuchtung (hell und diffus, also kein Punktstrahler, kein Blitz o.ä. und vor allem keine Reflexionen auf der Platine) gemacht, und dafür werden idealerweise alle unnötigen Dinge (Stecker mit irgendwelchen Leitungen dran) vorher entfernt oder aber wenigstens so angeordnet, daß sie möglichst wenig verdecken.

#7474752
Lesenswert?

Steve van de Grens schrieb:

STM32 Controller können weder mit 5V betrieben werden,

Ok

noch können ihre Ausgänge 5V liefern. Gleiches gilt für dem ESP32

So ist es nicht ganz richtig.

Die 5V toleranten Eingänge beider können auch echte 5V liefern, wenn vom Ausgang ein pull up nach 5V gelegt wird und der Ausgang zwischen low und Eingang umgeschaltet wird, im Endeffekt ist er dann ein open drain Ausgang.

OP #7474762
Lesenswert?

Wie gesagt die Bilder sind nicht von mir. Ich fahre damit rum, das reversen einer Platine heb ich mir für das Nachfolgemodell auf. Die spannende Frage bleibt doch, wieso adaptiv entweder mit 3V oder mit 5V geantwortet wird (siehe Oszi Bilder) und welches Bauteil dafür in Frage kommt. Der OP ist vermutlich entweder für das BackEMF oder eben ein Pegelwandler.

Angehängte Dateien:
Gast #7474765
Lesenswert?

Kann es sein, dass der Hersteller absichtlich eine gefälschten STM32 (also in echt einen CH32) aufgelötet und mit 5V betrieben hat? Das könnte man direkt an den Pins des IC nachmessen.

Eine fehlende GND Verbindung kann übrigens auch Überspannung verursachen.

OP #7474793
Lesenswert?

GND ist über den schwarzen Pfeil verkabelt. Und der CH32 funktioniert mit einem STM32 dump? Der CH32 würde dann dynamisch auch mit 3V senden (so wie es hier der Fall ist)?

Wenn es nun wieder nach genau 3 Wochen auftritt, liegt es vermutlich nicht am Pegel. Wenn es eher oder später auftritt rüste ich auf 5V nach.

Im ESP32 Code hab ich zwar einen Reset nach 1 Woche eingebaut, aber an den Controller Code kommt niemand ran.

Und neu schreiben? Puh, hab mal bisschen nach 'BLDC' gesucht... das kann ich vergessen.

Gast #7475100
Lesenswert?

Alexander schrieb:

GND ist über den schwarzen Pfeil verkabelt

Das Foto sagt absolut nichts darüber aus, ob die Stromversorgung in tatsächlich Ordnung ist. So etwas muss man messen!

Tue mir einen Gefallen, und beende Aussagen nicht mit einem Fragezeichen. Wenn du eine Frage hast, dann Frage. Wenn du etwas Aussagen willst, dann sage es aus. Dein Schreibstil ist äußerst uneindeutig, was zusätzlich Verwirrung stiftet. Mich beschleicht das Gefühl, dass du das absichtlich machst, um zu trollen.

Der CH32 ist zum STM32 weitgehend kompatibel. Wenn er mit 3 Volt versorgt wird, gibt er 3 Volt aus. Aber die I/O Pin können als Open-Drain konfiguriert sein und dann durch externe Beschaltung auf 5 Volt hoch gezogen werden. Nur macht das bei der Kommunikation mit einem ESP keinen Sinn, da dieser maximal 3,6 Volt verträgt.

Langsam wird es anstrengend, deine zahlreichen Vermutungen und Fragen zu beantworten, da sie nicht zielführend sind. Zielführend wäre ein Schaltplan, in den man Messergebnisse einzeichnet. Also Fakten, nicht Vermutungen.

OP #7475263
Lesenswert?

Fakten: 1. Schaltplan gibt es nicht. 2. Das originale Kommunikationsmodul welches vom ESP32 ersetzt wurde ist auf 5V ausgelegt. 3. Die Platine auf welcher der STM32 sitzt (Controller) sendet wahlweise mit 3V oder 5V am TX Pin, je nachdem ob man am RX Pin mit 3V oder 5V sendet. Die genauen Pegel am TX Pin sind 4,99V bzw. 2,81V laut Oszilloskop. 4. Die Verkabelung ist original und der Abstand beider Controller beträgt ca 1 m.

Meine Frage war ob der Pegel (inzwischen gemessen 2,81V) ausreicht. Wenn keiner anhand der Bilder erkennen kann, ob da ein Pegelwandler verbaut ist, dann lässt sich diese Frage ohne Datenblatt sicher nicht beantworten, und der Thread kann zu.

Der STM32 ist seit dem stromlos machen gestern, heute wieder abgestürzt. Der ESP32 läuft und dessen Reset bewirkt nichts. Ich baue es auf 5V um und teste erneut.

Vielen Dank an alle.

Angehängte Dateien:
#7475442
Lesenswert?

TTL Logikpegel bei 5V:

2,0 V -> high

< 0,8V -> low dazwischen undefiniert. Wenn mans nicht gerade mit CD4000 CMOS Teilen zu tun hat sollte es ziemlich wurscht sein ob mit 3,3V oder 5V gearbeitet wird, solange die Pins die Spannungen aushalten.

Bissl verdächtig in den Scope-Bildern sind Vmin=-0,48 und Vmax=4,51, das stinkt nach einem Problem bei der Masseverbindung.

OP #7475456
Lesenswert?

Das Oszilloskop hat eine andere Spannungsquelle, gemeinsame Masse gibt's nur über die Abtastnadeln.

Am Kommunikationsmodul kommt nur eine Masse an, und das ist die vom M̶o̶t̶o̶r̶ Akku (rot + schwarz = 42 V)

Ich könnte über den GND Pin der SWD Stiftleiste mal gegen messen, aber alles weitere bedeutet Kabel ziehen, was zu vermeiden wäre.

#7475462
Lesenswert?

Alexander schrieb:

Das Oszilloskop hat eine andere Spannungsquelle, gemeinsame Masse gibt's nur über die Abtastnadeln.

Da über diese Leitungen nur ein vernachlässigbar kleiner Strom fliesst kann da niemals ein Spannungsversatz von 0,5V auftreten, und die µCs geben auch keine negativen Spannungen gegenüber ihrem Bezugspotential aus. Darum ist das verdächtig, das kann so eigentlich nicht sein wenn alles an einer Masse hängt.

OP #7475580
Lesenswert?

Das liegt am 15,- € DSO-138 wurde ja schon gesagt dass ich das nicht bedienen kann. Das sieht selbst auf seiner eigenen Masse falsches Potential.

Steve van de Grens schrieb:

Ich hoffe du hast den nicht mit dem 5V Ausgang deines ST-Link Sticks verbunden.

Nein aber 3.3 V zum flashen, da SWD deaktiviert und readout protection gesetzt war.

Angehängte Dateien:
Gast #7475584
Lesenswert?

Alexander schrieb:

IMG_20230811_153418.jpg

Sieht kaputt aus. Prüfe mit einem Ohm-Meter (in Spannungsfreiem Zustand!) ob beide Strippen (rot/schwarz) auch wirklich an der Platine ankommen. Ich vermute einen Kabelbruch.

Wenn die Kabel in Ordnung sind, kontrolliere die Lötstellen der BNC Buchse. Sind die vielleicht ausgebrochen?

Wenn das auch in Ordnung ist, suche in der Anleitung nach einer Funktion zum auto-kalibrieren. Ich weiß nicht ob sie existiert, aber normale Oszilloskope haben so etwas.

OP #7475593
Lesenswert?

Ich kann an den Schaltern rumspielen da gibts eine Stellung wo es in Ordnung ist. Aber das ist erstmal zweitrangig.

Ich hab mir grad noch mal den LM2596HVS angeguckt, da wird Masse durchgeschleift. Also liegt alles definitiv auf demselben GND da schwarz das einzige Kabel ist (zumindest bis zum Controller)

Hab eben erst alles zusammen gebaut, messe den SWD beim nächsten Umbau. Im Prinzip kann sich das jeder für 15,- € selbst basteln, ist alles open source. Das ist der aktuelle Stand. https://youtu.be/ufdSSpZPLZw

Gast #7475596
Lesenswert?

Alexander schrieb:

Aber das ist erstmal zweitrangig.

Das ist überhaupt nicht zweitrangig, weil immer noch der Verdacht besteht, dass eine notwendige GND Verbindung unterbrochen ist.

Also liegt alles definitiv auf demselben GND da schwarz das einzige Kabel ist (zumindest bis zum Controller)

Leiterbahnen und Lötstellen können kaputt gehen.

Im Prinzip kann sich das jeder für 15,- € selbst basteln, ist alles open source. Das ist der aktuelle Stand.

Diese Info hilft hier nicht.

#7475663
Lesenswert?

Wegen den drei Wochen: Bist du dir sicher, dass du nicht irgendwo einen signed 32 bit Zähler (firmware-seitig) verbaut hast, der sekündlich hochzählt? Da hättest du nach gut drei Wochen einen Überlauf in die Miesen.

Nur eine kleine Intuition von meiner Seite. Kann auch Müll sein.

OP #7475674
Lesenswert?

ziemlich sicher ja. selbst wenn, müsste der ESP32 noch sowas blödes senden das den STM32 zum Absturz bringt, den dieser reagiert dann nicht mal mehr auf sein Ladegerät. wenn der "nur" schlafen würde, würde der davon aufwachen und am weißen Pin zeigen dass er wach ist.

den Code und alles weitere findet man hier. Beitrag "Re: BLDC Controller mit STM32F103C8T6 Geschwindigkeitsbegrenzer in der .hex"

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