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

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

3天内不再提示

创建USB-PD源设备创建项目与配置系统

麦辣鸡腿堡 来源:意法半导体 作者:意法半导体 2023-02-07 14:47 次阅读

USB供电源入门

1创建项目

打开 STM32CubeIDE 并创建一个新的 STM32 项目。作为目标选择,从Board Selector选项卡中选择 NUCLEO-G0B1RE

单击“下一步”,然后输入您的项目名称。将其他字段保留为默认值,然后单击“完成”。

poYBAGPh9BeAUMN7AABXS09wm7g566.png

当提示使用默认模式初始化外围设备时,单击否。

2配置系统↑

此时,您的项目已创建,您只剩下 STM32CubeMX 视图。在接下来的步骤中,我们将配置项目所需的外围设备和选项。

2.1清除引出线↑

要从空白配置开始,请单击Pinout菜单并选择Clear Pinouts。这将重置引脚布局视图中的引脚布局。

pYYBAGPh9BeANvb3AACrUHynQ_c471.png

2.2配置系统时基↑

对于这个简单的例子,我们将使用 SysTick 作为系统时基。在 System Core 部分,选择SYS并将Timebase Source更改为SysTick。

poYBAGPh9BiAHtDAAAB4dZkpSzI883.png

2.3配置UCPD外设↑

在Connectivity选项卡中,选择UCPD1外围设备并在源模式下启用它。在NVIC 设置选项卡下,启用 UCPD 全局中断。

pYYBAGPh9BiATpfrAACQ9fHQ0mg655.png

DMA 设置选项卡下,添加 UCPD1_RX 和 UCPD1_TX DMA 请求。为 RX选择DMA1 通道 4,为TX 选择 DMA1 通道 2。

poYBAGPh9BiADHtaAAAsq8s_-0E345.png

25px-Info_white.png

信息

您可以使用任何您想要的 DMA 通道,但 DMA1_Channel1 除外,它稍后将由 BSP 驱动程序使用。

2.4配置FreeRTOS中间件↑

在中间件部分,使用CMSIS_V1接口启用FreeRTOS 。在Config Parameters选项卡下,将“TOTAL_HEAP_SIZE”更改为 7000 字节。

pYYBAGPh9BmAMawHAADA-5dUZ1U733.png

然后,在Include Parameters选项卡下,启用eTaskGetState包含定义。

poYBAGPh9BqAZRFTAACDekGm-8Y378.png

25px-Info_white.png

信息

如果G0 使用STM32G4 ,则需要将 LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 设置为 3而不是 CubeMX 的默认值 5。在某些使用 STM32G4 的情况下,将其设置为 5 会使代码执行卡在 vPortValidateInterruptPriority 函数中。

2.5配置USBPD中间件↑

在中间件部分,使用以下配置 启用USBPD :

端口配置:端口 0:UCPD1

堆栈配置:PD3 全栈

定时器服务来源:TIM1

在PDO General Definitions选项卡下,验证以下配置:

端口 0 的接收器 PDO 数量:1

Port 0 Sink PDO 10x0001912C(对应简单的5V/3A source)

pYYBAGPh9BqAIUKQAAClj-6HY4g640.png

下表摘自USB 供电规范,表 6-9 固定电源 PDO - 源。该项目的使用值和相关解码已添加到表中。

位描述使用价值解码

B31..30固定供应00b固定的

B29双重角色权力0b不

B28支持 USB 挂起0b不

B27不受约束的权力0b不

B26USB 通信能力0b不

B25双重角色数据0b不

B24..22保留 - 应取消设置为零000b不

B21..20峰值电流00b峰值等于

B19..10以 50mV 为单位的电压0001100100b5V

B9..0以 10mA 为单位的最大电流0100101100b3A

2.6配置ADC外设↑

为使供电堆栈正常工作,需要监控 VBUS。为此,需要配置一个 ADC 来测量 VBUS 电压和电流。

由于我们将使用 X-NUCLEO-SRC1M1 BSP,因此不需要在 CubeMX 中完成 ADC 配置。

由于我们需要 ADC LL 驱动程序才能正常工作,因此我们仍然需要在 CubeMX 中配置 ADC 以使其包含驱动程序文件,但实际配置和初始化函数不会在我们的项目中调用。

模拟部分,启用ADC1外设通道 0。保留默认配置,因为 X-NUCLEO-SRC1M1 BSP 将重新配置它。

