Hallo, ich habe mir eine eigene Platine mit einem STM32F103C8T6 gebaut. Nachdem sie nun angekommen ist habe ich einige Probleme. Der Mikrocontroller wird über SWD und einem ST Link V2/1 ( Nucleo Board) mittels Platform IO programmiert ( Habe auch schon die Arduino Ide und STM32CubeIde mit HAL probiert). Das programmieren funktioniert auch soweit ganz gut und der Blink Sketch wird ausgeführt. Nach einiger Zeit (30sek- 10min) jedoch stoppt das Programm plötzlich. Der Strom von meinem Labornetzteil sinkt dann auch von ca. 35mA auf 3-4 mA. Das Problem lässt sich kurzfristig beheben, wenn ich Pin 9 (VCC) des Mikrocontrollers kurz mit dem Lötkolben erwärme, tritt allerdings nach kurzer Zeit erneut auf. Kurzschlüsse auf der Platine kann ich eigentlich ausschließen, da ich alle Verbindungen unter dem Mikroskop geprüft habe und es schon auf verschiedenen Platinen mit verschiedenen Mikrocontrollern ausprobiert habe. Allerdings messe ich, nachdem das Problem auftritt meist zwischen 0 und 100Ω zwischen VCC und GND. Sobald ich den Pin erneut erwärmt habe, sind es wieder einige kΩ. Obwohl ich jedoch diesen niedrigen Widerstand zwischen VCC und GND messe fließen trotzdem nur 3-4mA. Ich bin leider vollkommen ratlos, was das sein kann. Hat jemand schonmal Erfahrungen damit gemacht? Ich hänge auch nochmal ein paar Bilder von dem Schaltplan an. Vielen Dank!
:
Bearbeitet durch User
Tim M. schrieb: > Hallo, > > ich habe mir eine eigene Platine mit einem STM32F103C8T6 gebaut. Nachdem > sie nun angekommen ist habe ich einige Probleme. Ja was denn nun: Hast Du sie gebaut oder ist sie angekommen? Entscheide Dich!
Was habe ich auch erwartet wenn ich hier frage... Wie gewohnt erstmal eine unfreundliche Antwort. Ich habe sie selbst erstellt und online bestellt.. Wenn du keine sinnvolle Antwort liefern kannst dann lass es einfach
Na dann erklär doch mal wie du einen Widerstand messen kannst wenn die Stromversorgung an ist.
:
Bearbeitet durch User
Tim M. schrieb: > Was habe ich auch erwartet wenn ich hier frage... Wie gewohnt erstmal > eine unfreundliche Antwort. Ich habe sie selbst erstellt und online > bestellt.. Wenn du keine sinnvolle Antwort liefern kannst dann lass es > einfach Immer diese Neulinge die hier unformatierten Text hinklatschen, dazu kein Layout und bei Nachfragen direkt pampig werden. Geh woanders Leute nerven!
Ok das mit der Formatierung nehme ich hin. Allerdings war die erste Antwort weder eine Nachfrage, die irgendwie zum Thema gehört hätte oder irgendwie interessant ist, noch war sie sonderlich freundlich formuliert. Ich verstehe nur nicht, wieso es immer solche Nachfragen gibt, wenn die Leute das Thema doch offensichtlich nicht interessiert oder sie nichts dazu zu sagen haben.
Tim M. schrieb: > Sobald ich den Pin erneut erwärmt habe, sind es wieder einige kΩ. Das sieht aus nach einem kaputten Chip. Löt ihn aus und nimm einen neuen - aber achte darauf, daß du dessen Anschlüsse nicht mit Über- oder Unterspannungen auch wieder beschädigst. W.S.
Moin. Vbat angeschlossen? Woher kommen die 3,3V? Schon mal unter Debugger laufen lassen bis zum Absturz, was hat der Debugger dann gesagt? rgds
NRST hat intern ein PullUp, weshalb R1 überflüssig ist. (5.3.14 NRST pin characteristics) Deshweiteren gehört an NRST ein 100nF (Figure 31. Recommended NRST pin protection)
Tim M. schrieb: > Allerdings war die erste Antwort weder eine Nachfrage, die irgendwie zum > Thema gehört hätte oder irgendwie interessant ist, noch war sie > sonderlich freundlich formuliert. Freundlich naja, zum Thema gehörend durchaus. Bei seltsamen Fehlern hilft jedes Bit Information und natürlich das Layout, am Besten als png und brd. Wobei man auf einem gekauften Arduino-Modul eher weniger Fehler erwartet als auf einer Eigenkonstruktion, besonders, wenn das Schaltbild nicht soo liebevoll gemacht ist. Mit der Eagle-Konstruktion "3 Pads, aber nur 1 Pin im Schaltplan" kann man leicht vergessen, alle VCC- und VDD-Leiterbahnen zu verlegen. Das Datenblatt sagt
1 | Caution: |
2 | In Figure 10, the 4.7 µF capacitor must be connected to VDD3. |
Also nicht irgendwo auf der Platine. Sowas sieht man im Board sofort, im Schaltbild finde ich den 4u7 garnicht. Für VDDA gilt ähnliches, 10n plus 1u werden empfohlen. Ideal wäre noch ein Ferrit zwischen 3V3 und VDDA. Da hängen die Oszillatoren und die PLL dran, die sind relativ empfindlich. Viele I/O-Pins enden in der Luft, deshalb sollte das Programm gleich nach dem Reset deren Pull-Up einschalten. Offene Eingänge erhöhen die Stromaufnahme. Für die ersten Versuche würde ich immer nur den internen Oszillator HSI benutzen, also die Takteinstellungen im RCC garnicht anfassen.
:
Bearbeitet durch User
Sieht mit nach VBAT an 3.3V vergessen aus...mach mal einen Draht zwischen 3.3V und wohl am Einfachsten zur positiven Seite von C1 - ja nicht polar, ich mein die Seite die nicht an GND haengt. Ich vermut der C1 laedt sich langsam ueber VBAT auf und dann kommt es zu Stoereffekten nach einiger Zeit.
Eine Diskussion zu VBAT gab es hier auch schonmal, allerdings ohne eine Erklärung für die Empfehlung ihn mit VDD zu verbinden: Beitrag "STM32 VBAT Eingang"
Im Schaltplan hat der uC 44 Pins, in CubeMX 48 Pins. Nach dem Pinout vom uC fehlen im Schaltplan mehrere VCC/VSS Pins. Und natürlich gehört VBAT an VCC. Ebenfalls fehlt ein 100nF an Reset gegen GND. Ein Foto vom Layout würde bei der weiteren Begutachtung helfen.
so kann ein aufgeräumtes Schaltplansymbol für den uC aussehen.
Also viele Dank erstmal an alle. Ich hoffe es ist OK, wenn ich in einem Post auf mehrere Ding antworte. Oder ist das nicht so gerne gesehen? Ja das mit dem Vdd an Vbat habe ich übersehen, allerdings habe ich das eben mal schnell korrigiert und es hat sich leider nichts geändert. Und nein, es fehlen keine Vdd/Vss Pins, wie bauformb schon erwähnt hat, sind einfach alle Vdd/Vss Pins an ein Pin im Symbol gehängt, weshalb hier nur 44 anstatt 48 Pins zu sehen sind. Obwohl ich sonst das meiste selbst erstelle, hatte ich das Symbol damals von SnapEda geholt, da ich keine Lust hatte eines selbst zu erstellen. Bauform B. schrieb: > Also nicht irgendwo auf der Platine. Sowas sieht man im Board sofort, im > Schaltbild finde ich den 4u7 garnicht. Auch den habe ich nachträglich hinzugefügt, allerdings hat das auch nichts geändert. Den 100nF an Reset werde ich Ende der Woche mal ausprobieren, wenn ich meine Klausuren rum habe. Mehmet K. schrieb: > NRST hat intern ein PullUp, weshalb R1 überflüssig ist. > (5.3.14 NRST pin characteristics) Ja und das hatte ich tatsächlich gestern auch entdeckt. Ich hatte mich primär nach dem BluePill Schematic gerichtet, da war auch ein externer 10kΩ Widerstand an NRST. Aber das sollte ja eigentlich keine Probleme hervorrufen oder? drm schrieb: > Ein Foto vom Layout würde bei der weiteren Begutachtung helfen. Ich hänge mal ein PNG vom Layout mit rein, vielleicht hilft das ja was
>Ich hänge mal ein PNG vom Layout mit rein das Layout endet an der Platinenkante, aka PCB Outline Es fehlen die Powerlagen in Screenshot. >Symbol damals von SnapEda geholt, >da ich keine Lust hatte eines selbst zu erstellen. gern gemachter Fehler
drm schrieb: > das Layout endet an der Platinenkante, aka PCB Outline Ja allerdings ist das Board relativ groß, da würde man nichtsmehr erkennen. Allerdings sind dort keine Komponenten mehr gelötet. Alles was gelötet ist, bis auf den ST Link Connector sind auf dem Screenshot drauf EDIT: Wie lösche ich ein Bild? Das eine ist leider doppelt
:
Bearbeitet durch User
Tim M. schrieb: > Das Problem lässt sich kurzfristig beheben, wenn ich Pin 9 (VCC) des > Mikrocontrollers kurz mit dem Lötkolben erwärme Ist es tatsächlich ein Temperaturproblem? Kannst du das Problem mit Kältespray forcieren? Tim M. schrieb: > Alles was gelötet ist, bis auf den ST Link Connector sind auf dem > Screenshot drauf Kannst du mal ein halbwegs scharfes Foto von der gelöteten Platine machen? Tim M. schrieb: > EDIT: Wie lösche ich ein Bild? Du kannst das nicht. Ich habe das für dich erledigt.
Lothar M. schrieb: > Ist es tatsächlich ein Temperaturproblem? Kannst du das Problem mit > Kältespray forcieren? Denke nichts, dass es was mit der Temperatur zu tun hat. Vielleicht entläd sich etwas durch das löten oder so... Kann ein Bild schicken, allerdings erst ende der Woche, da ich zwecks Klausuren in mein Studienort gefahren bin und alles daheim gelassen habe. Vielleicht kann mein Vater heute Abend ein Bild machen, dann schicke ich es!
10...10nF gegen GND an NRST fehlen. Vbat gehört an 3,3V, da vermute ich dein Problem. Sind die Abblockkondensatoren nahe an den VCC/VDD Anschlüssen? So machen es die Jungs von ST selbst, hier solltest du mal rein schauen: Schaltplan Nucelo Board https://www.st.com/resource/en/data_brief/nucleo-f103rb.pdf VG Paul
Sehe gerade das im F103 Datenblatt der Schaltplan gar nicht drin ist. Nimm dir einen Artverwandtes Nucleo, bei den meisten sind die Schaltpläne drin ;).
Ja das mit dem VBat hört sich für mich eigentlich auch am sinvollsten an. Vielleicht habe ich heute morgen auf die schnell auch etwas falsch gemacht weshalb es mit der Korrektur nicht funktioniert hat. Ich werde ende der Woche nochmal die Vbat lösung + den Kondensator an NRST probieren und hoffen, dass es damit funktioniert. Die Abblockkondensatoren sollten eigentlich alle nahe genug dran sein aber du sieht ja das BoardLayout vielleicht siehst du das anders. Ja im Nachhinein betrachtet hätte ich mir lieber das Nucleo 64 Board als Vorlage nehmen sollen als das BluePill Board. Ich werde das alles mal probieren und wenn es klappt dann eine V2 erstellen Danke schonmal!
Soweit ich weiß versorgt der Vbat Pin die RTC und die Pins PC13, PC14 und PC15. Solange man diese Pins nicht belastet, genügt der interne Umschalter von der Versorgungsspannung. Aber wenn die Pins nennenswert belastet werden (ich glaube die Schwelle war 2mA), braucht man an Vbat eine Versorgungsspannung.
Stefan ⛄ F. schrieb: > Soweit ich weiß versorgt der Vbat Pin die RTC und die Pins PC13, PC14 > und PC15. Solange man diese Pins nicht belastet, genügt der interne > Umschalter von der Versorgungsspannung. Aber wenn die Pins nennenswert > belastet werden (ich glaube die Schwelle war 2mA), braucht man an Vbat > eine Versorgungsspannung. Hmm ok also zumindest in dem derzeitigem Setup werden diese Pins nicht belastet..
Fehlendes C an NRST ist aber ein guter Kandidat fuer das Einfangen von Stoerungen.
Uwe Bonnes schrieb: > Fehlendes C an NRST ist aber ein guter Kandidat fuer das Einfangen von > Stoerungen. Sehe ich genau so. Bei näherem Betrachten ist die Schaltung dieser LP ausgesprochen lausig - und das nicht nur wegen der äußerlichen Form. - VBat gehört an eine Spannung: entweder an Vcc oder an eben eine Batterie. - Reset gehört an eine Kombination aus Hochzieh-Widerstand und Kondensator - 22k und 10nF sollten in den meisten Umgebungen ausreichen. - SWCLK und SWDIO sollten auch per Widerstand auf gültige Pegel gelegt werden. - RxD sollte ebenfalls einen R als Hochzieher bekommen. - all die anderen verwendeten Signale/Pins sollten ebenfalls saubere Pegel kriegen. Ich setze hier mal voraus, daß dies auf einem anderen Schaltungsblatt enthalten ist. Ich bin zwar durchaus kein sonderlicher Fan der STM32, habe aber mittlerweile bereits eine ganz stattliche Anzahl dieser Chips und darunter eben auch eine Menge von STM32F103C8T6 in verschiedensten Projekten verbaut - und dabei ist mir noch nie irgend eine Instabilität untergekommen. Das Einzige, was mit mal widerfahren war, waren Abstürze die dadurch verursacht wurden, daß ich es vergessen hatte, die für die Taktrate nötigen Waitstates einzustellen. W.S.
W.S. schrieb: > - Reset gehört an eine Kombination aus Hochzieh-Widerstand und > Kondensator - 22k und 10nF sollten in den meisten Umgebungen > ausreichen. > - SWCLK und SWDIO sollten auch per Widerstand auf gültige Pegel gelegt > werden. Warum empfiehlt ST dann "100n, kein R" am Reset? Warum sagt ST "SWCLK und SWDIO haben interne Pull-Down bzw. Pull-Up, keine externen Bauteile nötig"? Jedes Bauteil mehr ist eine Fehlerquelle mehr und ein wenig mehr Antenne um Störungen einzufangen. Wir sind uns einig, dass VBAT an 3V3 gehört -- auf diesem Board. Auf einem Board mit Batterie ändert sich die VBAT-Spannung von Null auf 3.7V und ganz langsam wieder auf Null. Das sollte gefälligst keine undefinierten Zustände erzeugen, also dürfte auch 1uF und sonst nichts (wie hier) keine Probleme machen. Außer, wenn es beim F103 noch nicht funktioniert hat.
Um einen Hardware-Fehler im Bereich des Quarzoszillators auszuschließen, ändere das Programm auf die Verwendung vom internen RC-Oszillator. Außerdem wäre auch ein Test mit minimalem Programm ("Blinky-Code") empfehlenswert.
Franz schrieb: > Um einen Hardware-Fehler im Bereich des Quarzoszillators auszuschließen, > ändere das Programm auf die Verwendung vom internen RC-Oszillator. Ja das hatte ich mir auch schon überlegt, aber leider hat das auch nichts geholfen gehabt Und ich lass die meiste Zeit nur einen Blink Sketch laufen
Hallo nochmal an alle, Ist zwar etwas spät aber ich wollte mich nochmal bedanken. Ich habe nochmal ein neues Board mit allen vorgeschlagenen Verbesserungen bestellt und habe es mittlerweile gelötet. Es läuft seit einer Woche bislang ohne Fehler. Ich weis nicht, was den Ausschlag gegeben hat ( Vielleicht auch eine Kombination als allen) aber Hauptsache es läuft:)
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.