MCU 编程和调试接口

MT3620 公开两个专用 UART 和两个控制信号, (重置和恢复) ,以便在设备预配和恢复期间使用。 此外,SWD 接口可用于调试 RTApps,并为 Microsoft 诊断保留另一个 UART。

Azure Sphere 电脑软件工具需要使用 USB 到 UART 接口芯片,该芯片以允许工具识别并与之交互的方式向电脑公开这些接口。 Azure Sphere 工具支持使用服务 UART 通过 USB 加载应用程序,以及使用恢复 UART 恢复 Azure Sphere OS。 电脑工具需要使用未来技术设备国际 (FTDI) FT4232HQ UART 到 USB 接口芯片来公开接口。 目前,这些工具不支持其他 FTDI 芯片或来自不同制造商的接口芯片。

对于开发板,此接口芯片通常与 MT3620 位于同一个印刷电路板上。 MT3620 参考开发板 (RDB) 设计中介绍了此方法。 对于使用 MT3620 的自定义板或模块,将接口芯片放在单独的印刷电路板上可能是合适的,因为仅在制造或维修期间才需要此硬件,从而节省单位成本。 此方法记录在 独立编程和调试接口板设计中。

端口概述

MT3620 公开三个 UART 和一个 SWD 接口,用于编程、Microsoft 诊断和预配芯片。 这四个接口具有以下函数:

  • 调试 UART - 调试 UART 使 Microsoft 能够执行诊断。 请注意,此 UART 不适用于应用程序调试或诊断。

    在 Microsoft 的指导下,此接口提供了一种捕获其他诊断信息的方法,这些信息在调试某些问题时非常有用。 因此,建议为用于软件或硬件开发的设备包含此接口,但对于已达到制造阶段的设备,可以将其视为可选接口。

  • SWD 接口 — 在调试在 M4F 核心上运行 (RTApps) 支持实时的应用程序时,将使用 SWD 接口;此接口在两个 M4F 核心之间共享。

    如果需要能够调试 RTApps (,例如在设备开发) 期间,你的设备应支持此接口。 设备进入制造阶段后,可将此接口视为可选接口,可以省略。

  • 服务 UART - 服务 UART 提供 MT3620 与主计算机之间的main编程和调试接口。

    此接口支持需要附加设备的所有 Azure CLI 操作,但恢复 (除外,如下一段) 中所述。 由于服务 UART 是 MT3620 与主计算机之间的main接口,因此此接口必须可用于支持软件开发的设备,以及在制造零售设备期间。 如果此接口可用于设备现场,则服务工程师也可以使用它来加载新版本的应用软件,如果设备未收到云更新,因为它未连接到 Internet。

  • 恢复 UART - 恢复端口提供了一种将设备恢复到最新版本的操作系统的方法。

    在制造过程中必须支持此接口,因为将设备恢复到最新版本的操作系统是设备制造过程中的常见任务。 但是,在将设备出售给客户 (并将其连接到 Internet) 之后,云更新将确保设备与最新版本的操作系统保持同步。

组件概述

下图概述了 4 端口 FTDI 接口的main组件及其与 MT3620 的互连:

MT3620 的 4 端口 FTDI 接口示意图

例如,如果要在 MT3620 设备和电脑之间构建开发板) 或位于 MT3620 设备和电脑之间的单独接口板中,可以选择将 FTDI 芯片和电路用作 MT3620 (的同一板的一部分。

端口分配

为了确保与电脑工具的兼容性,请务必确保设计中使用的每个公开 UART 和 SWD 接口都连接到 FTDI 端口,如下表所述。

功能 FT4232HQ 引脚函数 (引脚编号) MT3620 引脚功能 (引脚编号)
恢复 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) WAKEUP)
服务 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
BDBUS4 (30) SWDIO 方向
BDBUS5 (32) SWD 启用
BDBUS6 (33) SYSRST_N (125) ((可选)通过以下线路 (70) WAKEUP)

调试 UART

端口 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 芯片所需的main组件。 MT3620 参考板设计提供了包含此原理图的参考设计。

示意图 1:

支持 FTDI 芯片的示意图

