STM32F103CBT6の代替品:128 KBフラッシュMCUガイド
同じダイ、同じ48ピンのフットプリント、2倍のフラッシュ — そして、多くの人が交換前に忘れているファームウェア作業。
TL;DR
- STM32F103CBT6STM32F103CBT6 は C8T6 の 128 KB 版の兄弟品です。同一の Cortex-M3、同一の 48 ピン LQFP、同一のツールチェーンを備えています。
- 余裕を追加する最もリスクの低い方法です — ボード変更なし、新しいドライバなし、メモリマップの見直しのみです。
- 作業対象はリンカスクリプト、OTA パーティションテーブル、ベクタテーブルであり、ペリフェラルではありません。
- 128 KB のセカンドソースは存在しますが、64 KB ファミリと同様に「同一ピン、異なるシリコン」という注意事項を伴います。
- ファームウェアイメージがまだ大きくなる場合は、二度認定を行うのではなく256 KBクラスを計画してください。
1. CBT6が存在する理由
F103ファミリは、異なるフラッシュ密度で構成できる単一のダイを中心に設計されました。そのため、C6T6、C8T6、CBT6はパッケージ、ピン配置、ペリフェラルセットを共有しています。違いはメモリであり、アーキテクチャではありません。
設計者にとって、これは贈り物です。C8T6向けに認定されたボードは、レイアウト変更なしでCBT6を受け入れ、ファームウェアはドライバ変更なしでコンパイルされます。唯一の問題は、メモリマップが依然として成立するかどうかです。
購入者にとっては、価格と入手性の判断です。128 KB品はわずかに高価ですが、後でストレージを再設計するリスクを排除します。
2. 3つのメモリバリアント
| 部品 | フラッシュ | RAM | 在庫あり |
|---|---|---|---|
| STM32F103C6T6 | 32 KB | 10 KB | Yes |
| STM32F103C8T6 | 64 KB | 20 KB | Yes |
| STM32F103CBT6 | 128 KB | 20 KB | Yes |
変わらない点に注意してください。RAMはC8T6とCBT6の間で20 KBのままです。フラッシュを倍にしても、アプリケーションのスタック、ヒープ、バッファが増えるわけではありません。制約がRAMにある場合、答えはフラッシュ容量の大きい品種ではなく、別のファミリです。
32 KBのC6T6は逆のトレードオフです。最も安価ですが、小規模な固定イメージにしか適していません。32 KBから128 KBへの移行は4倍の増加であり、通常は制約を恒久的に解消します。
変わらないもの
ピン配置、パッケージ、ペリフェラル構成、クロックツリー、デバッグインターフェースは、C6T6、C8T6、CBT6で変更ありません。同じボード、同じ水晶、同じSWDヘッダー、同じUSB回路が3つすべてで動作します。
そのため、このアップグレードはしばしば「無償」と表現されます。エンジニアリング作業は実際に必要ですが、範囲は限定的です。リンカースクリプトを更新し、パーティションテーブルを見直し、受け入れテストを再実行します。回路図の変更、再レイアウト、新しいドライバーは不要です。
確認する価値がある唯一のペリフェラル差異は、フラッシュコントローラーのページジオメトリです。ページサイズが、エミュレートされたEEPROMとブートローダーの消去方法を決めるためです。
実際には、C8T6とCBT6はディストリビューターのレベルでしばしば互換であり、選択はビルド時点でどちらが入手可能かにかかっています。この柔軟性自体が、パーティションテーブルを128 KBを中心に設計する理由であり、ファームウェアを変更せずにどちらの部品も使用できます。
3. 64 KBでは足りなくなるとき
ファームウェアは予測可能な段階で増大する。40 KBに余裕をもって収まっていたプロジェクトも、5つの事象のうち1つが起こると64 KBを超えることがある。
ネットワークスタックが追加される。TLSを使用したコンパクトなTCP/IPスタックでも、数十キロバイトを消費する。
ディスプレイとフォントセットが追加される。中国語や日本語のグリフセットが数セットあるだけで、アプリケーション全体の容量予算を超えることがある。
OTAステージングが追加される。デュアルバンク更新では、2つ目のイメージ用の領域が必要です。少なくとも圧縮されたイメージの分は必要です。
ログや設定の保存領域がフラッシュ内に移ります。エミュレートされたEEPROMページは、使用可能なアプリケーション領域を減らします。
デバッグシンボルやブートローダーが大きくなります。ブートローダーは、誰が測定するかに関係なく、フラッシュの先頭領域を占有します。
実際に余分な64 KBを消費しているもの
意思決定の前に、容量がどこに使われるかを把握しておくと役立ちます。このクラスのMCU上の一般的な接続アプリケーションは、おおよそ次のように内訳されます。ブートローダー16 KB、アプリケーションコード30~50 KB、コンパクトなTCP/IPスタック12~20 KB、TLS 15~25 KB、ファイルシステムと設定4~8 KB、およびイメージサイズと同等のOTAステージング領域。
これらの数値を合計すると、上限にすぐ到達します。TLSとデュアルバンクステージングを備えた45 KBのアプリケーションは、ログやフォントデータを一切含める前に128 KB超を必要とします。そのため、64 KBの部品はベンチでは十分に感じられても、統合時に容量が不足します。
同じ計算から、「TLSを有効にするだけ」がセキュリティ上の決定であると同時にストレージ上の決定でもある理由が説明できます。暗号スイートと証明書ストアも容量を消費します。
4. 移行作業
| 項目 | 変更点 |
|---|---|
| Linker script | FLASH length from 64K to 128K |
| Partition table | Application, staging and data sizes |
| Vector table offset | Only if the bootloader or app base moves |
| OTA bank size | A larger image needs a larger staging area |
| EEPROM emulation | Page count changes if the layout moves |
| Production programming | Image size and checksum |
最もよくある間違いは、リンカスクリプトを変更してパーティションテーブルを忘れることです。その場合、ボードへの書き込みは正しく行われますが、OTA更新がステージング領域を超えて書き込んだり、ブートローダーが大きすぎると判断したイメージを拒否したりします。
耐久性とエミュレートEEPROM
フラッシュはEEPROMではありません。F103のフラッシュは消去サイクル数に制限があり、通常はページあたり1万回程度です。電源切断のたびに設定ブロックを書き込むと、製品の使用寿命が終わるはるか前にページを使い果たしてしまいます。
エミュレートEEPROMは2つの手法でこれを解決します。第一に、上書きするのではなく新しい場所に書き込むため、摩耗がページまたはブロック全体に分散されます。第二に、RAM内に小さなインデックスを保持し、ページがいっぱいになったときだけインデックスを書き換えます。
どちらの手法も、変数の数とウェアレベリングの深さに比例してフラッシュを消費します。64 KBの部品では、これは予算のかなりの割合になる可能性があります。CBT6では、余分なスペースがあるため、より深いウェアレベリング方式を採用できます。
製品がデータを継続的に記録する場合は、MCUの内蔵フラッシュを消耗させるのではなく、外付けFRAMまたは小型SPIフラッシュを検討してください。コストは控えめで、信頼性の向上は大きいです。
クロック、ウェイトステート、体感性能
フラッシュ容量が大きいからといってMCUが高速になるわけではありませんが、コードが実行される際のフラッシュ・ウェイトステート数は変わり得ます。72 MHzでは、F103は両方の容量密度でウェイトステートを必要とします。違いは、コードが異なるアドレスに配置された場合や、プリフェッチ・バッファの動作が異なる場合に現れます。
ほとんどのアプリケーションでは、これは見えません。サイクル数で計測するループ、ビットバン・インターフェース、タイトな制御ループでは問題になり得るため、受け入れ試験には機能チェックだけでなく、タイミングに敏感なパスも含めるべきです。
設計が48 MHz未満で動作する場合、ウェイトステートは通常ゼロであり、違いは完全に消えます。多くの産業機器設計が意図的に最大速度より低速で動作させる理由の1つです。
5. 実行時のフラッシュ・サイズ
F103は、ファームウェアが読み取れるレジスタでフラッシュ・サイズを報告します。これは、64 KBまたは128 KBの部品のいずれかを搭載して出荷されるプラットフォームに便利ですが、罠でもあります。ページ数やセクタ・アドレスをハードコーディングするコードは、異なる容量密度では誤動作します。
製品が両方のバリアントで出荷される可能性がある場合は、起動時にサイズを読み取り、それに基づいてストレージ層を構成します。片方のみで出荷される場合は、製造テストで期待サイズをアサートし、誤ったリールが組み立て前に検出されるようにします。
OTA設計の選択肢
一般的なパターンは4つあり、フラッシュコストは大きく異なります。
デュアルバンク。2つのフルイメージスロットとブートローダー。安全でシンプルですが、イメージサイズの2倍が必要です。128 KBの場合、デュアルバンクステージングで40 KBのイメージはデータ前に80 KBを消費します。
圧縮ステージング。ダウンロードされたイメージは圧縮されて保存され、起動時にその場で展開されます。スペースを節約できますが、展開ステップが追加され、展開処理が中断された場合の故障モードも増えます。
外部ステージング。イメージは外部 SPI フラッシュに保存され、MCU が内部にコピーします。部品が追加されますが、内部スペースの制約を完全に取り除けます。
ステージングなし。デバイスは通常、リカバリブートローダを使用して直接ダウンロードおよび書き込みを行います。フラッシュの使用量は最も少ないですが、現場でのリスクは最も高くなります。
どのパターンを選択する場合でも、ファームウェアを書き込む前にパーティションテーブルを固定する必要があります。後から変更すると、現場にあるすべてのデバイスが無効になります。
ファームウェア互換性チェック
4つのチェックで、移行に伴う問題のほとんどを現場に出る前に検出できる。
デバイスID。ファームウェアの起動コードはIDに基づいて分岐する場合がある。新しい値を明示的に追加すること。
フラッシュサイズレジスタ。製造テストで期待値をアサートし、誤った密度のリールがプログラミング時に拒否されるようにする。
ベクタテーブルオフセット。ブートローダがアプリケーションを再配置する場合、オフセットが新しいパーティションテーブルと一致することを確認してください。
EEPROMエミュレーションページ数。構成用に予約されるページ数は新しいレイアウトと一致する必要があります。そうでない場合、最後のページがアプリケーションと重複します。
6. 128 KBのセカンドソース
| ファミリ | フラッシュ | 注記 |
|---|---|---|
| GD32F103CBT6 | 128 KB | Pin compatible; different flash timing and higher clock capability |
64 KB の記事と同じルールが適用されます。ピン互換は機械的なものであり、ファームウェアは検証する必要があります。より大きなフラッシュでは、項目が 1 つ追加されます — フラッシュのプログラミングアルゴリズムと消去の粒度が異なる場合があり、それが生産時間と OTA 設計の両方に影響します。
リカバリ経路も確認してください。ブートローダーが USB または UART 経由の DFU をサポートしている場合は、新しい密度で破損したアプリケーションイメージからのリカバリをテストしてください。DFU 記述子には最大イメージサイズがエンコードされていることが多いためです。
デバッグアクセスは変わりませんが、オプションバイトは確認する価値があります。読み出し保護、ウォッチドッグの動作、ブートピン設定はフラッシュに保存され、ロット間でデフォルト状態が異なる場合があります。ベンチではなく治具上で確認してください。
量産プログラミングとトレーサビリティ
密度を切り替えるとプログラミングイメージが変わり、多くの場合、治具も変わります。ライン上で 3 つの項目を検証する必要があります。
イメージサイズとチェックサム。プログラマはより大きなイメージを受け入れる必要があり、ブートローダ領域に格納されたチェックサムが一致しなければなりません。
読み戻し検証。プログラミング後の完全検証により、初回起動時ではなく直ちに密度の異なるリールを検出できます。
ユニークIDのログ記録。96ビットのユニークIDはデバイスを生産記録に結び付けます。これをログに記録することで、現場からの返品を追跡可能にし、不良ロットの特定に役立ちます。
7. テスト計画
| ステップ | テスト | 合格基準 |
|---|---|---|
| 1 | Read flash size and device ID | Matches the expected density |
| 2 | Program the full image | Verifies with zero errors |
| 3 | Boot and run the acceptance test | No timing regressions |
| 4 | OTA update with power cut | Recovers via the bootloader |
| 5 | EEPROM emulation wear test | No page exhaustion after 100k writes |
128 KBでもまだ足りない場合
想定されるイメージサイズが約100 KBを超える場合、次のステップは別のF103バリアントではなく、別のファミリです。F103の72 MHzのCortex-M3と20 KBのRAMは、フラッシュよりも先に制約になります。
オプションには、同じファミリの256 KBクラス、より多くのRAMと浮動小数点ユニットを備えたCortex-M4品、または実行インプレース(execute-in-place)対応の外付けQSPIフラッシュがある。いずれも独自の認証とファームウェアコストを伴うプラットフォーム上の決定である。
実用的なルールは、現在のイメージサイズではなく、今後2年間の機能をカバーする容量を選ぶことだ。同じボードを2回再認定するほうが、最初から少し大きめの部品を購入するより高くつく。
5年間の製品ストーリー
2021年にC8T6上で40 KBのイメージを搭載して設計されたコントローラを考えてみよう。2023年までにWebインターフェースを追加した後、イメージは58 KBに達した。2024年までにTLSによって64 KBを超え、チームは収めるためにフォントを圧縮した。
2025年にはOTAステージング領域が収まらなくなった。その時点での修正は、ボードの改版、新しいパーティション構成、フィールド移行だった。数セント高くても最初からCBT6で設計していれば、すべて回避できた。
それがヘッドルームを持つことの根拠だ。追加のフラッシュがすぐに使われるということではなく、不足した場合のコストがセント単位ではなくリスピンで測られるということである。
8. コストと計画
C8T6とCBT6の価格差は小さい。判断は単価ではなく、追加の64 KBによって将来の再設計をなくせるかどうかにある。
CBT6を選ぶ根拠となる3つのシグナルは、現在のイメージが45 KBを超えている、ロードマップにネットワークスタックまたはディスプレイが含まれている、製品の寿命が複数年である、のいずれかである。64 KBにとどまる根拠となる2つのシグナルは、イメージが安定して小さく、量が十分に多くセント単位が重要になることである。
イメージがすでに100 KB近くにあるなら、256 KBクラスに進むべきだ。128 KBの部品を認定してから1年後にまた移行するのが、最も高コストな道である。
新規設計のための判断ルール
選択前に3つの数値を書き出す:現在のイメージサイズ、2年後の予想サイズ、OTAが必要かどうか。OTAの答えがはいなら、イメージサイズをもう一度加算する。見込まれる合計が90 KBを超えるなら、128 KB以上から始める。
接続機能もOTAもない固定機能製品であれば、64 KBで通常は十分であり、C8T6が引き続き安価な選択肢です。誤りは、製品が5年間固定のままだと仮定することです。
9. FAQ
CBT6はC8T6のドロップイン代替品ですか?
物理的にも機能的にもはい。ファームウェアは、より大きなフラッシュに合わせてリンカスクリプトとパーティションテーブルを更新する必要があります。
RAMは増えますか?
いいえ。両方の部品とも20 KBです。RAMが制約要因である場合、より大きなフラッシュの部品は役に立ちません。
後でC8T6に戻すことはできますか?
イメージが64 KBに収まる場合に限ります。コード変更なしでダウングレードできるようにパーティションテーブルを計画してください。
セカンドソースは同じフラッシュサイズレジスタを持っていますか?
通常は互換レジスタが存在しますが、値と粒度が異なる場合があります。正確な部品のデータシートを読んでください。
最もよくある移行バグは何ですか?
リンカスクリプトを更新してもOTAパーティションテーブルを更新しないことです。これにより、ステージング領域の外に書き込む更新が発生します。
新しい設計で CBT6 を注文すべきですか?
イメージが 32 KB 未満で安定しているなら、C8T6 で問題ありません。成長の可能性が少しでもある場合 — Web インターフェース、TLS、ログ記録、OTA など — は、128 KB から始めて、2度目の設計サイクルを避けてください。
供給に関する注意点
この密度での入手性は、より多くの設計で使用されているため、32 KB の場合よりも良好です。承認済みのセカンドソースを1つ確保し、そのフラッシュプログラミングアルゴリズムが生産治具に一致することを確認してください。イメージは同じでも、ツールが同じとは限りません。注文する前に確認してください。
10. 出典
- ST STM32F103CB 製品ページ:st.com
- GigaDevice GD32F103 ドキュメント:gigadevice.com
著者について— Chip-Seek Supply Chain Intelligence Team 発行。ハードウェアエンジニアと調達チーム向けに、部品の入手性、代替品、認定リスクを追跡しています。以下をご覧ください品質とトレーサビリティのプロセス.
フラッシュの余裕がもっと必要ですか?
現在使用中の部品とイメージサイズをお知らせください。在庫品から64 KBと128 KBのバリエーションをお見積りしますので、同じボード上で比較できます。