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.
:
Bearbeitet durch User
Der ESP sendet mit 3.3V? Warum willst du dann von 3.3V auf 5V um dann wieder auf 3.3V?! Und denke daran: nicht alle Pins sind 5V tolerant.
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.
:
Bearbeitet durch Moderator
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?
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.
Ben S. schrieb: > Aber so gut wie alle. Bei dem SZM32F103C8 sind 14 I/O Pins nicht 5V tolerant. Darauf liegt die USART2 (PA2, PA3)
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.
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.
:
Bearbeitet durch User
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.
Trotzdem kommen da 5V aus dem Controller. Was seltsam ist, er passt sich dem Input an. Mit dem ESP32 sind es sowohl auf TX und RX nur 3V. Könnte sein dass der Pegel über den blauen Pin mitgeliefert werden muss. Bisher dachte ich der dient nur zum wecken. Ist sowas üblich?
:
Bearbeitet durch User
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.
Auf der Rückseite scheint ein mc33079 mit chinesischer Beschriftung zu sein, das könnte man als Pegelwandler annehmen. Wäre dieser in der Lage den Pegel dynamisch anzupassen?
Ich habs nun mit einem Arduino UNO probiert, sendet auf 5V. Keine Reaktion. Entweder ist was kaputt oder eine fehlgeschlagene Challenge-Response-Authentifizierung.
Bei dem zweiten Controller ist nun auch der Fehler aufgetreten. Der STM32 hatte sich aufgehangen das wars. Bleibt die Frage was nun besser ist, 3V oder 5V.
:
Bearbeitet durch User
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.
Den Schaltplan müsste ich rekonstruieren, und da es min. 2 Lagen + ein GND Lage sind wird das womöglich nichts. Für 5V spricht der Siebdruck sowie die Tatsache dass der TX mit 5V antwortet wenn man RX mit 5V fragt.
Alexander schrieb: > en Schaltplan müsste ich rekonstruieren, dann mach das mal... Die STMs können nicht an 5V betrieben werden. Wenn dein TX also 5V Pegel hat ist entweder ein Pegelwandler dazwischen, (unwahrscheinlich) oder ein anderer Controller bestückt. Die ARMs von WCH z.B können an 5V betrieben werden.
Thomas Z. schrieb: > Wenn dein TX also 5V Pegel hat ist entweder ein Pegelwandler dazwischen, > (unwahrscheinlich) oder ein anderer Controller bestückt. Es ist ein STM32, zumindest habe ich den Dump eines STM32F103C8T6 darauf geflasht. Die Bilder sind aber nicht von mir. Google Lens liefert noch weitere Bilder (auf einem wurde der HM8634 durch einen MC33079 ersetzt)
:
Bearbeitet durch User
oh man und warum schaust du dir nicht einfach mal die Beschriftung des Controllers an oder machst ein gutes Foto vom Controller?
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
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.
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.
Thomas Z. schrieb: > warum schaust du dir nicht einfach mal die Beschriftung des > Controllers an oder machst ein gutes Foto vom Controller? Alexander schrieb: > Ich hab Pfeile dran gemalt, reicht das? Hast du nicht. Du hast Pfeile an die Anschlusspunkte der Kabel gemalt.
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.
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.
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.
:
Bearbeitet durch User
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.
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.
:
Bearbeitet durch User
Alexander schrieb: > Meine Frage war ob der Pegel (inzwischen gemessen 2,81V) ausreicht Wenn der ESP mit 3,3V versorgt wird, dann muss der HIGH Pegel an seinem Eingang mindestens 2,475V haben. Beim STM32 sieht es ähnlich aus, da kannst du selbst ins Datenblatt schauen.
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.
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.
:
Bearbeitet durch User
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.
Anders gesagt, wenn das Scope eine negative Spannung sieht sieht die der µC vielleicht auch, und das mag der sicher nicht.
Alexander schrieb: > An dem STM32 kann ich leider nicht messen, da hab ich nur SWD > freigelegt. Der SWD Anschluss hat normalerweise einen VCC (bzw Vtarget) Pin. Da kannst du dessen Versorgungsspannung abgreifen. Ich hoffe du hast den nicht mit dem 5V Ausgang deines ST-Link Sticks verbunden.
Robert M. schrieb: > Bissl verdächtig in den Scope-Bildern sind Vmin=-0,48 und Vmax=4,51, das > stinkt nach einem Problem bei der Masseverbindung. Sehe ich auch so
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.
:
Bearbeitet durch User
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.
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
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.
Steve van de Grens schrieb: > Das ist überhaupt nicht zweitrangig, weil immer noch der Verdacht > besteht, dass eine notwendige GND Verbindung unterbrochen ist. Das verstehe ich nicht. Wenn die unterbrochen wäre hätte der LM2596HVS und somit der ESP32 keinen Strom.
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.
:
Bearbeitet durch User
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"
Das habe ich in der Lenkstange gefunden. scheint ein Konstruktionsfehler zu sein. Sind immerhin 36 V. Ist nicht ausgeschlossen dass es was mit meinem Fehler zu tun hat.
:
Bearbeitet durch Moderator
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.