STM32F103RBT6~RET6: フラッシュ容量移行ガイド
STM32F103RCT6と、そのRBT6およびRET6の兄弟製品は、同じ64ピンのLQFPフットプリントと同じCortex-M3コアを共有しています。そのため、このファミリーのフラッシュ容量アップグレードは、実際にはそうでないにもかかわらず、ドロップイン交換として扱われがちです。ピン互換性は機械的なものです。フラッシュ消去ページサイズ、SRAM、およびブートローダー自身の前提条件はフットプリントによって保証されず、ST自身のプログラミングマニュアルにはその違いが直接記載されています。
1。RBT6、RCT6、RET6の間で実際に変わるものは何ですか?
3品種はすべて、同じSTM32F103性能ラインのマイクロコントローラーであり、同じ72 MHz Arm Cortex-M3コア、同じ周辺機能セット、同じLQFP64パッケージ(本体10 × 10 × 1.4 mm)を採用しています。「F103」の後の文字と数字がフラッシュ容量を示します。RBT6には128 Kbytesのフラッシュと20 KbytesのSRAMが搭載され、RCT6には256 Kbytesのフラッシュと48 KbytesのSRAMが搭載され、RET6には512 Kbytesのフラッシュと最大64 KbytesのSRAMが搭載されます。シリコン上の違いによってピン数、ピン割り当て、コア周辺機能が変わることはなく、ダイ上のメモリ量だけが変わります。
同一フットプリントでメモリ容量が増えるという組み合わせが、これを他社製品への置き換えではなく、真の「容量アップグレード」にしています。基板の再設計も、新しいランドパターンも、SWDやJTAGデバッグヘッダーの変更も必要ありません。残る作業はすべてファームウェア側にあり、ビルド、リンカースクリプト、フラッシュドライバーのいずれも、小容量品のジオメトリを前提としていないことを確認する必要があります。
ST自身のハイデンシティデータシート(DS5792、256から512 Kbyte品種を対象)とミディアムデンシティデータシートは、いずれも同じ性能ラインファミリーの説明を参照しています。また、STM32F103x8/B商用データシートには、同ファミリーが完全なピン間、ソフトウェアおよび機能互換性を想定して設計されていると記載されています。この記述はファミリーの関係を示すものであり、対象部品の具体的なメモリーマップ確認の代わりにはなりません。
2。ピン配置は本当に同一ですか?
この3品種に限れば、機械的には同一です。RBT6、RCT6、RET6はいずれも、STの注文情報ページでLQFP 64、10 × 10 × 1.4 mmパッケージオプションとして記載されており、この構成では51本の汎用I/Oピンを備えます。同じ品番は他のパッケージでも提供されます(例えばRBT6にはTFBGA64オプションがあります)。そのため、パッケージサフィックスと正確な注文コードを個別に確認する必要があります。「同じピン数」という主張は、使用する具体的な発注可能部品のフットプリントが一致することを確認したものではありません。
| 品番 | フラッシュ | SRAM | 密度クラス | LQFP64で提供 |
|---|---|---|---|---|
| STM32F103RBT6 | 128 KB | 20 KB | Medium-density | Yes |
| STM32F103RCT6 | 256 KB | 48 KB | High-density | Yes |
| STM32F103RET6 | 512 KB | 64 KB | High-density | Yes |
基板を再設計するかどうかを決定する前に、調達対象の正確な発注コードについて、最新のデータシートのデバイス情報表を確認してください。STのカタログも、多くのメーカーと同様に、品番ごとの特定のパッケージオプションを定期的に追加または廃止します。実際に流通業者が在庫管理するのは、発注コードのサフィックス(ここでは「T6」、および末尾に付くパッケージや温度を示す文字)です。
3。STはなぜこれらを異なる「密度」クラスと呼ぶのですか?
STのSTM32F10xxxリファレンスマニュアル(RM0008)とフラッシュプログラミングマニュアル(PM0075)では、STM32F101/F102/F103ファミリーを、ローデンシティ(フラッシュ16~32 Kbytes)、ミディアムデンシティ(64~128 Kbytes)、ハイデンシティ(256~512 Kbytes)、XLデンシティの各クラスに分類しています。RBT6はミディアムデンシティ、RCT6およびRET6はハイデンシティです。これはマーケティング上の名称ではありません。密度クラスは内部フラッシュアレイの構成を決定し、それがファームウェアに影響する詳細だからです。
具体的には、PM0075は、メインフラッシュメモリーブロックについて、ローデンシティデバイスでは32ページ(各1 Kbyte)、ミディアムデンシティデバイスでは128ページ(各1 Kbyte)、ハイデンシティデバイスでは256ページ(各2 Kbytes)で構成されると説明しています。フラッシュコントローラーが1回の操作で消去できる最小ブロックである消去粒度は、ピン互換ファミリーに属するかどうかではなく、密度クラスに紐づいています。
4。フラッシュ消去ページとは何で、サイズが重要なのはなぜですか?
オンチップフラッシュは、RAMのように1バイトずつ書き換えることはできません。プログラム済みビットを0から1へ戻すには、フラッシュコントローラーがページ全体を消去し、その後で新しいデータをプログラムする必要があります。そのためページは、ブートローダーが新しいアプリケーションイメージを書き込む場合、設定ブロックを書き換える場合、OTA更新で新しいファームウェアバージョンをステージングする場合を問わず、フィールド更新におけるアトミックな単位となります。
RBT6を前提に、フラッシュを1 Kbyte単位で消去し、同じ部品で安全な消去境界だったため、2つの独立したデータブロックを1 Kbyte離して保存する設計は、ミディアムデンシティフラッシュアレイの特性に依存しています。同じファームウェアをRCT6へ移行する際に再確認しないと、消去コマンドは一度に2 Kbytesを消去することになります。ファームウェアがなお分離されていると考えている2番目のデータブロックが、1番目とともに消去されたページ内に入ってしまうのです。
この故障モードは、最初はフラッシュの問題には見えません。設定が気づかないうちに初期化される、更新後にアプリケーションパーティションが破損する、またはOTAイメージが一度は起動するものの次の書き込みサイクル後に失敗するといった形で現れます。症状はフラッシュ書き込み中ではなく使用中に現れるため、実際の原因であるページサイズの前提を確認する前に、タイミング、電源、割り込みを調べ続けてしまいがちです。
5。ハードコードされたページサイズは、ブートローダーのどこで問題になりますか?
典型的なファームウェアビルドでは、消去ページサイズに関する前提が3か所に組み込まれており、密度クラスをまたいで変更する場合は3か所すべてを確認する必要がある。
- リンカースクリプトのフラッシュ領域定義。 カスタムブートローダーとアプリケーションの分割では、開発時に使用した消去ページ境界に領域を合わせることが多い。その境界を 1 Kbyte の RBT6 で選択した場合、各領域のアドレス自体は RCT6 でも有効だが、その部品の実際の 2 Kbyte 消去境界には合わなくなるため、更新時にアプリケーション領域とブートローダー領域にまたがって不完全なページが残る可能性がある。
- フラッシュドライバーの消去ルーチン。 ST の HAL と標準ペリフェラルライブラリはいずれもページアドレスを受け取るフラッシュ消去関数を提供しているが、必要な消去呼び出し回数や次のページの開始位置の計算に使用するページサイズ定数が、部品固有のメモリー構成から読み取らず、アプリケーションコード内でローカルに定義されている場合がある。
- 外部の HAL から取り込んだ任意の OTA または設定保存ライブラリ。 サードパーティー製のフラッシュベースストレージライブラリでは、ターゲットごとに設定が必要なページサイズをデフォルト値として持つことが多い。1 Kbyte のデフォルト値をそのままにして RCT6 のシリコンを使用すると、リンカーレベルでは何の兆候もないまま、同じ破損リスクが再現される。
3つのケースすべてに共通する実際的な対策は、ビルド内の消去ページサイズへの参照をすべて見つけ、現行データシートおよび PM0075 に記載された対象部品の実際の構成から読み取っていること(または明示的に一致させていること)を確認し、初期立ち上げ時に使用したアドレスだけでなく、代表的なアドレス範囲全体で消去・書き込み・検証の一連のサイクルを再実行することである。
6。フラッシュ以外に何が変わるのか?
SRAM はフラッシュと同じ方向に増加するが、相対的な増加幅はより大きい。RBT6 上の 20 KB と RCT6 上の 48 KB を比べると前者は二倍を超え、RET6 上の 64 KB は三倍を超える。小さい部品で RAM に余裕がなかった設計では、より大きなバッファー、大きなヒープ、または追加の RTOS タスクのための有意な余裕が得られる。RBT6 の 20 KB に対して RAM を厳密に見積もっていた設計では、固定サイズの静的割り当て、スタックサイズ、リンカーシンボルが依然として妥当か再確認すべきである。RAM の空き容量が多い部品へ移行しても、そのすべてを使う必要はないが、固定された小さい RAM サイズを基準にアドレスを計算していたコードは、フラッシュに関する前提と同じ方法で見直す必要がある。
コア、クロックツリー、GPIO 構造、通信ペリフェラル(I2C、SPI、I2S、USART、USB、CAN)は、これら3部品間で変わらない。これらのペリフェラルの電気的仕様、動作電圧範囲、タイミングはメモリー密度ではなくパフォーマンスラインファミリーの設計によって決まるため、フラッシュ容量が増えたというだけでペリフェラルレベルの評価をやり直す必要はない。
7。部品をアップグレードする前に何を検証すべきか?
このファミリーでの密度アップグレードは、ピン互換性だけから判断せず、対象部品固有の現行データシートおよびフラッシュプログラミングマニュアルに照らして、5項目を確認すれば安全に行える。
- 注文可能なパッケージコード。 対象密度に対応する正確な LQFP64 注文コードが最新かつ指定した調達元から入手可能かを確認する。同じベンダーでも、密度範囲によってパッケージの選択肢が異なる場合がある。
- フラッシュ消去ページサイズ。 ブートローダー、OTA ライブラリ、または設定保存機能が固定ページサイズを前提としていないか確認し、その定数を対象部品の密度クラス(ミディアム密度では 1 Kbyte、ハイ密度では 2 Kbyte)に合わせて更新する。
- リンカースクリプト領域のアラインメント。 アプリケーション領域とブートローダー領域が、有効なフラッシュアドレスに合わせるだけでなく、新しい消去ページ境界にも合っていることを再確認する。
- RAM 相対アドレス指定。 ツールチェーンのリンカーシンボルを使わず、特定の SRAM サイズを基準にバッファー位置やスタック上限を計算しているコードを確認する。
- 完全な消去・書き込み・検証テスト。 新しい部品を量産向けに認定する前に、アプリケーションがフェイルセーフ更新に対応している場合は書き込み中断のシミュレーションも含め、更新経路全体を実行する。
各ファームウェアビルドが対象とする具体的な部品(RBT6、RCT6、または RET6)を文書化し、フラッシュドライバー自体に明示的なページサイズチェックを組み込まずに、密度クラスをまたいで単一のバイナリーを出荷することは避ける。
8。ST ファミリー以外にピン互換の代替品はあるか?
他のベンダーには STM32F103 互換のセカンドソース部品が存在し、同等密度であれば、先に本サイトで掲載した STM32F103C8T6 クロスリファレンスガイドと同じ考え方に基づき、通常は同じ LQFP64 ピン配置で販売されている。ここでの注意点も同じである。ピン互換性はパッケージに関する機械的な主張にすぎず、それだけで同一のフラッシュコントローラー、同一の消去ページサイズ、または同一のフラッシュプログラミングタイミングが保証されるわけではない。セカンドソース部品がファームウェアレベルで ST のオリジナル部品と同じように動作すると想定する前に、消去ページサイズとフラッシュアクセスサイクル設定について、対象ベンダー独自のプログラミングマニュアルを確認する。
9。調達依頼には何を記載すべきか?
密度アップグレードを調達する際は、フラッシュ容量だけを記載する依頼よりも、正確な対象部品を指定した依頼のほうが、実用的な回答を早く得られる。サプライヤーは完全な注文可能コードに基づいて在庫を確認できるが、単なる「256 KB STM32F103」ではパッケージ、温度グレード、正確なサフィックスが指定されていない。
有用な項目は、完全な注文可能部品番号(パッケージと温度サフィックスを含む)、年間数量を含むビルド当たりの数量、特定の小さい部品から移行する場合はその正確な供給元部品番号、そして現行ファームウェアのフラッシュ消去ルーチンが対象密度クラス向けにすでに更新されているかどうかである。対象密度だけが重要で RCT6 または RET6 のどちらでもよい場合はその旨を記載し、特定の RAM サイズが必要な場合は「入手可能な最大品」を求めるのではなく、そのサイズを明記する。
このファミリーの現在の入手状況については、 STM32F103RCT6 掲載ページ、 STM32F103RBT6 掲載ページ および STM32F103RET6 掲載ページ を chip-seek.com で検索する。これらのページは在庫を断定するものではなく、最新のカタログ検索結果を返す。数量と日付コードは見積書と照合すること。先に掲載した STM32F103C8T6 クロスリファレンスガイド および STM32F103CBT6ガイド 同じファミリーに属する小容量のLQFP48製品や、64ピンのフットプリントをまだ採用していないプロジェクトを対象とします。複数行の調達依頼は、 BOMとRFQフォーム.
よくある質問
RBT6とRCT6で、変更なしに同じファームウェアバイナリを使用できますか? ファームウェアがページサイズをハードコードせず、対象デバイス固有の定義からフラッシュ構成を読み取る場合に限り可能です。単一ターゲット向けに作成された初期化コードの多くはページサイズをハードコードしているため、バイナリを再利用する前にフラッシュドライバーとリンカースクリプトを確認してください。
LQFP64のフットプリントは、RBT6、RCT6、RET6で本当に同一ですか? はい。各製品の最新のST発注情報に記載されたLQFP 64、10 × 10 × 1.4 mmパッケージについては同一です。ただし、パッケージの供給状況は製品ライフサイクル中に変わる可能性があるため、対象製品の具体的な発注可能コードを確認してください。
STの用語でいうミディアムデンシティとハイデンシティの違いは何ですか? STのRM0008リファレンスマニュアルで定義されたフラッシュ容量の分類です。ミディアムデンシティはフラッシュ64~128 Kbytes、ハイデンシティは256~512 Kbytesを指します。この分類によって、消去ページサイズを含むフラッシュアレイの内部構成が決まります。
SRAMが多いこと自体でファームウェアの変更が必要になりますか? いいえ。未使用のRAMを使う必要はありません。確認が必要なのは、小容量製品の固定されたRAMサイズを基準にアドレスや上限を計算しているコードだけであり、リンカーが提供するシンボルを使用しているコードでは不要です。
この3製品で、ADC、タイマー、USB、CANペリフェラルは変わりますか? いいえ。コアペリフェラルセット、電気的仕様、クロックツリーはパフォーマンスライン・ファミリーの設計で定められており、この3製品ではメモリ密度によって変わりません。
製品ファームウェアで消去ページサイズを間違えるとどうなりますか? 1つの領域を消去した際に、同じ物理消去ページ内の隣接データまで意図せず消去される可能性があります。通常は即時のプログラミングエラーではなく、設定の破損や更新失敗として現れます。
出典
- カバー写真:Raimond Spekking、 STMicroelectronics STM32F107RBT6 LQFP64 パッケージ写真, CC BY-SA 4.0。Chip-seekが同じライセンスの下でカバー用にトリミング・配置しました。この写真は同じLQFP64パッケージファミリーを示すもので、特定のSTM32F103RBT6、RCT6、RET6そのものの写真でも、在庫の証拠でもありません。
- ST STM32F103RB製品ページ:フラッシュ容量、SRAM、パッケージオプション、発注情報。
- ST STM32F103RC/RD/REデータシート、DS5792:ハイデンシティ・パフォーマンスライン・ファミリーの説明、フラッシュとSRAM容量、パッケージ情報。
- ST STM32F103RE製品ページ:フラッシュ容量、SRAM および LQFP64 のパッケージ確認。
- ST PM0075、STM32F10xxxフラッシュメモリマイクロコントローラー・プログラミングマニュアル:フラッシュモジュールの構成、密度クラス別のページサイズ、ロー/ミディアム/ハイデンシティの定義。
- ST STM32F103x8/Bデータシート:パフォーマンスライン・ファミリーのピン互換、ソフトウェア互換、機能互換に関する説明。
適切な密度の調達についてサポートが必要ですか?
小容量品から移行する場合は移行元の製品番号、対象フラッシュ容量、正確なパッケージサフィックスを送信してください。 承認前に、確定数量、ロット/日付コード、在庫所有者を確認してください。このガイドでは現在の在庫を検証していません。カタログの検索結果だけでは、自社所有在庫やファームウェア互換性は確認できません。
48ピンのファミリーを使用していますか?その場合は STM32F103C8T6相互参照ガイド が小型のLQFP48パッケージを説明しています。