Kann keine Verbindung zum STM32-Chip herstellen

Ich habe einen STM32F103VF-Chip (LQFP100) auf ein Breakout-Board gelötet , das ich über meinen ST-Link (Klon) verbinden möchte. ST-Util (und STM32CubeProgrammer) können jedoch keine Verbindung zum Chip herstellen.

MCU-Datenblatt: https://www.st.com/resource/en/datasheet/stm32f103vf.pdf

Bild vom Aufbau:

aufstellen

Pinbelegung:

Pinbelegung

Ich habe folgende Verbindungen hergestellt:

  • VDD_1, VDD_2, VDD_3, VDD_4, VDD_5 auf 3,3 V
  • VSS_1, VSS_2, VSS_3, VSS_4, VSS_5 auf GND
  • VDDA auf 3,3 V
  • VSSA zu GND
  • VREF+ auf 3,3 V
  • VREF- auf GND
  • BOOT0 über 4,7kOhm Widerstand an entweder 3,3V oder GND (siehe unten)
  • PB2 (BOOT1) auf GND
  • NRST, PA13 (SWDIO), PA14 (SWCLK) zum ST-Link-Programmierer
  • zwei 100µF 16V Elektrolytkondensatoren zwischen GND und 3,3V
  • ein 2,2-nF-Keramikkondensator zwischen GND und 3,3 V
  • 3,3 V und GND werden vom Tischnetzteil geliefert, GND wird mit ST-Link geteilt

Schematische Darstellung: schematisch

Egal welche Einstellung in ST-Util oder STM32CubeProgrammer ich in Bezug auf Reset-Modus (Software / Hardware / Core) oder Frequenz versuche, NRST getrennt oder verbunden zu haben, sagt es nur

01:50:32 : Fehler: Kein STM32-Target gefunden!

Beobachtungen und Notizen:

  • Wenn BOOT0 LOW ist (auch bekannt als "Firmware ausführen") und ein Reset durchgeführt wird (NRST berührt GND für eine Sekunde), beträgt die Stromaufnahme 2 mA
  • Wenn BOOT0 HIGH ist (auch bekannt als "Run internal bootlaoder") und ein Reset durchgeführt wird, springt die Stromaufnahme auf 12 mA
  • Wenn NRST mit GND verbunden ist, beträgt die Stromaufnahme ~ 1 mA
  • Datenblatttabelle 18 besagt, dass der Versorgungsstrom im Betriebsmodus auf HSI 16 MHz, alle Peripheriegeräte aktiviert, 12,2 mA beträgt
  • laut Bootloader-Dokument ist RCC jedoch bei aktivem Bootloader auf HSI+PLL auf 24 MHz eingestellt, was 18,9 mA (alle Peripheriegeräte aktiviert) oder 11,6 mA (alle Peripheriegeräte deaktiviert) entspricht.
  • Oszillatorpins (für HSE und LSE) wurden schwebend gelassen, sie sollten auch nicht notwendig sein
  • Chip wurde noch nicht von mir programmiert, stammt vom RS-Online-Händler
  • Ich habe überprüft, dass 3,3 V alle VDD-Pins auf dem Chip erreichen, direkt auf der Oberseite des Pins auf dem Gehäuse
  • Ich habe nach dem Löten des Chips auf der Breakout-Platine nach Kurzschlüssen gesucht und sie alle entfernt, bevor ich sie angeschlossen habe (mein Löten dieses LQFP100 verlief nicht sehr reibungslos. Das Entfernen von Brücken dauerte ein Dutzend Versuche mit Lötgeflecht).
  • Der ST-Link-Klon hat in der Vergangenheit absolut gut funktioniert und sich mit STM32-, STM8- und GD32-Chips verbunden
  • Der Versuch, eine Verbindung herzustellen, wenn der Chip mit BOOT0 = HIGH oder LOW zurückgesetzt wurde, macht keinen Unterschied, beide schlagen fehl

Ich habe keine Ideen, warum ich mich nicht über SWD mit dem Chip verbinden kann und warum der Stromverbrauch im Modus "Firmware ausführen" so niedrig ist. Wenn nichts programmiert ist, sollte der Chip ziemlich bald auf eine ungültige Anweisung stoßen, einen Hardfault verursachen und in einer Schleife stecken bleiben, aber der Verbrauch zeigt das nicht :/.

Können Sie ein echtes Diagramm Ihrer Verbindungen zeichnen? Es ist viel einfacher für den Leser und ehrlich gesagt wahrscheinlich Ihr bester erster Debugging-Schritt.
Ich habe meine Verbindungen in EasyEDA gezeichnet und den Schaltplan oben verlinkt.
Okay, irgendetwas stimmt mit den SWD-Verbindungen nicht. Beim Booten des Chips in den Bootloader-Modus und Anschließen eines USB-UART-Adapters an die Bootloader-Pins (PA10 / PA9) IST die Verbindung ERFOLGREICH. imgur.com/a/8jGHbxe

Antworten (1)

Rätsel ist gelöst.

Ich habe den SWDIO-Pin PA13 nicht mit dem ST-Link verbunden, aber weil ich ihn an den falschen Pin auf dem Breakout-Board angeschlossen habe, habe ich ihn mit PA12 verbunden, einem nicht verwandten GPIO-Pin.

Sobald diese eine falsche Verbindung behoben ist, funktioniert die Verbindung sofort.

schw

Was mich auf diesen Weg gebracht hat, ist, dass ich per Kommentar über den UART-Bootloader eine Verbindung zum Chip herstellen konnte, sodass der Chip nicht tot war, wie ich dachte.

Lektion des Tages: Überprüfen Sie Ihre Verbindungen immer dreifach.

Es zeigt auch, dass der obige Schaltplan funktioniert, wenn er richtig angeschlossen ist.

Trotzdem danke für die Hilfe und den Anstoß, die Verbindungen erneut zu überprüfen.

Vielen Dank, dass Sie sich die Zeit genommen haben, zurückzukommen und eine Antwort zu posten! Sie können auch Ihre eigene Antwort akzeptieren, wenn Sie dazu neigen ...
In 2 Tagen kann ich, sagt SO :)
Ah ja. Ich hatte vergessen :)