0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何创建 USB-PD 接收设备(下)

麦辣鸡腿堡 来源:意法半导体 作者:意法半导体 2023-01-31 16:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

6配置屏蔽的跳线

如图所示,将跳线放在 X-NUCLEO-SNK1M1 屏蔽上。

pYYBAGPYzQmAffe8AAcWCYISH34714.PNG

如果您改用 X-NUCLEO-USBPDM1 扩展板,请遵循以下配置:

poYBAGPYzQqABVl2AAbbjYjjIi4255.png

7编译并运行应用程序

编译必须在没有错误或警告的情况下执行。

通过单击

pYYBAGPYzQuAcjOsAAADTVPJoVA800.png

按钮(或选择Project/Build Project)来构建应用程序。

通过单击

poYBAGPYzQuAd1viAAADG8DiTHw646.png

按钮运行应用程序(或选择运行/运行)

8建立第一个显性契约

在电路板上运行您的应用程序后,启动 STM32CubeMonitor-UCPD 应用程序。点击“Refresh list of connected boards”时,用户的板子必须出现在列表中,所以双击相应的行(或单击“NEXT”)。

poYBAGPYzQyAaiNJAAJI0SwDKqw647.png

注意:ComPort 可能不同。这取决于计算机上安装的板卡数量。 然后双击所需的 UCPD 端口,此处为端口 0,或选择它并单击“下一步”。

poYBAGPYzQyACvOtAAGz1sIStOg929.png

单击右下角的TRACES按钮以获取协议跟踪。然后,您可以将供电电源插入 X-NUCLEO-SKN1M1 防护罩的 USB Type-C® 插座。屏幕可能如下所示:

pYYBAGPYzQ2AafH2AAGP_JEmIic004.png

上图显示了 STM32G0 与右侧面板上的供电电源之间的通信。可以验证正确的顺序以达成明确的合同:

功能由源发送(IN 绿色消息)。

请求由STM32G0发送(OUT橙色信息)。

ACCEPT和PS_RDY由源发送(IN 绿色消息)。

合同协商以POWER_EXPLICIT_CONTRACT通知(蓝色消息)结束。

有关如何使用此工具的更多详细信息,请参阅UM2468。有关协议的更多详细信息,请参阅UM2552。请注意,此跟踪对于调试和应用程序开发非常有帮助。

9 [可选] 高级 USB-PD 应用程序

25px-Warning_white.png

警告

此部分是可选的,针对想要从源中选择特定 PDO 的用户。在参考本节之前,需要先完成 wiki 的第一部分。

从这一点开始,您构建了最简单的接收器,它不处理接收器和源 PDO 的匹配。这必须通过用户代码来完成。这是在 USBPD_DPM_SNK_EvaluateCapabilities 函数中完成的。目前,这个函数只是请求第一个可用的源 PDO,即 5V。

要选择特定的 PDO(例如 9V),您必须选择相应的源 PDO 编号。这可以通过与先前在 STM32CubeMX 中定义的接收器 PDO 以及相应的可用源 PDO 相匹配的用户代码来完成。

本节提供了该系统可能实现的代码。

你需要:

在STM32CubeMX中添加所有你想支持的sink PDO

在您的应用程序中添加下面提供的用户代码

9.1添加支持的sink PDO ↑

重新打开 STM32CubeMX 视图。在Middleware部分,对于USBPD中间件,在PDO General Definitions选项卡下,添加您希望接收器支持的 PDO 数量。对于此示例,我们定义了 3PDO,对应于 5V/1.5A、9V/1.5A 和 15V/1.5A 的简单灌电流配置。这是通过将 PDO 设置为:

0x00019096(固定 PDO:5V 1.5A)

0x0002D096(固定 PDO:9V 1.5A)

0x0004B096(固定 PDO:15V 1.5A)

poYBAGPYzQ6AXc5_AACzzU_pObY846.png

9.2在GitHub上获取usbpd_user_services.c/h文件↑

通过访问以下链接在 GitHub 上获取 usbpd_user_services.c/h 文件:

- usbpd_user_services.c

- usbpd_user_services.h

将 usbpd_user_services.c/h 文件复制到您的应用程序 USBPD 文件夹中。

然后,为了告诉 STM32CubeMX 在代码生成时包含这些文件,在项目的根文件夹中创建一个名为“.extSettings”的文件(请注意文件名中的点字符)并用以下代码填充它:

[项目文件] 标头路径= [其他] 定义= 哈尔模块= [团体] USBPD=USBPD/usbpd_user_services.c

9.3 usbpd_dpm_user.c中修改↑

在/* USER CODE BEGIN-END Includes */标签之间添加以下代码:

/* 用户代码开始包括 */ #include “usbpd_user_services.h” /* 用户代码结束包括 */

在开关中的/* USER CODE BEGIN-END USBPD_DPM_SetDataInfo */标签 之间添加以下代码:

/* Case Received Source PDO values 数据信息 : */ case USBPD_CORE_DATATYPE_RCV_SRC_PDO : /*!《 Storage of Received Source PDO values */ USBPD_USER_SERV_StoreSRCPDO ( PortNum , Ptr , Size ); 打破;

在/* USER CODE BEGIN-END USBPD_DPM_SNK_EvaluateCapabilities */标签之间添加以下代码(替换之前添加的代码):

/* 用户代码开始 USBPD_DPM_SNK_EvaluateCapabilities */ USBPD_USER_SERV_EvaluateCapa ( PortNum , PtrRequestData , PtrPowerObjectType ); /* 用户代码结束 USBPD_DPM_SNK_EvaluateCapabilities */

