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

描述

USB供电源入门

1创建项目

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

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

PD

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

2配置系统↑

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

2.1清除引出线↑

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

PD

2.2配置系统时基↑

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

PD

2.3配置UCPD外设↑

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

PD

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

PD

PD

信息

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

2.4配置FreeRTOS中间件↑

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

PD

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

PD

PD

信息

如果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)

PD

下表摘自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 将重新配置它。

PD

2.7配置I2C外设↑

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

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

PD

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

2.8配置时钟↑

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

PD

PD

信息

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

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

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

2.9.1配置LPUART↑

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

PD

警告

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

TX 的 PA2

用于接收的 PA3。

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

PD

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

PD

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

PD

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

PD

2.9.2配置嵌入式tracer↑

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

PD

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

PD

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

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

PD

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分