Ich versuche seit fast einem Jahr, einen STM32 dazu zu bringen, auf einer kundenspezifischen Leiterplatte zu arbeiten. Ich habe einen STM32F107 und habe ihn wie im beigefügten Diagramm gezeigt verdrahtet (nur die gezeigten Komponenten sind derzeit gelötet).
Ist diese Schaltung korrekt oder hat sie eklatante Fehler, die ich übersehe?
Ich habe versucht, OpenOCD mit swd zu verbinden, und ich habe auch versucht, BOOT0 hochzuziehen und ohne Erfolg eine Verbindung über USART1 herzustellen.
Da ich noch keinen Kommentar abgeben kann, poste ich dies als Antwort: Für mein ganzes Leben kann ich die SWD-Pins auf Ihrem Schaltplan nicht finden, die mit irgendetwas verbunden sind, und ohne sie ist die Programmierung nur über den Bootloader von ST über UART möglich BOOT1 und Debuggen ist unmöglich. Wenn Sie SWD verwenden möchten, müssen Sie 5 Pins verbinden:
SWDIO und SWCLK sind für die Datenübertragung, NRST wird manchmal verwendet, um die Karte zu programmieren ("Programm unter Reset"), VDD ist notwendig, um eine Verbindung zu ST-Links TVDD herzustellen, da es zur Erkennung verwendet wird, und GND, um eine gemeinsame Masse zu haben.
Außerdem müssen Sie Kondensatoren an den 8-MHz-Quarzoszillatoren anbringen, obwohl Sie bei Betrachtung Ihres Designs keine genaue Frequenz benötigen, sodass Sie auch den internen 8-MHz-Oszillator des F107 verwenden und etwas Geld sparen können.
Ich verstehe, dass meine Antwort eher für die Leute ist, die sich in Zukunft mit diesem Thema befassen werden. In stm32f107 boot1 (PB2) Pin ist nicht erforderlich, Sie können es in Tabelle 9 im Referenzhandbuch auf Seite 59 überprüfen. STM32F107 könnte in 3 verschiedenen Boot-Modi ausgeführt werden, die über BOOT[1:0] ausgewählt werden können.
-----------------------------------------------------------------------------
| boot1 | boot0 | Boot Mode | Alliasing
-----------------------------------------------------------------------------
| X | 0 | Main Flash Mmory | Main Flash memory is selected as boot space
-----------------------------------------------------------------------------
| 0 | 1 | System Memory | System memory is selected as boot space
-----------------------------------------------------------------------------
| 1 | 1 | Embedded SRAM | Embedded SRAM is selected as boot space
-----------------------------------------------------------------------------
Also denke ich, dass pb2 keine richtige Lösung war.
Sie sollten unbedingt dieses kurze Tutorial von ST lesen: „Getting started with STM32F 10xxx hardware development“
Es enthält ein Kapitel über die Programmierung über JTAG und SWD sowie ein Beispiel-Referenzschema mit minimal erforderlichen Komponenten zum Ausführen von STM32, sodass Sie dies mit Ihrem Design vergleichen können.
Danke. Ich habe vergessen, pb2 mit Masse (dem anderen Boot-Pin) zu verbinden.
Bester Gareth
Armandas
Benutzer3780104
Armandas
Bence Kaulics
Benutzer95009
Bence Kaulics
baqx0r
David
Aldanajaramillo
Hans
Tyler