MCU プログラミングおよびデバッグ インターフェイス
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
MT3620 では、デバイスのプロビジョニングと回復で使用するために、2 つの専用 UART と 2 つの制御信号 (リセットと回復) が公開されています。 さらに、SWD インターフェイスは RTApps のデバッグに使用でき、さらに UART は Microsoft 診断用に予約されています。
Azure Sphere PC ソフトウェア ツールを利用するには、ツールがインターフェイスを認識して対話できるような方法でこれらのインターフェイスを公開する、USB-to-UART インターフェイス チップを使用する必要があります。 Azure Sphere ツールには、Service UART を使用した USB 経由でのアプリケーションの読み込みと、Recovery UART を使用した Azure Sphere OS の復旧のサポートが含まれています。 PC ツールでは、Future Technology Devices International (FTDI) FT4232HQ UART-to-USB インターフェイス チップを使用してインターフェイスを公開する必要があります。 現在、ツールでは、他の FTDI チップまたは異なる製造元のインターフェイス チップはサポートされていません。
開発ボードの場合、このインターフェイス チップは通常、MT3620 と同じ PCB 上にあります。 この方法については、 MT3620 リファレンス開発ボード (RDB) 設計に記載されています。 MT3620を使用するカスタムボードまたはモジュールの場合、このハードウェアは製造またはサービス中にのみ必要であり、ユニット単位のコスト削減が可能であるため、別のPCB上にインターフェースチップを配置することが適切な場合があります。 このアプローチについては、 スタンドアロンのプログラミングおよびデバッグ インターフェイス ボードの設計に記載されています。
ポートの概要
MT3620 は、3 つの UD と、チップのプログラミング、Microsoft 診断、プロビジョニングに使用される SWD インターフェイスを公開します。 4 つのインターフェイスには、次の関数があります。
デバッグ UART - デバッグ UART を使用すると、Microsoft が診断を実行できます。 この UART は、アプリケーションのデバッグや診断には使用できません。
Microsoft の指示に基づき、このインターフェイスは、特定の問題をデバッグするときに役立つ可能性のある追加の診断情報をキャプチャする手段を提供します。 したがって、ソフトウェアまたはハードウェアの開発に使用されるデバイスにはこのインターフェイスを含めるのが推奨されますが、製造段階に達したデバイスでは省略可能と見なすことができます。
SWD インターフェイス:SWD インターフェイスは、M4F コアで実行されるリアルタイム対応アプリケーション (RTApps) をデバッグするときに使用されます。このインターフェイスは、2 つの M4F コア間で共有されます。
RTApps をデバッグする機能 (デバイスの開発中など) が必要な場合は、デバイスがこのインターフェイスをサポートしている必要があります。 デバイスが製造段階に達すると、このインターフェイスは省略可能と見なされ、省略できます。
サービス UART- サービス UART は、MT3620 とホスト コンピューター間のメイン プログラミングおよびデバッグ インターフェイスを提供します。
このインターフェイスを使用すると、(次の段落で説明するように) 復旧を除き、接続されたデバイスを必要とするすべての Azure Sphere CLI 操作が有効になります。 サービス UART は MT3620 とホスト コンピューター間のメイン インターフェイスであるため、このインターフェイスは、ソフトウェア開発をサポートするデバイス、およびリテール デバイスの製造時に使用できる必要があります。 このインターフェイスを現場のデバイスで使用できる場合は、サービス エンジニアが使用することもできます。たとえば、デバイスがインターネットに接続されていないためにクラウド更新プログラムを受信しない場合は、アプリ ソフトウェアの新しいバージョンを読み込みます。
回復 UART—回復ポートはオペレーティング システムの最新バージョンにデバイスを回復する手段を提供します。
デバイスを最新バージョンのオペレーティング システムに回復することは、デバイスの製造時に一般的なタスクであるため、このインターフェイスは製造時にサポートされる必要があります。 ただし、デバイスが顧客に販売された後 (およびデバイスがインターネットに接続された場合)、クラウド更新プログラムにより、デバイスが最新バージョンのオペレーティング システムで最新の状態に保たれます。
コンポーネントの概要
次の図では、4 ポート FTDI インターフェイスの主要なコンポーネント、およびそれらと MT3620 の相互接続の概要を示します。
FTDI チップと回路は、MT3620 と同じボードの一部として (たとえば、開発ボードを作成している場合)、または MT3620 デバイスと PC の間に配置された別のインターフェイス ボードで、使用することができます。
ポートの割り当て
PC ツールとの互換性を確保するには、次の表に示すように、公開されている各 UD および設計で使用される SWD インターフェイスが FTDI ポートに接続されていることを確認することが重要です。
関数 | FT4232HQ のピンの機能 (ピン番号) | MT3620 のピンの機能 (ピン番号) | ||
---|---|---|---|---|
回復 UART、リセットおよび回復ストラッピング ピン | Port-D | DDBUS0 (48) | RECOVERY_RXD (134) | |
DDBUS1 (52) | RECOVERY_TXD (135) | |||
DDBUS2 (53) | RECOVERY_CTS (137) | |||
DDBUS3 (54) | RECOVERY_RTS (136) | |||
DDBUS5 (57) | DEBUG_RTS (96)* | |||
DDBUS6 (58) | SYSRST_N (125) (および必要に応じて、下記の回路を介した WAKEUP (70) ) | |||
サービス UART | Port-C | CDBUS0 (38) | SERVICE_RXD (129) | |
CDBUS1 (39) | SERVICE_TXD (127) | |||
CDBUS2 (40) | SERVICE_CTS (130) | |||
CDBUS3 (41) | SERVICE_RTS (128) | |||
SWD とリセット |
Port-B | BDBUS0 (26) | SWCLK | SWD 回路の詳細は、「SWD インターフェイス」を参照 |
BDBUS1 (27) | SWDIO out | |||
BDBUS2 (28) | SWDIO in | |||
BDBUS4 (30) | SWDIO direction | |||
BDBUS5 (32) | SWD enable | |||
BDBUS6 (33) | SYSRST_N (125) (および必要に応じて、下記の回路を介した WAKEUP (70) ) | |||
デバッグ UART |
Port-A | ADBUS0 (16) | DEBUG_RXD (94) | |
ADBUS1 (17) | DEBUG_TXD (95) | |||
ADBUS2 (18) | DEBUG_CTS (97) | |||
ADBUS3 (19) | DEBUG_RTS (96)* |
*DEBUG_RTSはMT3620の「ストラップピン」の1つであり、チップリセット中に高く引っ張られた場合、チップは回復モードになります。 それ以外の場合は常に、このピンはデバッグ UART の RTS ピンです。
回路図
次の回路図は、FT4232HQ チップをサポートするために必要な主要なコンポーネントを示しています。 MT3620リファレンスボード設計はこの回路図を組み込んだリファレンスデザインを提供します。
回路図 1:
注 - 回路図 1:
- リセットラインと直列の1K抵抗は、ユーザーがリセットボタン(設計に含まれている場合)を押すと同時にリセットラインが回復中にプログラムによって制御される場合に短絡を避けるために含まれています。
- PCBをレイアウトするときは、差動ペア(USB_PとUSB_N)が互いに平行にルーティングされ、90Ωの特性差動インピーダンスが得られるようにします。
- (オプションの) SWD ラインに直列に配置された 33 Ω の抵抗は、過渡電流を減らすためのものであり、FT4232HQ の近くに配置する必要があります。
回路図 2:
注 - 回路図 2:
- SYSRST_Nは100K抵抗(R8)で高く引っ張ります。 つまり、チップ リセットは既定ではアサートされません。
次の 2 つの要素は省略可能です。 存在する場合は、RESET が切り替えられたときに、物理 RESET ボタンと PC への FTDI インターフェイスが自動的に MT3620 をウェイクアップできるようにします。 これは、電源ダウン モードでリセット ボタンまたは PC インターフェイスが動作し続ける必要がある電源ダウン モードを使用するすべての設計に推奨されます。
- ショットキー・ダイオードのペアは、SYSRST_Nと WAKEUP の間に直列に接続され、ダイオードの共通カソード接続はリセット・ボタンと FTDI リセット信号に接続されます。 これにより、WAKEUP が低に切り替えると、SYSRST_Nが低く切り替えなくなります。
- WAKEUP は、3V3_RTC電源に接続されている 100K 抵抗で高く引っ張ります。 100K抵抗により、SYSRST_Nが低く切り替えられたときに WAKEUP が低く切り替わります。3V3_RTCへの接続により、電源ダウン モードで MT3620 電源がオフになっている場合でも WAKEUP が引き続き高く引き上げられます。
FTDI EEPROM
FTDI インターフェイス チップで提供される一連のピンは、製造元の詳細とシリアル番号を格納するために使用される小さい EEPROM に接続する必要があります。 ボードアセンブリ後、この情報はFTDIが提供するソフトウェアツールを使用してUSB経由のEEPROMにプログラムされます。これについては、 FTDI FT_PROGプログラミングツールで後述します。
次の EEPROM パーツは、FTDI チップと互換性があります。
- 93LC46BT-I/OT
- 93LC56BT-I/OT
- 93LC66BT-I/OT
3.3 V の電源と互換性のある LC バリエーションを使用することに注意してください。 社内の開発では、Microsoft は常に 93LC56BT-I/OT パーツを使用しています。
次のように、FTDI チップに EEPROM を接続します。
EEPROM の回路 | FTDI チップへの接続 |
---|---|
UART インターフェイス
MT3620 と FTDI の間の回復、サービス、デバッグの UART 接続には、特別な回線は必要ありません。 ただし、TXD と RXD および CTS と RTS のクロスオーバーに注意してください。 FTDI のドキュメントでは、各ポートのピン 0 を TXD、ピン 1 を RXD として、説明されています。 これらの定義は、FTDI チップを基準としたものです。つまり、ピン 0 は出力、ピン 1 は入力です。 したがって、MT3620 への RXD と TXD の接続をクロスオーバーする必要があります(CTS と RTS についても同様)。 次の図は、サービス UART のこれを示しています。復旧およびデバッグの UDART にも同じスキームを使用します。
SWD インターフェイス
通常、FTDI チップを使用して UART と USB の間のブリッジが提供されますが、Azure Sphere プログラミングとインターフェイスのデバッグでは、FTDI 部品を高速 SWD インターフェイスとして動作させるために、クアッド トライステート バッファーに基づく追加の回路が使用されます。
次に、FTDI チップに必要な回路と接続を示します。 SWDIO 信号が MT3620 ピン 98 に接続し、SWCLK がピン 99 に接続していることに注意してください。
トライステート バッファーの配置 | FTDI ポート B の接続 |
---|---|
USB アクティビティ LED (オプション)
USB アクティビティ LED は、通常の操作中に USB 接続経由のデータ転送を示すために役立ちます。 USB アクティビティ LED はいくつかの方法で実装できます。 次に示す回路は単なる一例です。
回路は、FT4232HQ を EEPROM に接続するクロック ラインとデータ ラインを AND で結合します。 明確ではありませんが、これら 2 つのラインは、データが USB 経由で送受信されるときに切り替えられるので、USB のアクティビティを示すために使用できます。 ただし、AND ゲートからの出力のオン時間は、LED を点灯するには短すぎます。そのため、この信号は単安定回路を駆動するために使用され、それがさらに LED を駆動します。
USB トラフィックの短いバーストでも LED が点灯するように、単安定回路のオン時間は 100 ミリ秒に設定されます。
FTDI FT_PROG プログラミング ツール
EEPROM のプログラミングに役立つ FTDI には、FT_PROGと呼ばれるフリー ソフトウェア ツールが用意されています。 このツールは、Windows GUI アプリケーションとコマンド ライン ツールのどちらでも使用できます。両方のオプションが、同じパッケージから同時にインストールされます。 FTDI Web サイトからツールをダウンロードし、既定の場所にインストールします。
FT_PROG コマンドライン ツール
FT_PROGのコマンド ライン バージョンは、構成ファイルの名前をパラメーターとして受け取り、1 つのコマンドで複数のデバイスをプログラムするため、EEPROM をプログラミングする場合に推奨される方法です。
GitHub の Azure Sphere Hardware Designs リポジトリ には EEPROM 構成ファイルが含まれています コマンドライン ツールで使用できます。 製造シナリオでは、このファイルとコマンド ライン ツールを使用することを強くお勧めします。 構成ファイルは、次の設定で EEPROM をプログラムします。
- D2XX ダイレクト モードを有効にし、仮想 COM ポートを無効にします
- 'AS' で始まるシリアル番号を自動生成します。
- 製品の説明を "MSFT MT3620 Std インターフェイス" に設定します
EEPROM をプログラミングするには、Azure Sphere PC ツールで Product Description 文字列が検索され、この値が変更されると失敗するため、このファイルをそのまま変更せずに使用する必要があります。
EEPROM プログラミングの詳細な手順
FT_PROGのコマンドライン バージョンを使用して、4 ポート FTDI チップの EEPROM をプログラミングするには:
既定の場所 (
C:\Program Files(x86)\FTDI\FT_Prog
) に FTDI ツールをインストールします。1 つ以上の MT3620 ボードを PC に接続します。
コマンド プロンプト (cmd.exe など) を開き、構成ファイルを保存したフォルダーに移動します。
次のコマンドを入力して、接続されているすべてのデバイスを一覧表示します。
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
4 つのデバイスが接続されている場合、出力は次のようになります。
Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
次のコマンドを入力して、接続されているすべてのデバイスをプログラムします。
prog
およびcycl
パラメーターの後に、接続されているデバイスのインデックス (0、1、2 など) を指定します。"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan prog 0,1,2,3 MT3620_Standard_Interface.xml cycl 0,1,2,3
ツールで次のように表示されます。
Scanning for devices... Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36 Device 0 programmed successfully! Device 1 programmed successfully! Device 2 programmed successfully! Device 3 programmed successfully! Finished Re-enumerating Device 0.... Re-enumerating Device 1.... Re-enumerating Device 2.... Re-enumerating Device 3....
プログラミングが成功したことを確認するには、もう一度スキャンします。
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
シリアル番号は出力に変更があり、AS から始まる点に注意してください。
Scanning for devices... Device 0: FT4232H, MSFT MT3620 Std Interface, AS5AW7FD Device 1: FT4232H, MSFT MT3620 Std Interface, AS5AHG3C Device 2: FT4232H, MSFT MT3620 Std Interface, AS5DWM2I Device 3: FT4232H, MSFT MT3620 Std Interface, AS5JQ0LJ
FT_PROG GUI アプリケーション
Windows GUI バージョンのアプリケーションは、EEPROM 情報の状態を読み取って確認する場合に便利です。 また、それを使用して情報を変更することもできます。ただし、コマンド ライン バージョンのツールを使用してデバイスをプログラムすることをお勧めします。
アプリケーションを開始した後、スキャン ボタン (虫眼鏡アイコン) をクリックし、EEPROM の現在の内容を読み取って表示します。
次の例のように、[Unknown Device]\(不明デバイス\) ダイアログ ボックスが表示される場合は、アプリケーション ウィンドウに情報が正しく表示されるまで [OK] をクリックします。
次の例では正しい表示を示します。
ソフトウェアの使用の詳細については、FT_PROGドキュメントを参照してください。