poYBAGPh9BuAJkBLAABdvZKqSQk558.png

2.7配置I2C外设↑

由于 X-NUCLEO-SRC1M1 扩展板包含一个通过 I2C 通信的 TCPP02-M18,我们需要在我们的项目中启用 I2C 外设。

在连接部分,在I2C模式下启用I2C2外设。保留默认配置,因为 X-NUCLEO-SRC1M1 BSP 将重新配置它。

pYYBAGPh9BuARSMmAADEMAdck1w994.png

注意:我们需要在 CubeMX 视图中启用 I2C2 外设以生成代码以包括 I2C 驱动程序,就像我们为 ADC 所做的那样。

2.8配置时钟

在Clock Configuration主选项卡下,将系统时钟 mux 更改为PLLCLK。它将HCLK时钟设置为 64MHz。

poYBAGPh9ByAQLmVAAF3b8y-gYk326.png

25px-Info_white.png

信息

简单 USB-PD 接收器应用程序的强制设置已完成。

强烈建议使用以下部分进行调试

2.9 [可选] 配置 Tracer 进行调试↑

2.9.1配置LPUART

在STM32G0 Nucleo-64板子上,连接ST-LINK的Virtual COM口是LPUART1。

25px-Warning_white.png

警告

必须更改 LPUART1 使用的默认 STM32CubeMX 引脚以匹配 STM32G0 Nucleo-64 硬件

TX 的 PA2

用于接收的 PA3。

在连接部分,在异步模式下启用LPUART1,波特率为921600 波特。其余保持默认。

pYYBAGPh9B2AOsx9AAEVgBuFdGs300.png

在引脚布局视图中,左键单击 PA2 和 PA3 以将它们重新映射到LPUART1_TX和LPUART1_RX。

poYBAGPh9B6AFkp2AADp86fXGUY109.png

在DMA 配置选项卡下,添加对LPUART1_TX的请求。使用DMA1 通道 3。

pYYBAGPh9B6AHVc2AAAuyXQDUVY285.png

最后,在NVIC 设置选项卡下,启用 LPUART1 全局中断。

poYBAGPh9B6AMnKUAAAzf2Fllxk414.png

2.9.2配置嵌入式tracer↑

在Utilities部分,选择TRACER_EMB并使用LPUART1作为跟踪源。

pYYBAGPh9B-AMDfyAABqoei-3ew637.png

然后,返回USBPD中间件配置并选中 Tracer Source 复选框。

poYBAGPh9B-ARp5jAABA7iGpoWw167.png

2.9.3配置UCPD监控固件响应器调试↑

如果需要与 USB-PD 堆栈交互,可以使用 UCPD 监控工具STM32CubeMonUCPD激活固件交互式堆栈响应器。在 Utilities 部分,启用 GUI_INTERFACE,然后输入自由文本来描述电路板。

pYYBAGPh9CCAUP5kAABnYcrxdW0687.png

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

    关注

    60

    文章

    7802

    浏览量

    262589
  • PD
    PD
    +关注

    关注

    4

    文章

    437

    浏览量

    43706
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    USB-Pd Type-C连接器是改变游戏规则的吗?

    随着今年早些时候推出USB-Pd规范,它已经扩展了USB电缆的功能,现在可以为各种设备提供高功率。提供5W~10W功率的现有解决方案现在可以利用这项技术进行扩展,最高可提供100W功率。这使OEM
    发表于 10-12 08:52

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

    因此,USB-IF协会遂将供电技术视为拓展USB应用的布局重点,并于近期发布新的USB-PD规范,将USB功率标準配置由10瓦(W) 提升到
    发表于 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

    创建配置数据

    JAVA教程之创建配置数据,很好的JAVA的资料,快来学习吧。
    发表于 04-12 17:41 6次下载

    致远电子发布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 4445次阅读
    致远电子发布 <b class='flag-5'>USB-PD</b> 快充测试方案

    什么是USB-PD?

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

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

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

    创建 USB-PD 设备编译运行

    配置shield的跳线 将跳线放在 X-NUCLEO-SRC1M1 屏蔽上。 接下来,将外部 5V 电源插入绿色“”连接器。 使用此配置,该板将由 Nucleo 板的 ST-Link 供电
    的头像 发表于 02-07 14:57 1125次阅读
    <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 816次阅读
    如何使用DSLogic分析<b class='flag-5'>USB-PD</b>信号?

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

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