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

描述

1创建项目

打开 STM32CubeIDE 并创建一个新的 STM32 项目。作为目标选择,从MCU/MPU 选择器选项卡中选择 STM32G071RB

 

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

STM32

2配置系统

STM32

15分钟

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

2.1配置UCPD外设↑

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

STM32

信息

您不需要在配置中包含“Dead Battery Signals”,因为它由 X-NUCLEO-SNK1M1 扩展板上的 TCPP01 保护设备管理。

STM32

在DMA 设置选项卡下,添加 UCPD1_RX 和 UCPD1_TX DMA 请求。

STM32

2.2配置FreeRTOS中间件↑

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

STM32

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

STM32

STM32

信息

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

2.3配置USBPD中间件↑

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

端口配置:端口 0:UCPD1

堆栈配置:PD3 全栈

定时器服务来源:TIM1

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

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

Port 0 Sink PDO 10x26019096(对应一个5V/1.5A,双重角色数据sink)

STM32

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

位描述使用价值解码

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

B29双重角色权力0b不

B28更高的能力0b不

B27不受约束的权力0b不

B26USB 通信能力0b不

B25双重角色数据1b是的

B24..23快速角色交换支持00b不

B22..20保留 - 必须设置为零0b不

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

B9..0以 10mA 为单位的最大电流0010010110b1.5A

2.4配置ADC外设↑

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

在模拟部分,启用ADC1外设通道 9(连接到引脚 PB1)。使用以下配置配置 ADC:

时钟预分频器:同步/4

连续转换模式:启用

溢出行为:溢出数据被覆盖

采样时间公共 1 和 2:160.5 个周期

STM32

然后,在GPIO 设置选项卡下,将 PB1 引脚重命名为VSENSE,这是该引脚的更具描述性的名称,用于 VBUS 监控:

STM32

在User Constants选项卡下,添加名为VDDA_APPLI且值为3300的常量。

STM32

2.5配置GPIOs↑

对于 X-NUCLEO-SNK1M1 shield,需要两个额外的 GPIO 设置(在 X-NUCLEO-USBPDM1 中没有,因为设置是通过跳线强制设置的)。

PB6(DB_OUT用于禁用电池没电)GPIO 输出为高电平

PC10(为 TCPP01‑M12 供电的VCC_OUT引脚)GPIO 输出为高电平

要设置此配置,请在 Pinout视图中左键单击 PB6 和 PC10引脚,然后将引脚设置为GPIO_Output。在System Core部分的GPIO下,将两个引脚的 GPIO 输出电平更改为高电平,并为 PB6设置用户标签 DB_OUT ,为PC10设置 VCC_OUT。

STM32

对于实际应用,这些 GPIO 设置必须在 UCPD 初始化之后执行。

2.6配置时钟↑

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

STM32

STM32

信息

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

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

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

全部0条评论

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

×
20
完善资料,
赚取积分