MCU 程式設計與偵錯介面

MT3620 會公開兩個專用 UART 和兩個控制訊號, (重設和修復) 在裝置布建和復原期間使用。 此外,SWD 介面可用於偵錯 RTApps,並保留另一個 UART 供 Microsoft 診斷使用。

Azure 球體電腦軟體工具需要使用 USB 對 UART 介面晶片,以允許工具辨識這些介面並與之互動的方式,將這些介面暴露在電腦上。 Azure 球體工具組括支援使用服務 UART 透過 USB 載入應用程式,以及使用復原 UART 來復原 Azure 球體 OS。 電腦工具需要使用未來技術裝置國際 (FTDI) FT4232HQ UART-to-USB 介面晶片來顯示介面。 目前,這些工具不支援來自不同製造商的其他 FTDI 晶片或介面晶片。

對於開發面板,此介面晶片通常與 MT3620 位於同一個 PCB 上。 此方法會在 MT3620 參考開發面板 (RDB) 設計中記錄。 對於使用 MT3620 的自訂面板或模組,將介面晶片放在另一個 PCB 上可能是適當的,因為只有在製造或維護期間才需要此硬體,以便節省每一單位的成本。 此方法會在 獨立程式設計和偵錯介面面板設計中記錄。

埠概觀

MT3620 會公開三個 UART 和一個 SWD 介面,用於程式設計、Microsoft 診斷和布建晶片。 四個介面具有下列功能:

  • 偵錯 UART:偵錯 UART 可讓 Microsoft 執行診斷。 請注意,此 UART 無法用於應用程式偵錯或診斷。

    在 Microsoft 的指示下,這個介面提供一種擷取其他診斷資訊的方式,在偵錯特定問題時很有用。 因此,建議您針對用於軟體或硬體開發的裝置加入此介面,但對於已進入製造階段的裝置,此介面可視為選用。

  • SWD 介面:偵錯可在 M4F 核心上執行之 RTApps () 的即時應用程式時,會使用 SWD 介面;這個介面會在兩個 M4F 核心之間共用。

    如果您需要偵錯 RTApps (例如裝置開發) ,您的裝置應該支援此介面。 一旦您的裝置進入製造階段,這個介面可視為選用,而且可以省略。

  • 服務 UART: 服務 UART 提供 MT3620 與主機電腦之間的主要程式設計和偵錯介面。

    此介面可啟用所有需要連接裝置的 Azure CLI 作業,但復原 (除外,如下一段) 中所述。 因為服務 UART 是 MT3620 和主機電腦之間的主介面,因此這個介面必須適用于支援軟體發展的裝置,以及零售裝置製造期間。 如果此介面適用于欄位內的裝置,服務工程師也可以使用此介面,例如,如果裝置因為未連線到網際網路而無法接收雲端更新,則可載入應用程式軟體的新版本。

  • 復原 UART:修復埠提供將裝置還原為最新版本作業系統之方法。

    製造期間必須支援此介面,因為將裝置復原到最新版本的作業系統是製造裝置期間的常見工作。 不過,在裝置已銷售給客戶 (並將它連線到網際網路) 之後,雲端更新可確保裝置使用最新版本的作業系統。。

元件概觀

下圖提供 4 埠 FTDI 介面的主要元件概觀及其與 MT3620 的相互連接:

4 埠 FTDI 介面到 MT3620 的圖表

您可以選擇使用 FTDI 晶片和回路做為 MT3620 (同一面板的一部分,例如,如果您建置開發面板) 或位於 MT3620 裝置和電腦之間的個別介面面板。

埠作業

為確保與電腦工具相容,請務必確保設計中所使用的每個公開 UART 和 SWD 介面都已連線至 FTDI 埠,如下表所述。

