全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

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

时间:2023-02-07 14:47

人气:

作者:admin

标签: pd  USB 

导读:USB供电源入门 1创建项目 打开 STM32CubeIDE 并创建一个新的 STM32 项目。作为目标选择,从Board Selector选项卡中选择 NUCLEO-G0B1RE 单击“下一步”,然后输入您的项目名称。将其他字段保留为默...

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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信