您现在可以重新生成代码,构建并运行它。您的应用要求匹配 PDO 的最高电压(源和吸收支持的电压/电流)。

您可以进一步修改此用户代码,例如选择最高功率的 PDO 而不是最高电压。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    8372

    浏览量

    281666
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371131
  • PD
    PD
    +关注

    关注

    4

    文章

    526

    浏览量

    45760
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    USB-PD适配器中常见的拓扑

    本文首先回顾了USB-PD适配器的发展,并和大家聊一聊USB-PD适配器中常见的拓扑。接着着重介绍ST在快充领域的最新产品和技术路线。最后我们会以demo板为例,跟大家探讨一USB-PD
    发表于 08-18 14:18 4287次阅读

    应用指南—如何使用DSLogic分析USB-PD信号?

    ,两设备协商后 VBUS 的电压会有所改变。 VBUS 电压是 USB 总线上的电源电压,通常为5V。在 USB-PD 中,它可以在5V、9V、12V、15V或20V之间变化,以提供不同功率级别的电力
    的头像 发表于 09-04 14:42 2980次阅读
    应用指南—如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信号?

    为什么 USB-PD 需要 TDS 保护

    的情况安全可靠地运行。 USB-PD 是一种基于 USB Type-C 标准构建的先进快速充电技术它基于充电规范运行以最 大限度地提高传输到连接设备的功率。
    发表于 04-25 16:18

    USB-PD实现中大功率USB充电应用

    伏特VBus电源线,提高支援电压等级至12或20伏特。 无庸置疑,USB-PD产品能否问世的关键,就在于负责电源讯号通讯的USB VBus设计。新控制方案须达到够高的频率,以免影响传统USB
    发表于 06-04 05:00

    PD 快充是什么?一篇文章带你了解USB-PD快充协议

    前言  说起 USB-PD 协议,全名 USB Power Delivery ,可能对于很多人来说还很陌生,但是目前越来越多的手机已经开始支持这一协议并用来做为设备快速充电的功能。  稍有了解的人
    发表于 08-27 09:50

    目前主流的快充协议USB-PD介绍

    USB-PD 是由 USB-IF 组织制定的一种快速充电规范,是目前主流的快充协议之一。 USB-PD 快充协议是以 Type-C 接口输出的,但不能说有 Type-C 接口就一定支持 USB
    发表于 10-28 08:55

    基于USB Type-C的一种电源供电标准USB-PD

    USB-PD(Power Delivery)是基于USB Type-C的一种电源供电标准,最大供电功率可达100瓦(W);随着USB Type-C的普及,越来越多的设备(手机、平板、显
    发表于 09-14 07:24

    致远电子发布USB-PD快充测试方案

    USB-PD(Power Delivery)是基于USB Type-C的供电标准,最大功率可达100W。
    发表于 05-17 09:47 16次下载

    致远电子发布 USB-PD 快充测试方案

    USB-PD(Power Delivery)是基于USB Type-C的供电标准,最大功率可达100W。虽然USB-PD快充越来越热,但行业内并没有针对快充的测试工具,ZLG致远电子正式发布U
    发表于 05-17 18:10 5359次阅读
    致远电子发布 <b class='flag-5'>USB-PD</b> 快充测试方案

    什么是USB-PD?

    10P0R,VIVONEX 3S等新出的机型,快充应用迎来爆发。如果您还不熟悉这项技术,并且想了解更多信息,请阅读以下的使用信息 什么是USB-PD?USB-PDUSB部分代表通用串行总线。您应该熟悉它,因为它定义了相同的技术
    的头像 发表于 10-11 09:40 3.8w次阅读
    什么是<b class='flag-5'>USB-PD</b>?

    AN5418_使用STM32CubeMX构建一个简单的USB-PD接收器应用程序

    AN5418_使用STM32CubeMX构建一个简单的USB-PD接收器应用程序
    发表于 11-21 08:11 2次下载
    AN5418_使用STM32CubeMX构建一个简单的<b class='flag-5'>USB-PD</b><b class='flag-5'>接收</b>器应用程序

    如何使用STM32CubeMX构建简单的USB-PD接收器应用程序

    如何使用STM32CubeMX构建简单的USB-PD接收器应用程序
    发表于 11-21 17:07 8次下载
    如何使用STM32CubeMX构建简单的<b class='flag-5'>USB-PD</b><b class='flag-5'>接收</b>器应用程序

    如何创建 USB-PD 接收设备(上)

    。将其他字段保留为默认值,然后单击“完成”。 2配置系统 15分钟 此时,您的项目已创建,您只剩下 STM32CubeMX 视图。在接下来的步骤中,我们配置项目所需的外围设备和选项。 2.1配置UCPD
    的头像 发表于 01-31 16:02 4294次阅读
    如何<b class='flag-5'>创建</b> <b class='flag-5'>USB-PD</b> <b class='flag-5'>接收</b><b class='flag-5'>设备</b>(上)

    如何使用DSLogic分析USB-PD信号?

    一文档介绍本文将一步步介绍如何使用DSLogic逻辑分析仪采集和分析USB-PD信号。此次将演示使用快充充电器给一台安卓手机充电。二需要测量哪几个信号逻辑分析仪需要测量CC1信号,两设备协商后
    的头像 发表于 01-12 14:09 2372次阅读
    如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信号?

    USB Type-C与USB-PD技术对比

    本篇文章主要详述 24P、16P 与 6P USB-TypeC接口的引脚定义,以及USB-PDUSB接口类型,以便广大读者在进行硬件设计时提供参考依据。
    发表于 01-26 12:23 4753次阅读
    <b class='flag-5'>USB</b> Type-C与<b class='flag-5'>USB-PD</b>技术对比