功能 FT4232HQ Pin 函數 (pin 碼) MT3620 Pin 函數 (釘選編號)
修復 UART、重設和修復綁帶圖釘 埠-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) (,且選擇性地透過下方詳述的回路喚醒 70 (70) )
服務 UART 埠-C CDBUS0 (38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2 (40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD 和重設

埠-B BDBUS0 (26) SWCLK 如需 SWD 回路的詳細資料,請參閱SWD 介面
BDBUS1 (27) SWDIO 退出
BDBUS2 (28) SWDIO in
BDBUS4 (30) SWDIO 方向
BDBUS5 (32) SWD 啟用
BDBUS6 (33) SYSRST_N (125) (,且選擇性地透過下方詳述的回路喚醒 70 (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 的其中一個「綁帶針腳」,如果在晶片重設期間拉高,會導致晶片進入修復模式。 在其他時候,此圖釘就是偵錯 UART 的 RTS 圖釘。

圖表

下列示意顯示支援 FT4232HQ 晶片所需的主要元件。 MT3620 參考面板設計提供結合此示意的參照設計。

示意 1:

支援 FTDI 晶片的示意

附注 — 示意 1:

  • 包含重設線條的數列 1K 電阻器,可避免使用者在修復期間以程式設計方式控制重設線時同步選取設計) 中包含的重設按鈕 (短回路。
  • 布建 PCB 時,請確定差異配對USB_P和USB_N彼此平行,以提供 90Ω 特性差異障礙。
  • 具有 (選用) SWD 線的數列 33Ω 電阻器是用來減少暫時性的,應該放在接近 FT4232HQ 的位置。

示意 2:

使用喚醒/重設回路來支援 FTDI 晶片的示意

附注 - 示意 2:

  • SYSRST_N使用 100K 電阻 (R8) 。 這表示晶片重設預設不會顯示。

下列兩個元素是選用的。 如果出現,它們會允許實體重設按鈕和 FTDI 介面在已切換到重設時自動喚醒 MT3620。 建議您使用任何使用 Power Down 模式的設計,其中重設按鈕或電腦介面必須在 Power Down 模式下繼續運作。

  • 在 SYSRST_N 與 WAKEUP 之間,一對架構型平板裝置連續連線,而二極英的常見 Cathode 連線則會連線至重設按鈕和 FTDI 重設訊號。 這可防止SYSRST_N在 WAKEUP 切換為低時切換至低。
  • 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

請注意,LC 變體與 3.3V 供應器相容。 針對內部開發目的,Microsoft 一律使用 93LC56BT-I/OT 元件。

將 EEPROM 連線至 FTDI 晶片,如下所示:

EEPROM 回路 連線到 FTDI 晶片
EEProm 回路 連線至 FTDI 晶片

UART 介面

MT3620 與 FTDI 之間的修復、服務和偵錯 UART 連線不需要特殊回路。 不過,請注意 TXD 和 RXD 以及 CTS 和 RTS 的交互。 FTDI 檔將每個埠的 pin 0 描述為 TXD,並將 1 釘選為 RXD。 這些定義是相對於 FTDI 晶片;也就是說,pin 0 是輸出,而 pin 1 是輸入。 因此,必須跨 RXD 和 TXD 連線到 MT3620 (,而 CTS 和 RTS 連線) 也同樣。 下圖說明此為服務 UART;針對復原和偵錯 UART 也使用相同的配置:

修復與服務 UART 連線

SWD 介面

雖然 FTDI 晶片通常是用來在 UART 和 USB 之間架設橋接器,但 Azure 球體程式設計和偵錯介面會根據四三州緩衝區使用額外的回路,讓 FTDI 元件以高速 SWD 介面的形式運作。

下列說明 FTDI 晶片所需的回路和連線。 請注意,SWDIO 訊號會連線到 MT3620 pin 98,而 SWCLK 則會連線以釘選 99。

三態緩衝區排列 FTDI 埠-B 連線
三態緩衝區排列 ftdi 埠 B 連線

USB 活動 LED (選用)

USB 活動 LED 在一般作業期間很適合用來表示透過 USB 連線傳輸資料。 您可以透過數種方式實作 USB 活動 LED。 下列回路只是一個範例。

將 FT4232HQ 連線至 EEPROM 的時鐘和資料行,將回路 AND 結合在一起。 雖然不明顯,但當透過 USB 傳送和接收資料時,這兩條線會切換為切換,因此可用來表示 USB 活動。 不過,AND 門的輸出時間太短,無法讓 LED 亮起;因此,此訊號是用來驅動單聲道穩定的回路,進而驅動 LED。

單聲道穩定的回路會設定為 100ms,因此即使短時間的 USB 流量也會造成 LED 亮起。

USB 活動 LED

FTDI FT_PROG程式設計工具

為了協助開發 EEPROM,FTDI 提供稱為 FT_PROG 的免費軟體工具。 此工具同時提供 Windows GUI 應用程式和命令列工具;這兩個選項都會同時從相同的套件安裝。 從 FTDI 網站 下載工具,並將其安裝在預設位置。

FT_PROG命令列工具

命令列版本的 FT_PROG 是慣用的 EEPROM 程式設計方法,因為它會以組態檔的名稱做為參數,然後使用單一命令來程式化多個裝置。

GitHub 上的 Azure 球體硬體設計 Repo 包含可搭配命令列工具使用的 EEPROM 組態檔 。 我們強烈建議您在製造案例中使用此檔案和命令列工具。 組態檔會以下列設定來程式化 EEPROM:

  • 啟用 D2XX Direct 模式並停用虛擬 COM 埠
  • 從 [AS] 開始自動產生序號
  • 將產品描述設定為「MSFT MT3620 Std 介面」

若要程式化 EEPROM,您必須以不修改的方式使用此檔案,因為 Azure 球體電腦工具會尋找 [產品描述] 字串,如果此值變更,將會失敗。

EEPROM 程式設計逐步指示

若要使用 FT_PROG 的命令列版本來為四端 FTDI 晶片的 EEPROM 進行程式程式:

  1. 在預設位置安裝 FTDI 工具: C:\Program Files(x86)\FTDI\FT_Prog

  2. 將一或多個 MT3620 面板連線到電腦。

  3. 開啟命令提示字元 (例如,cmd.exe) 並變更為您儲存組態檔的資料夾。

  4. 輸入下列命令以列出所有連接的裝置:

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan

    如果連結了四個裝置,輸出看起來會類似這樣:

    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
    
  5. 輸入下列命令以將所有連接的裝置設為程式。 指定附加裝置的索引, (0、1、2 等) 後 progcycl 及參數:

    "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....
    
  6. 若要確認程式設計成功,請再次掃描:

    "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 目前的內容。

如果出現 [未知的裝置] 對話方塊,如下列範例所示,請按一下 [ 確定 ],直到應用程式視窗正確顯示資訊為止。

FT_PROG不明裝置畫面

下列範例顯示正確的顯示器:

FT_PROG正確顯示器

如需使用軟體的詳細資訊,請參閱FT_PROG檔。