STM32 チップはさっきまでは問題なかったのに、なぜ突然プログラムできなくなったのでしょうか? これを試して

燃焼の問題

時間厳守のアトミック ルーチンを使用し、自分のボードにダウンロードしてください。アトミック ルーチンは 8M の高速外部クロックで構成されており、私のマザーボードには 25M の水晶発振器が搭載されているため、これは悲劇でした。チップにプログラムを書き込むことはできません。プログラムをダウンロードしようとするたびに、エラー ダイアログ ボックスが表示されます。J-Link と STM32 チップがそのまま壊れる可能性は低いです。そこで、インターネットで解決策を探し、チップを壊してやっと解決策を見つけたので、初心者の参考のために共有したところ、師匠が通り過ぎました。
 

状況 1:

他人のルーチンをダウンロードした後、外部高速クロック構成が実際のマザーボードの水晶発振器と異なるため、チップを接続してプログラムすることができなくなりますが、これが私の場合に当てはまります。

状況 2:

たとえば、次のコードがプログラムされている場合、次回 J-Link が正常に接続できなくなります。

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

上記のコードは、JTAG ピンの機能をキャンセルし、SWD ピンの機能を開始することを示しています。

解決:

STM32 には BootLoader が付属しているので、BootLoader に切り替えるだけです。具体的な方法は、2 つのジャンパ BOOT1 と BOOT0 を介して起動モードを選択することです。ジャンパを変更して、ブート モードを上記の 2 番目の方法 (BOOT0=1、BOOT1=0) に切り替えます。

電源を切り、ジャンパを変更し、再度電源を入れて、2 番目のモードに入ります: BOOT0=1、BOOT1=0。これは、STM32 のブートローダー モードです。現時点では、J-Link は正常に動作しています。J-Link を使用して新しいプログラムをダウンロードすると、ダウンロードは成功します。電源を再度オフにし、ジャンパを最初のブート モード (BOOT0=0、BOOT1=0) に戻し、電源を再度オンにすると、すべてが正常になり、問題は解決します。

付録 1: BOOT0 と BOOT1 について

各 STM32 チップには 2 つのピン BOOT0 と BOOT1 があります。チップがリセットされたときのこれら 2 つのピンのレベル ステータスにより、チップがリセット後にどの領域からプログラムの実行を開始するかが決まります。以下の表を参照してください。

BOOT1=x BOOT0=0 ユーザー フラッシュ メモリからブートします。これは通常の動作モードです。

ブート 1=0 ブート 0=1 はシステム メモリから開始されます。このモードで開始されるプログラム機能はメーカーによって設定されます。

BOOT1=1 BOOT0=1 内蔵 SRAM からブートします。このモードはデバッグに使用できます。

SRAM の電源がオフになるとデータが失われるため、内蔵 SRAM は通常ブートには使用されません (BOOT1=1 BOOT0=1)。ほとんどの場合、SRAM はデバッグにのみ使用されますが、他の目的にも使用できます。故障のローカル診断の場合は、小さなプログラムを作成して SRAM にロードして、ボード上の他の回路を診断するか、この方法を使用してボード上のフラッシュまたは EEPROM の読み取りおよび書き込みを行います。この方法を使用して、内部フラッシュの読み取りおよび書き込み保護を解除することもできます。もちろん、読み取りおよび書き込み保護が解除されると、悪意のあるソフトウェアのコピーを防ぐために、フラッシュのコンテンツも自動的にクリアされます。

通常、BOOT0 および BOOT1 ジャンパは 0 (GND) にジャンプします。ISP ダウンロードの場合のみ、BOOT0=1、BOOT1=0。ダウンロードが完了したら、BOOT0 ジャンパを 0、つまり BOOT0=0、BOOT1=0 に戻します。

一般的なアプリケーションの場合は、ジャンパを設定せずに BOOT0 ピンと BOOT1 ピンを直接グランドに接続するだけで済みますが、IAR デバッガを使用する場合は、BOOT0 と BOOT1 の構成に関係なく、RAM デバッグまたはフラッシュ デバッグを選択できます。

付録 2: 統合チップのピン 1 の実際の識別方法:


方法1:最小のドットがある場合、対応する足を1とし、順番を反時計回りに回転させる。

方法2:チップに小さな半円形の切り込みがある場合、その切り込みが左を向いているとき、左下に足があり、反時計回りに順番を並べます。

方法 3: 小さなドットや小さなギャップがない場合、ピンを判断する方法は、チップ上の番号とモデルがこちらを向いているとき、チップの下の最初の左端のピンが最初のピンであり、最後に数えるだけです。足を反時計回りに。

Supongo que te gusta

Origin blog.csdn.net/llq_the7/article/details/108523675
Recomendado
Clasificación