STM32H7をUSB CDC ACM DeviceとしてPCへ接続し、UART、センサ、内部イベントをロギングする。ログ生成とUSB転送を分離し、USB未接続時にもアプリ本体が停止しない設計にする。
基本情報
| 項目 | 内容 |
|---|---|
| 対象 | STM32H7シリーズ |
| テーマ | USB CDC Serial / serial logger |
| 状態 | 現役製品として扱う |
| 公式開発環境 | STM32CubeIDE / STM32CubeMX / STM32CubeH7 |
| 書き込み・デバッグ | ST-LINK / SWD。ボード固有のオンボードST-LINK有無を確認 |
| 確認日 | 2026-07-23 |
STM32H7は単一仕様ではなく、品種によってCPU構成、USB FS/HS、外部ULPI PHY、Ethernet MAC、DCMI、JPEG、外部メモリ、内蔵フラッシュ容量が異なる。この記事では、Nucleo H743ZI2やSTM32H750系ボードを例に挙げる場合でも、必ず対象MCUのデータシート、リファレンスマニュアル、ボード回路図を確認する。
このテーマで最初に判断する3点
1. ログ生成とUSB送信を別タスク・別バッファにする
CDC送信完了を待つ処理が計測や制御を止めないようにする。
2. CDCのボーレートとUSB実効速度を混同しない
Line Codingの値はUSB物理速度そのものではない。UARTブリッジ用途で反映するかを仕様化する。
3. キャッシュとDMAバッファの整合性を管理する
USB、UART、SDRAMを組み合わせる場合、バッファ領域とキャッシュ操作を明確にする。
必要なもの
| 部品・道具 | 区分 | 確認点 |
|---|---|---|
| STM32H7開発ボード | 必須 | USB Device端子 |
| USBデータケーブル | 必須 | データ通信対応 |
| 端末ソフト | 必須 | PC受信確認 |
| USB-UARTドングル | 推奨 | 外部UART比較 |
| ロジックアナライザ | 推奨 | UART波形 |
MCU本体と開発ボードを分けて確認する
| 項目 | MCU本体で確認すること | 開発ボードで確認すること |
|---|---|---|
| USB | FS/HSコア、内蔵PHY、外部ULPI要否 | コネクタ、VBUS、電源スイッチ、ESD |
| Ethernet | MAC有無、DMA、MDIO/MDC | PHY、RJ45、クロック、終端 |
| メモリ | 内蔵Flash/RAM、キャッシュ、MPU | 外部SDRAM、QSPI/OSPI、SDカード |
| カメラ | DCMI/JPEG有無 | カメラコネクタ、電源、クロック |
| 電源 | VOS、LDO/SMPS、低電力モード | ST-LINK、LED、レギュレータ、ジャンパ |
| クロック | HSE/HSI/CSI/HSI48、PLL、kernel clock | 水晶、ST-LINK MCO、配線 |
| デバッグ | SWD/JTAG、トレース | オンボードST-LINK、端子、切離し方法 |
最小動作確認
- 公式CDC StandaloneまたはUSBX CDC ACM例を無改造で動かす。
- 固定文字列を周期送信し、PCで受信数を確認する。
- リングバッファを追加し、ログ生成側は非ブロッキングにする。
- USB未接続、接続、切断、再接続を試す。
- バイナリ、長文、連続転送、複数ログ源を追加する。
- 欠落数、最大バッファ使用量、最大停止時間を記録する。
失敗時の安全な切り分け
| 症状 | 優先して確認すること |
|---|---|
| COMポートが出ない | USB Device設定、48MHzクロック、端子 |
| 送信がBUSYのまま | 送信完了コールバック、再送制御 |
| 大量ログで欠落 | リングバッファ、優先度、PC読み出し |
| UART追加後に文字化け | UART kernel clock、ボーレート計算 |
最小構成へ戻す際は、CubeMX生成直後の公式設定、既知良好ケーブル、オンボードST-LINK、単純なクロック構成を使う。USB、Ethernet、外部メモリ、DCMIを同時に有効化せず、一機能ずつ確認する。
ログ形式
| 項目 | 推奨内容 |
|---|---|
| 時刻 | 単調増加タイマまたはRTC |
| 起動ID | 再起動を区別 |
| レベル | DEBUG、INFO、WARN、ERROR |
| モジュール | USB、UART、ETH、AI等 |
| 連番 | 欠落検出 |
| ファーム版 | ビルドID |
| エラー統計 | 破棄数、再接続数 |
製品では、ログ量を動的に制限し、秘密情報や認証情報を出力しない。
共通チェックリスト
- [ ] 正確なSTM32H7型番とシリコンリビジョンを記録した
- [ ] ボード型番とリビジョンを記録した
- [ ] STM32CubeIDE、CubeMX、CubeH7の版を固定した
- [ ] データシート、リファレンスマニュアル、Errataを確認した
- [ ] クロックツリーとVOS設定を保存した
- [ ] キャッシュ、MPU、DMAバッファ配置を記録した
- [ ] 公式サンプルを無改造で確認した
- [ ] 別ボードまたは別PCで再現した
- [ ] 電源断、抜き差し、再起動を試した
- [ ] 未確認の品種差をシリーズ共通仕様として断定していない
次の行動
最小構成が安定したら、長時間試験、異常系、別OS、別個体、温度、電圧、通信負荷へ広げる。企業PoCでは、CubeMX設定、iocファイル、ソース、ELF、map、bin/hex、ビルドログ、試験ログ、ボード回路図を同じ版として保存する。
関連ページ
公式資料
- STM32H7シリーズ製品ページ(確認日: 2026-07-23)
- STM32H7シリーズ製品一覧(確認日: 2026-07-23)
- STM32H7シリーズ公式ドキュメント(確認日: 2026-07-23)
- STM32H743データシート(確認日: 2026-07-23)
- STM32CubeIDE(確認日: 2026-07-23)
- STM32CubeH7公式リポジトリ(確認日: 2026-07-23)
- STM32H7 Nucleo-144 User Manual(確認日: 2026-07-23)
- STM32 USB開発リソース(確認日: 2026-07-23)
- USBX概要(確認日: 2026-07-23)
- STM32Cube.AIモデル性能(確認日: 2026-07-23)
- STM32 AI Model Zoo(確認日: 2026-07-23)
- STM32H7 RCCトレーニング(確認日: 2026-07-23)
- AN4938 STM32H74x/H75xハードウェア開発(確認日: 2026-07-23)
- AN4936 STM32F7からSTM32H743/753への移行(確認日: 2026-07-23)
- AN5996 STM32H730/H750からSTM32H7Rx/H7Sxへの移行(確認日: 2026-07-23)
- STM32H7電力管理 AN5215(確認日: 2026-07-23)
- STM32 Matter開発ガイド(確認日: 2026-07-23)
Amazonの検索結果
購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。
「Nucleo H743ZI2」で検索した結果です。個別商品の推薦ではありません。型番・仕様・販売元を販売ページで確認してください。
Amazonで検索