硬件设计验证

本主题介绍验证基于 Azure Sphere 的设备(如开发板或模块)的硬件功能的方法。 使用此信息作为设计一系列有助于验证设计的高级手动测试的指南。

这些测试指南源于 Microsoft 验证 MT3620 参考板设计功能的内部过程。 可以将技术用于基于 MT3620 芯片的其他产品,尽管某些测试可能需要修改和自定义来验证特定硬件的功能。

有关工厂车间测试的信息,请参阅 制造连接设备

执行本文档中所述的测试时,请注意以下一般要求和建议:

  • 测设备 (DUT) 应通过 USB 连接到安装了最新 Azure Sphere SDK 的主机电脑。 此外,假定主机电脑已安装最新版本的 Visual Studio 或 Visual Studio Code。
  • 某些测试需要 Azure CLI,该 CLI 作为 Azure Sphere SDK 的一部分进行安装。
  • 许多测试使用 GitHub 上发布的现有 MT3620 示例应用程序 。 这些示例可用作创建更深入的测试应用程序的起点,根据你的特定要求进行自定义。
  • 建议测试开发板或模块公开的每个接口。 本文档假定所有 MT3620 接口信号都公开,因此你需要调整一些测试,以匹配 DUT 公开的接口的数量和类型。

支持接口

MT3620 提供三个 UART 支持接口,但其中只有两个接口可供一般使用。 此外,它还提供 SWD 接口。 为了提供与 Azure Sphere 开发工具的兼容性,这些接口必须通过 4 端口 UART 到 USB 接口芯片连接到主机电脑。 有关此类接口设计的详细信息,请参阅 MCU 编程和调试接口 -当前 MT3620 参考板设计使用 FTDI FT4232HQ UART 到 USB 接口芯片。

测试支持接口:

  1. 将 DUT 附加到主机电脑。
  2. 打开主机电脑上的设备管理器,检查通用串行总线控制器下列出了三个 USB 串行转换器。 它们应标记为 A、C 和 D。

此测试确认主机电脑已正确识别 UART 到 USB 接口。 服务 UART恢复 UARTSWD 接口 提供了其他详细信息,可帮助你验证 UART 到 USB 接口以及 DUT 公开的支持接口的正确操作。

服务 UART

服务 UART 在 MT3620 与主机电脑上运行的开发环境之间提供main接口。

测试服务 UART:

  1. 将 DUT 附加到主机电脑。

  2. 运行以下命令以获取有关设备的信息:

    az sphere device show-attached
    

此命令应返回有关附加设备的基本信息。

恢复 UART

恢复 UART 提供了一种将 MT3620 重新刷写或 恢复到最新版本的 Azure Sphere 操作系统的方法。

测试恢复 UART:

  1. 将 DUT 附加到主机电脑。

  2. 尝试使用以下命令恢复开发板:

    az sphere device recover
    

SWD 接口

SWD 接口用于对实时 M4F 核心进行编程。 UART 到 USB 接口充当 SWD 探测,从而避免使用单独的硬件 SWD 程序员的需要。 Azure Sphere SDK 使用 OpenOCD 软件通过 SWD 提供片上调试。

测试 SWD 接口:

  1. 将 DUT 附加到主机电脑。
  2. 在 Visual Studio 中打开 HelloWorld_RTApp_MT3620_BareMetal 示例应用程序,并尝试部署和调试应用程序。

电源

MT360 应使用 3.3V 电源供电。

此外,MT3620 的内部实时时钟 (RTC) 可以从main 3.3V 电源或从单独的电源(例如,从电池 (纽扣电池) )供电。 如果 RTC 未通电,芯片将无法正确启动。

主 3.3V 电源

检查main电源的电压是否为预期的 3.3V。 此外,检查电源线路上的过度纹波和噪声。 有关 MT3620 电气特性和其他相关信息,请参阅 MediaTek 的 MT3620 数据表

RTC 电源

  1. 使用 3.3V 电源供电的 DUT 时,将单独的 3.3V 电源 (或电池) 连接到 RTC 供电线路。
  2. 使用 Powerdown 示例应用程序 将 DUT 置于低功耗模式。 main电源电流消耗应下降,表示芯片已进入低功耗模式。

有关 MT3620 的关机模式和相关控制信号的信息,请参阅 MT3620 参考开发板 (RDB) 用户指南MT3620 硬件说明

Wi-Fi

Wi-Fi 参数(例如设备可以连接到的网络的 SSID)是使用 Azure CLI 中的 az sphere device wifi 命令设置的。

测试与接入点的连接

测试与接入点 Wi-Fi 连接:

  1. 尝试 (AP) 连接到已知的 Wi-Fi 接入点:

    az sphere device wifi add --ssid <wifi-ssid> --psk <wifi-password>
    
  2. 等待 5-10 秒,然后输入以下命令以检查 Wi-Fi 连接:

    az sphere device wifi show-status
    

