_GD32の交換方法STM32の交換方法は?

リンク:https://blog.csdn.net/qq_23852045/article/details/109802955

GD32F103はGDの初期製品です。GD32E103とGD32F303はGD32F103のアップグレードと最適化であるため、4つは互換性があります。カーネルは異なりますが、一般的な周辺機器にカーネル部分が含まれることはめったにありません。時間が緊急の場合はSTを使用できます。ライブラリ開発。

1.類似点

1)周辺ピンはPIN TO PIN互換であり、各ピンの多重化機能も同じです。
2)チップの内部レジスタ、外部IPレジスタアドレス、論理アドレスはまったく同じですが、一部のレジスタのデフォルト値が異なり、一部の周辺モジュールの設計タイミングがSTM32と異なります。この違いは主にソフトウェアの変更に反映されます。を参照してください。詳細については、以下をご覧ください。
3)コンパイルツール:まったく同じ。例:KEIL、IAR
4)モデルの命名方法はまったく同じであるため、同じサフィックスを持つモデルを見つけるだけで済みます(例:STM32F103C8T6とGD32E103C8T6)。
5)シミュレーションツール:JLINK GDLINK

第二に、周辺ハードウェアの違い

3つ目は、ハードウェアの交換に注意を払う必要があることです。

上記の紹介から、GD32F30 / E103シリーズとSTM32F103シリーズは互換性があることがわかりますが、注意が必要です。

1)BOOT0は10KプルダウンまたはGNDに接続する必要があり、STはフローティングのままにすることができます。これは非常に重要です。
2)RCリセット回路が存在する必要があります。そうでない場合、MCUが正常に動作せず、STが不要な場合があります。
3)エミュレータが接続できない場合があります。GDのswdインターフェイスドライブ機能はSTよりも弱いため、これを解決する方法はいくつかあります。a
。回線をできるだけ短くする必要があります。b。SWD
通信速度を下げ
ます。c。SWDIOを10kプルアップとSWCLKに接続します。 10kプルダウンに接続されています。
4)バッテリー電源等を使用し、GDの動作電圧に注意してください。例えば、2.0V〜2.6Vの範囲まで低下してもSTは動作し、GDが起動しない、または異常動作する場合があります。

第四に、ST標準ライブラリ開発の使用を変更する必要があります

1)GDには厳しいタイミング要件があります。ペリフェラルを設定するには、最初にクロックをオンにしてペリフェラルを設定する必要があります。そうしないと、ペリフェラルが正常に設定されない可能性があります。STは最初にクロックをオンにするように設定できます。

2)外部水晶発振器の起動タイムアウト時間を変更します。このステップは、外部水晶発振器がなくてもスキップできます。
理由:GD MCUをより正確にリセットするために、GDとSTの起動時間に違いがあります。
変更:

マクロ定義を変更します。#define HSE_STARTUP_TIMEOUT((uint16_t)0x0500)を次のように変更します。#define HSE_STARTUP_TIMEOUT((uint16_t)0xFFFF)
3)GD32F10Xフラッシュ値ゼロ待機。またはSPIを変更する必要があるかもしれません。

理由:GD32は特許技術を使用して、同じ動作周波数でのコード実行速度を向上させます。
変更:正確なタイミングにforまたはwhileループを使用すると、コードの実行が速くなるため、タイミングによってループ時間が短縮されるため、シミュレーションで設計遅延を再計算する必要があります。タイマーを使用しても効果はありません。

4)コードで読み取り保護を設定します。JFLASHやオフラインライターなどの外部ツールを使用して読み取り保護を設定する場合は、この手順をスキップできます。
KEYシーケンスを書き込んだ後、このビットを読み取って、キーが有効になったことを確認する必要があります。変更は次のとおりです。合計4つの関数を次のように変更する必要があります。

FLASH_Status FLASH_EraseOptionBytes(void); FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address、uint8_t Data); uint32_t FLASH_GetWriteProtectionOptionByte(void); FlagStatus FLASH_GetReadOutvoidProtectionStatus(void);
5)フラッシュ時間のGDとSTには違いがあります。

6)フラッシュは256Kより大きくする必要があり、256Kより小さい場合、この項目は無視できることに注意してください。

STとは異なり、GDフラッシュにはパーティションの概念があります。最初の256Kでは、CPUはゼロ待機で命令を実行します。これはコード領域と呼ばれ、この範囲外はdataZ領域と呼ばれます。消去操作と書き込み操作に違いはありませんが、読み取り操作時間には大きな違いがあります。コード領域のコードの待機時間はゼロであり、データ領域のコードの実行には大きな遅延があります。また、コードの実行効率はコード領域よりも1桁遅いため、データ領域高いリアルタイムパフォーマンスを必要とするコードを実行することは一般に推奨されません。この問題を解決するには、次のようなスキャッターロード方法を使用できます。初期化コードとイメージコードをデータ領域に配置するように。

概要:これまでのところ、上記の変更後、USBのコードやネットワーク対応の複雑なプロトコルを使用せずに、STコードを使用して操作できます。

-END- |関連技術の普及のために記事を整理し、著作権は元の著者に帰属します| |侵害がある場合は、削除するために連絡してください|
良い記事のコレクション

STM32シリアルポートの送信データと受信データの方法の概要STM32は長い間学習してきましたが、プロジェクトの実行方法がまだわかりません。STM32:ルーキーからマスターまではとても簡単です!
————————————————
著作権表示:この記事は、CSDNブロガー「Walkingin the Darkness」の元の記事であり、CC 4.0BY-SA著作権表示に準拠しています。元のソースリンクとこのステートメント。
元のリンク:https://blog.csdn.net/weixin_34246598/article/details/112651024

おすすめ

転載: blog.csdn.net/tjcwt2011/article/details/115017605