MCU プログラミングおよびデバッグ インターフェイス
MT3620 は、デバイスのプロビジョニングと回復中に使用するために、2 つの専用の UART と 2 つの制御信号 (リセットと回復) を公開します。 さらに、SWD インターフェイスは RTApps のデバッグに使用でき、さらに UART は Microsoft 診断用に予約されています。
Azure Sphere PC ソフトウェア ツールでは、これらのインターフェイスを 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 つの UART と、チップのプログラミング、Microsoft 診断、プロビジョニングに使用される SWD インターフェイスを公開しています。 4 つのインターフェイスには、次の機能があります。
デバッグ UART - デバッグ UART を使用すると、Microsoft は診断を実行できます。 この UART は、アプリケーションのデバッグや診断には使用できません。
Microsoft の指示の下で、このインターフェイスは、特定の問題をデバッグするときに役立つ追加の診断情報をキャプチャする手段を提供します。 そのため、ソフトウェアまたはハードウェアの開発に使用されるデバイスにはこのインターフェイスを含めるのが推奨されますが、製造段階に達したデバイスではオプションと見なすことができます。
SWD インターフェイス: SWD インターフェイスは、M4F コアで実行されるリアルタイム対応アプリケーション (RTApps) をデバッグするときに使用されます。このインターフェイスは、2 つの M4F コア間で共有されます。
RTApps をデバッグする機能 (デバイスの開発中など) が必要な場合は、デバイスでこのインターフェイスをサポートする必要があります。 デバイスが製造段階に達すると、このインターフェイスは省略可能と見なされ、省略できます。
サービス UART - サービス UART は、MT3620 とホスト コンピューター間のメイン プログラミングとデバッグ インターフェイスを提供します。
このインターフェイスを使用すると、(次の段落で説明するように) 復旧を除き、接続されたデバイスを必要とするすべての Azure CLI 操作が有効になります。 Service UART は MT3620 とホスト コンピューターの間のメイン インターフェイスであるため、このインターフェイスは、ソフトウェア開発をサポートするデバイスや小売デバイスの製造時に使用できる必要があります。 このインターフェイスがフィールド内のデバイスで使用できる場合は、サービス エンジニアが使用することもできます。たとえば、デバイスがインターネットに接続されていないためにクラウド更新プログラムを受信しない場合は、アプリ ソフトウェアの新しいバージョンを読み込むことができます。
回復 UART:回復ポートは、デバイスを最新バージョンのオペレーティング システムに復旧する手段を提供します。
デバイスを最新バージョンのオペレーティング システムに復旧することは、デバイスの製造中に一般的なタスクであるため、このインターフェイスは製造中にサポートする必要があります。 ただし、デバイスが顧客に販売され(インターネットに接続された)、クラウド更新プログラムにより、デバイスが最新バージョンのオペレーティング システムで最新の状態に保たれます。
コンポーネントの概要
次の図は、4 ポート FTDI インターフェイスのメインコンポーネントと MT3620 との相互接続の概要を示しています。
FTDI チップと回路を MT3620 と同じボードの一部として使用するか (たとえば、開発ボードを構築している場合)、または MT3620 デバイスと PC の間にある別のインターフェイス ボードで使用することもできます。
ポートの割り当て
PC ツールとの互換性を確保するには、次の表に示すように、公開されている各 UART と、設計で使用される 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 方向 | |||
BDBUS5 (32) | SWD の有効化 | |||
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 FT_PROG プログラミング ツールで後述するように FTDI によって提供されるソフトウェア ツールを使用して、USB 経由の EEPROM にプログラムされます。
次の EEPROM 部品は FTDI チップと互換性があります。
- 93LC46BT-I/OT
- 93LC56BT-I/OT
- 93LC66BT-I/OT
3.3V電源と互換性のあるLCバリアントの使用に注意してください。 内部開発のために、Microsoft は常に 93LC56BT-I/OT パーツを使用してきました。
次のように、EEPROM を FTDI チップに接続します。
EEPROM 回路 | FTDI チップへの接続 |
---|---|
UART インターフェイス
MT3620 と FTDI の間の復旧、サービス、デバッグ UART 接続には、特別な回線は必要ありません。 ただし、TXD と RXD、CTS と RTS のクロスオーバーに注意してください。 FTDI ドキュメントでは、各ポートのピン 0 を TXD として、ピン 1 を RXD として説明しています。 これらの定義は FTDI チップに対して相対的です。つまり、ピン 0 は出力であり、ピン 1 は入力です。 そのため、RXD 接続と TXD 接続を MT3620 (CTS と RTS の場合も同様) にクロスオーバーする必要があります。 次の図は、Service UART のこれを示しています。回復およびデバッグの UDRT にも同じスキームを使用します。
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が駆動されます。
モノ安定回路のオンタイムは 100 ミリ秒に設定されているため、USB トラフィックの短いバーストでも LED が点灯します。
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 をプログラムするには:
FTDI ツールを既定の場所にインストールします。
C:\Program Files(x86)\FTDI\FT_Prog
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
次のコマンドを入力して、接続されているすべてのデバイスをプログラムします。 と パラメーターの後に、接続されているデバイスのインデックス (0、1、2 など) を
prog
cycl
指定します。"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 の現在の内容を読み取って表示します。
次の例のように、[不明なデバイス] ダイアログ ボックスが表示された場合は、アプリケーション ウィンドウに情報が正しく表示されるまで [OK] をクリックします 。
次の例は、正しい表示を示しています。
ソフトウェアの使用の詳細については、FT_PROGドキュメントを参照してください。