说明 - 示意图 1:

  • 包括与重置线路串联的 1K 电阻器,以避免在用户按下重置按钮 ((如果包含在设计) ,同时在恢复期间以编程方式控制重置线路)时发生短路。
  • 在布局印刷电路板时,请确保USB_P和USB_N的差动对相互并行路由,以提供 90 欧特的特征差阻。
  • 与 (可选的) SWD 线路串联的 33Ω 电阻器旨在减少瞬变,应放置在靠近 FT4232HQ 的位置。

示意图 2:

具有唤醒/重置电路以支持 FTDI 芯片的示意图

说明 - 示意图 2:

  • SYSRST_N (R8) 使用 10 万个电阻器拉高。 这意味着默认情况下不会断言芯片重置。

以下两个元素是可选的。 如果存在,则允许物理 RESET 按钮和电脑的 FTDI 接口在切换 RESET 时自动唤醒 MT3620。 对于使用“关机”模式的任何设计,建议这样做,其中重置按钮或电脑界面必须在“关机”模式下继续运行。

  • 一对肖特基二极管在SYSRST_N和 WAKEUP 之间串联,二极管的常见阴极连接连接到重置按钮和 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

请注意使用与 3.3V 电源兼容的 LC 变体。 出于内部开发目的,Microsoft 始终使用 93LC56BT-I/OT 部件。

将 EEPROM 连接到 FTDI 芯片,如下所示:

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) 。 下图演示了服务 UART 的这一点:对恢复和调试 UART 也使用相同的方案:

恢复和服务 UART 连接

SWD 接口

尽管 FTDI 芯片通常用于在 UART 和 USB 之间提供网桥,但 Azure Sphere 编程和调试接口使用基于四三国缓冲区的其他电路,允许 FTDI 部件作为高速 SWD 接口运行。

下面演示了所需的线路和 FTDI 芯片的连接。 请注意,SWDIO 信号连接到 MT3620 引脚 98,SWCLK 连接到引脚 99。

三态缓冲区排列 FTDI 端口 B 连接
三态缓冲区排列 ftdi 端口 B 连接

USB 活动 LED (可选)

USB 活动 LED 可用于指示正常操作期间通过 USB 连接的数据传输。 可以通过多种方式实现 USB 活动 LED。 以下线路只是一个示例。

线路 AND 将时钟和数据线组合在一起,这些线路将 FT4232HQ 连接到 EEPROM。 虽然不明显,但当通过 USB 发送和接收数据时,这两条线会切换,因此可用于指示 USB 活动。 但是,AND 门的输出的导通时间太短,无法照亮 LED:因此,此信号用于驱动单稳定电路,从而驱动 LED。

单稳定线路的导通时间设置为 100 毫秒,因此即使 USB 流量短时间突发也会导致 LED 亮起。

USB 活动 LED

FTDI FT_PROG编程工具

为了帮助对 EEPROM 进行编程,FTDI 提供了一个名为 FT_PROG 的免费软件工具。 该工具可用作 Windows GUI 应用程序和命令行工具;这两个选项在同一包中同时安装。 从 FTDI 网站 下载该工具,并将其安装在默认位置。

FT_PROG命令行工具

FT_PROG 的命令行版本是 EEPROM 编程的首选方法,因为它将配置文件的名称作为参数,然后使用单个命令对多个设备进行编程。

GitHub 上的 Azure Sphere 硬件设计存储库 包含用于命令行工具的 EEPROM 配置文件 。 强烈建议在制造方案中使用此文件和命令行工具。 配置文件使用以下设置对 EEPROM 进行程序:

  • 启用 D2XX 直接模式并禁用虚拟 COM 端口
  • 自动生成以“AS”开头的序列号
  • 将产品说明设置为“MSFT MT3620 Std 接口”

若要对 EEPROM 进行编程,必须按原样使用此文件而不进行任何修改,因为 Azure Sphere 电脑工具会查找产品说明字符串,如果此值发生更改,则会失败。

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. 键入以下命令以对所有附加设备进行编程。 在 和 cycl 参数后面 prog) 指定附加设备的索引 (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....
    
  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文档。