STM32F103 eigene Platine geht nicht

OP #7604021

Hallo, ich habe mir auf dem Blue-Pill eine Software geschrieben und wollte die Hardware dann auf einer eigenen Platine umsetzen. (Das Ergebnis seht ihr im Anhang "schematic.pdf")

Leider funktioniert das über haubt nicht wie erwartet. Ich komme einfauch nicht mit meinem J-Link V2 (CN) und openOCD auf den Controler. Die Ausganbe von openOCD: im Anhang "Ausgabe.png"

Der J-Link funktioniert, da ich auch dem Blue-Pill gut damit arbeiten kann.

Natürlich könnte es auch an Lötfehlern liegen, allerdings habe ich (hoffentlich) recht sauber gearbeitet und habe bereits 3 Versuche hinter mir...

Seht Ihr irgentwelche Fehler, die ich im Schaltplan gemacht habe? Sonstige Tipps sind gerne auch willkommen.

Danke für Eure Hilfe,

Drewle

Angehängte Dateien:

Sind Boot0 und Boot 1 und NRST floating oder hast du die mal extern definiert? Ich könnte mir mit floatendem NRST schon Probleme vorstellen. BOOT Pins nachgelagert.

PS: habe nur grob drübergeschaut, aus meinem Gedächtnis passen die SWD Pins, habe ich aber nicht nachgelesen.

OP

Danke für die schnellen Antworten,

NRST sollte eigentlich intern mit einem Pullup versehen sein. Ich werde aber noch versuchen mit einem externen Pullup (10k) nach 3.3V zu gehen. Oder wäre ein 100nF nach GND besser?

Boot0 habe ich mit einem 100k auf GND gelegt. Boot1 ist floatend. Bei Boot0 auf GND sollte Boot1 keine Rolle mehr spielen, oder? Im Schaltplan vom Blue Pill wurden 100k verwendet: https://stm32-base.org/assets/pdf/boards/original-schematic-STM32F103C8T6-Blue_Pill.pdf

Die Brücke zwischen VDD und VDDA habe ich im Moment noch nicht drin. Ich wollte das nach und nach aufbauen. Kann das eine Rolle spielen? Ich mache ja noch nichts mit ADC. Ich scheitere ja schon eine Meile befor ich überhaubt etwas aufspielen kann.

Anmerkung: Ich habe gerade noch gesehen, dass ich (unabsichtlich) VBAT auch auf die 3.3V gelegt habe. Ich habe noch nicht darüber nach gedacht: Kann das was ausmachen?

Andreas L. schrieb:

NRST sollte eigentlich intern mit einem Pullup versehen sein. Ich werde aber noch versuchen mit einem externen Pullup (10k) nach 3.3V zu gehen. Oder wäre ein 100nF nach GND besser?

Absolut unnötig und kontraproduktiv, denn NRST hat bereits intern einen Pullup. Klatsche einen 100nF dran und führe den NRST dann auf deine Stiftleiste.

Andreas L. schrieb:

Boot0 habe ich mit einem 100k auf GND gelegt. Boot1 ist floatend. Bei Boot0 auf GND sollte Boot1 keine Rolle mehr spielen, oder?

Das sieht man aber nicht im Schaltplan.

Andreas L. schrieb:

Ich habe gerade noch gesehen, dass ich (unabsichtlich) VBAT auch auf die 3.3V gelegt habe. Ich habe noch nicht darüber nach gedacht: Kann das was ausmachen?

Meiner Erfahrung nach nein. Zur Not kratze die Leitung auf.

Andreas L. schrieb:

Die Brücke zwischen VDD und VDDA habe ich im Moment noch nicht drin. Ich wollte das nach und nach aufbauen. Kann das eine Rolle spielen?

Ja, denn VDDA versorgt auch GPIOA und somit die SWD Einheit. Ohne Spannung an VDDA kein programmieren.

OP

Hallo, danke, mit den 0 Ohm funktioniert das schon mal besser!

Jetzt habe ich aber immer noch gelegentliche Aussetzer. Da muss ich wohl noch an dien NRST ran. Das ist leider etwas frikelig, da ich direkt an den Pin was anlöten muss. (Das geht erst wieder am Montag in der Arbeit.)

Danke für Eure Hilfe!

Drewle

OP

Was für Aussetzer? Ich komme mit dem Debugger auf den Controller und kann auch etwas rumsteppen. Manchmal ist er dann aber einfach weg. Wenn ich ihn auf einen Breakpoint am Anfanf von main laufen lasse will kommt er da nie an. Das würde ich mal auf den NRST schieben.

(Die selbe Software funktioniert auf dem Blue Pill ohne Probleme)

Andreas L. schrieb:

Die Brücke zwischen VDD und VDDA habe ich im Moment noch nicht drin.

Andreas L. schrieb:

Das würde ich mal auf den NRST schieben.

Es gibt von ST App Notes wie die Beschaltung aussehen sollte. Man kann sich auch an den Schaltplänen der Discovery oder Nucleo Boards orientieren, eventuell für V2 der Platine. https://www.st.com/resource/en/application_note/an2586-getting-started-with-stm32f10xxx-hardware-development-stmicroelectronics.pdf

Welchen Quarz hast du? Nutzt du den oder einen der internen Quarze? Wenn die Kondensatoren am Quarz nicht stimmen kann es zu Problemen kommen.

Es gibt auch die Empfehlung nach Serienwiderständen in den Quarz Leitungen. Ich habe immer 220Ohm drin.

Viel Erfolg

Wastl schrieb:

Paul B. schrieb:

Irgendwie lese ich in dem ganzen Thread keinen Beitrag von dir, der zur Lösung des Problems beiträgt.

Doch es ist hilfreich zu wissen dass du die internen Quarze bei den STM32 Controllern kennst. Ich wusste das bis dahin auch noch nicht.

Meine Güte, absolut jeder weiß was gemeint ist. Absolut jeder. Helf lieber dem Anfänger als mit typisch deutscher Klugscheisserei aufzutreten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 2 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.