你应该会看到设备已连接到指定的 Wi-Fi 网络,配置已启用,并且状态已连接。 如需更多信息 ,请参阅 az sphere device wifi

测试 Wi-Fi 数据传输

若要测试 Wi-Fi 数据传输,请使用 HTTPS_Curl_Easy 示例应用程序连接到终结点并下载网页。

此外,可以使用 iPerf3 测试网络带宽。 可以在 GitHub 上找到作为 Azure Sphere 应用实现 的示例 iPerf3 客户端

测试低级别 RF 功能

有关测试低级别射频 (RF) 操作的信息,请参阅 RF 测试工具

外设

以下部分介绍了在设备上测试各种外围设备的方法。

GPIO

MT3620 提供许多 GPIO,这些 GPIO 与其他接口多路复用。 可以将 GPIO 配置为输入或输出。

高级 GPIO 示例应用程序提供了一种简单的方法来测试 GPIO 输入和输出功能。

若要为多个 GPIO 创建自动测试,可以使用环回方法。 此方法特别适用于 GPIO,因为它使用 DUT 来测试自身,并且需要最少的额外测试设备。

例如,将 GPIO0 连接到 GPIO1,并编写将其中一个 GPIO 配置为输入,将另一个配置为输出的代码。 然后,应用程序在监视输入 GPIO 的状态时切换输出 GPIO 的状态。

然后,使用相同的环回设置,将输出 GPIO 重新配置为输入,将输入 GPIO 重新配置为输出,然后重新运行测试。 通过这种方式,在输入和输出模式下测试这两个 GPIO。 扩展此方法以测试所有公开的 GPIO。

Uart

MT3620 最多提供五个 UART 接口,这些接口与其他接口多路复用。

若要测试基本的 UART 功能,请使用 高级 UART 示例应用程序。 该示例连接同一 UART 的 RXD 和 TXD 引脚,从而创建环回。 在这种情况下,RXD 引脚将读回写入 TXD 引脚的任何数据。 请注意,示例应用程序不使用流控制。

I2c

MT3620 提供最多五个 I2C 接口,这些接口与其他接口多路复用

若要测试 I2C,请使用 高级 I2C 加速计 示例应用程序。

将 LSM6DS3 加速计芯片连接到 DUT 的 I2C 接口之一。 运行示例时,它首先查询加速计WHO_AM_I寄存器,然后重复读取 x 轴加速度。 根据加速计的方向,x 轴读数应在 +1g 和 -1g 之间变化。 对每个 I2C 接口重复此测试。

Spi

MT3620 最多提供五个 SPI 接口,这些接口与其他接口多路复用。

若要测试 SPI,请使用 高级 SPI 加速计 示例应用程序。

将 LSM6DS3 加速计芯片连接到 DUT 的 SPI 接口之一。 运行示例时,它首先查询加速计WHO_AM_I寄存器,然后重复读取 x 轴加速度。 根据加速计的方向,x 轴读数应在 +1g 和 -1g 之间变化。

Adc

MT3620 最多提供 8 个模拟 ADC 输入。

若要测试 ADC,请使用 高级 ADC 示例应用程序读取由一个 DUT 的 ADC 通道测量的模拟电压,同时向 ADC 输入应用已知电压。

可以围绕 I2C 数模转换器 (DAC) 创建更高级的测试,例如ADI公司LTC2635,如下所示:

  1. 将 DAC 上的 I2C 接口连接到 DUT 的 I2C 接口之一。
  2. 将 DAC 中的模拟输出连接到 DUT 上的某个 ADC 输入。
  3. 编写测试代码以控制每个 DAC 通道的模拟输出电压水平,并读取相应的 ADC 输入水平。
  4. 检查 ADC 读取的电压是否与 DAC 输出的电压相对应。

Pwm

MT3620 最多提供 8 个支持 PWM 的输出。

若要测试 PWM,请使用 高级 PWM 示例应用程序输出 PWM 信号。 监视示波器上的 PWM 输出,验证占空比和频率是否与预期一样。

或者,将其中一个 PWM 输出连接到配置为输入的其他 GPIO。 编写在实时 M4 内核之一上运行的测试代码,读取输入引脚的状态,并多次进行高低转换。 根据生成的数据计算占空比和频率,并与 PWM 参数进行比较。 此测试必须在 M4 内核上完成,因为 M4 内核的实时操作可以记录引脚状态更改的计时,准确度高于 A7。

I2S

MT3620 提供两个单独的 I2S 数字音频接口。

目前,I2S 仅在实时核心上受支持。 可以使用 来自 MediaTekCodeThink 的示例应用程序和驱动程序进行测试。