1120070_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1120070_zh-CN

1120070_zh-CN

使用 MBDT、Freemaster 和 MPC5744P-DEVKIT 的 USB 电压和电流监视器<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

pastedImage_6.png

1. 简介

本文的目的在于展示如何使用 MBDT、FreeMASTER 和一些电子知识来创建一个简单而实用的项目:监控 USB 电压和电流消耗。

我使用此设置来监控智能手机充电时的 USB 电压和电流,但它也可以用于其他目的,例如监控 USB 充电器/移动电源/PC 上连接的某些设备的功耗,或者可以用来查找一些充电问题,或者也许你只是想了解你的手机充电器是否支持快速充电,或者用来表征移动电源。

2. Overview


2.1 功能描述

该项目可以通过测量 USB 电压和电流从 USB 电源流向 USB 负载的电阻器上的电压降来测量 USB 电压和电流。电流产生的电压由电子电路放大,并通过 ADC 转换器由 MPC5744P-DEVKIT 板采样,然后将数据发送到 PC,然后通过 FreeMASTER 项目以数值和示波器图表的形式显示。MPC5744P-DEVKIT 板由 MBDT 编程。

要构建这个简单的项目,您需要三个组件:安装了 MBDT 工具箱的 Matlab 、 FreeMASTER 运行时调试工具、一个非常简单的电子电路和一个 MPC5744P-DEVKIT

如图 1 所示,该项目可分为两个主要部分:硬件设置和软件设置。

pastedImage_14.png

图 1:USB 电压和电流监视器框图

2.1 硬件设置

定制电子板

测量电流的最简单方法是使用与负载(在我们的例子中是 USB 输出)串联的简单电阻器。欧姆定律给出了电路中电压和电流之间的线性关系:

U = R * I 

U 是电阻器两端的电压降(以伏特 V 为单位),R 是电阻器的电阻(以欧姆Ω为单位),I 是我们需要测量的电流(以安培 A 为单位)。

大多数 USB 充电器最多可提供 3A 电流,而大多数智能手机的电流消耗却不到 3A。鉴于此,我考虑设计这个电路来测量最大电流约 3A。假设我们使用一个简单的 1 欧姆电阻。如果我们使用欧姆公式进行简单的数学计算,那么可以看出,对于 3A,电阻器两端的电压将为 3V(U = 1 * 3)。

USB res1.JPG

图2:USB连接器和电流“传感器”

图2中左侧是USB输入连接器,右侧是输出USB连接器,两条GND线都通过R1电流传感器连接。如图 2 所示,电流“I”将从 USB 输入通过 VBUS 线流到 USB 输出上的 VBUS,然后流过连接到 USB 输出的负载,再通过 R1 流过同一连接器上的 GND,至少流到 USB 输入连接器上的 GND。该电流将在 R1(UR1)上产生等于 3V 的电压(如果我们使用 3 安培电流和 1 欧姆电阻)。

USB 标准充电之一规定最低(标准)电压为 5V。在我们的例子中,使用这个 1 欧姆电阻将导致 3V 损失,然后 USB 输出端的电压将为 2V(不可接受)。在大多数数字电子电路中,当使用 5 伏电源时,电压公差约为 10% (0.5V),这意味着电压可以在 4.5V 到 5.5V 之间。让我们尝试使该电阻上的最大电压降大约比 0.5V 低 3 倍,例如:150mV。那么电流传感器电阻为R1 = 0.15V / 3A = 0.05ohm。


为了测量该电压降,我们可以使用MPC5744P-DEVKIT上的任何 ADC 通道,但如果 ADC 的电压参考设置为 5V,则 ADC 的分辨率为 5V/4096 = 1.22mV,这意味着对应于电流测量的等效 ADC 分辨率约为 24mA(1.22mV 对应 24mA)。如果我们考虑USB连接器上的电噪声,那么输出信号很可能会被电噪声“淹没”,或者结果不会很令人满意。

解决该问题的方法是将 0V --> 0.15V 范围“重新缩放”为 0V --> 5V。我们可以通过使用运算放大器电路来做到这一点。

我使用了当时在我的电子元件中找到的 LM358 IC。这个IC不是最好的,但是对于演示来说,可以使用。

Capture.JPG

图3:USB电流和电压监视器

