外部ST-Linkを使用してSTM32F103 MCUをデバッグ/プログラムする方法


16

私は自分のプロジェクトにSTM32F103 MCUを使用していますが、STM32F411 NucleoボードのST-Linkを外部デバッグ/プログラミングの目的に使用したいと考えています。

CN2ジャンパーをOFFに設定しましたが、実際の質問はSWO(CN2)のピン配置にあります。これをどのように進めるかは次のとおりです。

  • (SWOの)PIN 1はVDD_Targetです
  • ピン2はSWCLK
  • ピン3はGND
  • PIN 4はSWDIOです
  • PIN 5はNRSTです
  • PIN 6はSWOです

私の知る限り、上記のすべてのピンを使用しないでください。のように、私は接続しました

  • MCUのPIN 2からPIN 37(またはPA14)
  • ピン3からGND
  • PIN 4からPIN 34(またはPA13)
  • ターゲットMCUのPIN 5からPIN 7または(RESET)。

「予約済み」に設定されているため、SWOピンを接続する必要があるかどうかわかりません(なぜですか?)。また、MCUのVINピンに3.3 Vを与えています。つまり、VDD(stlinkのピン1)を接続する必要はありません。

公式データシートから取ったこの表を参照してください。

ここに画像の説明を入力してください ここに画像の説明を入力してください

MCUの一般的なピン配置構成は次のとおりです。

ここに画像の説明を入力してください

私はオシロスコープとテスターで「ほぼ」すべてをテストしましたが、すべては大丈夫のようです。ここに他に何が欠けていますか?BOOT0またはBOOT1ピンで何かする必要がありますか?

回答:


11

まず第一に、あなたのボードがすでに供給電圧源を持っているなら、ST-LinkのVDDピンを接続する必要はありません。

次にお勧めするのは、STM32F411 Nucleoボードのリファレンスマニュアルを開いて、回路図を確認することです。特に、ST-Linkがボード上のコントローラーに接続されている部分。

ここに画像の説明を入力してください

ST Microelectronicsにより、SWCLK、SWDIO、NRST、およびSWO(およびもちろんGND)がターゲットMCUに接続されます。追加SWOピンはデバッグ目的のために使用され、あなたが印刷されたデータにアクセスすることができprintfて、このピンを介して機能ST-Linkのユーティリティ

SWOビューアを介したPrintfは、SWOを介してターゲットから送信されたprintfデータを表示します。

したがって、SWOも接続することをお勧めします。後で役立つ場合があります。MCUをNucleoのMCUに接続したように、MCUをST-Linkに接続します。

ブート構成については、3つの選択可能なオプションがあります。メインフラッシュに固定してBoot0をGNDに接続するのが最も簡単ですが、要件はわかりませんので、選択するのはあなた次第です。

ここに画像の説明を入力してください


3
VDDピンを接続せずに「逃げる」ことはできますが、電源は存在せず、ターゲットの電源電圧を検出するために存在します(アナログ入力への接続方法を参照)。より洗練されたデバッグインターフェースは、それなしでラインを低く保ち、複数のターゲット電圧をサポートする対応する供給レベルまで上げるだけです。通常、リセット行は必要ありません(他の多くのSWD実装とは異なります)。SWDピンを無効にする不良な負荷とファームウェアから回復するための鍵ですが、手動で操作することもできます。
クリスストラットン

STM32F1xxボードで、BOOT0を外部で選択可能にする主な理由は、工場ROM UART(など)ブートローダーを使用したい場合です。'103 では、STの多くの後半部分でサポートされているように、USB サポートされていません。'103でUSBブートローダーが必要な場合は、メインフラッシュメモリ内にある必要があるため、BOOT0ピンはそのためには役立ちません。
クリスストラットン

boot0およびboot0をゼロに設定して、プログラムがフラッシュメモリに書き込まれるようにします。それとは別に、Windowsマシンでst-linkユーティリティを使用してみます。現在Mac OSを使用していますが、OSに関連する問題かどうかはわかりません。
baqx0r

STM32F407 Discovery KitのST-Linkを使用してSTM32F303をプログラムしました。(2-5ピン)キットのSWDコネクタをボードのSWCLK、GND、SWDIO、NRST、SWOに接続しただけで(DiscoveryおよびNucleoで行われるように)、ST-Linkユーティリティで機能しました。boot0ピンは、STM32F303 ハードウェアリファレンスマニュアルに基づいて、10k抵抗を介してGNDに接続されています
ベンスカウリック

6

すべての人の貢献に感謝します。

眠れぬ夜を二度と苦労した後、私は問題を見つけることができました。問題は、カスタムボードのピン接続にありました。MCUでは、ピン9(VDDA)はピン24〜36〜48で、ピン8(VSSA)はピン23〜35〜47で短絡していると思いました。しかし、そうではありません。

別の3.3VGNDVDDAVSSAに与える必要があり、st-linkが機能し始めました。

解決方法:STM32F103の接続を理解するためにMaple Miniの回路図を使用しました。彼らはVDDAをVDD1、VDD2およびVDD3で、VSSAをVSS1、VSS2、VSS3で短絡していることが判明しました。VSS0やVSS4ではないので、VSSAの命名からこれを理解すべきだったと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.