这个电子设计的一些想法:

  • 该IC包含两个运算放大器,
  • 第一个放大器系数通过 R5 和 R4 设定(34 放大系数),信号连接到其非反相输入端,
  • 可测量的最低电流约为。0.7毫安,
  • 第二放大器设置为缓冲放大器,
  • 注意:如果负载使用的最大电流最大为 3A,则齐纳二极管不是必需的。

通过使用该放大器,范围重新调整为 0 --> 5.1V。

为了测量 USB 输入电压,我们使用 R9 和 R10 分压电阻,并使用公式 U_R9 = U_USB * (R9/(R9 + R10))。对于 R9 使用 10K,对于 R10 使用 33K

ADC 测量的最大 USB 标准充电电压为 U_R9 = 20V * (10/(43)) = 4.65V。

该电路已在原型 PCB 上开发。该电路的输出连接到MPC5744P-DEVKIT的两个 ADC(电流信号至 PTB13 和电压信号至 PTB14)通道,可以在 CN1 连接器上找到(“USB 电压”、“USB 电流”和 GND)。

MPC5744P-DEVKIT 评估板

该开发套件的主要作用是从定制板获取电流和电压数据,并将其转换为数字数据并通过 UART 接口发送到 PC。

如图所示。4、我使用三根电线将定制电子板连接到开发套件(两个 ADC 和 GND)。

在 MPC5744P-DEVKIT 上,ADC 电压参考必须设置为 5V(跳线 J19 --> 2-3),数据将通过 UART(USB --> OpenSDA)发送到 PC。

MPC5744P-DEVKIT 必须通过 USB 电缆连接到 PC。其余跳线均可保持默认状态。

USB current and voltage monitor.jpeg

图 4:硬件设置(负载为 USB LED 灯)

2.1 软件设置

MBDT应用模型

对于软件开发,我使用Matlab 使用MBDT 工具箱。第一步是使用 MBDT 创建一个新的 Simulink 项目。该项目包含三个主要部分:

  • 配置块
  • 变量声明块
  • 主循环,其中的值取自 ADC 块的输出,并在使用一些简单的数学函数后,将结果值存储在电流和电压变量中。

从 ADC 块获取值后,我们必须应用一些数学函数来逆转电子电路中产生的效应。

部分配置块包含:

  • MPC5744P配置块,
  • ADC配置块,其中有两个通道配置,
  • FreeMASTER 模块用于通过 FreeMASTER 协议通过 UART 观察电流、电压和其他参数。

变量声明部分用于声明用于从 ADC 外设获取值、中间值和最终值的所有变量。

主循环的一部分由简单的数学函数组成,其作用是将 ADC 值转换为电流和电压值。

首先执行的操作是获取 ADC 电流和电压值,然后将这些值转换为浮点类型,并乘以一个常数(ADC_Vref /ADC_resolution = 5/4095),该常数表示 ADC 电压分辨率。然后,对于 USB 电流值,必须将结果除以运算放大器的因数 (34),之后,我们可以从结果中减去运算放大器的输入偏移(如果测量到任何相关值),最后要做的就是使用欧姆定律 (U = R * I) 将电压转换为电流。

要获取 USB 电压,第一步与 USB 电流值类似,使用电阻分压器公式我们得到最终值。

对于使用不同的运算放大器IC,如果非反相输入太高,建议在电路开启时进行测量,并在模型中更新该值(变量Current_offset)。

pastedImage_214.png

图 5: MBDT 应用模型

FreeMASTER 项目

要实时查看数据,首先要打开 FreeMASTER 项目,选择“工具”,然后选择“连接向导...”,然后点击“下一步”按钮,选择第一个选项“使用直接连接到板载 USB 端口”,然后选择分配给MPC5744P-DEVKIT 的串行 com 端口和 115200 波特率。

在 FreeMASTER 项目中,可以通过选择“RAW 数据”绘制原始 ADC USB 电流和电压值,以数值和示波器视图的形式观察 USB 电流和电压。要绘制真实的 USB 电流和电压值,请在项目树中选择“电压和电流”示波器。

USB voltage and current.jpg

图6: FreeMASTER USB电流和电压监视器

在图 6 中,可以看到当我的智能手机连接到原装充电器时,快速充电转换过程中的电流和电压随时间的变化。

Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 06:44 AM
Updated by: