1创建项目
打开 STM32CubeIDE 并创建一个新的 STM32 项目。作为目标选择,从MCU/MPU 选择器选项卡中选择 STM32G071RB
单击“下一步”,然后输入您的项目名称。将其他字段保留为默认值,然后单击“完成”。
2配置系统
15分钟
此时,您的项目已创建,您只剩下 STM32CubeMX 视图。在接下来的步骤中,我们配置项目所需的外围设备和选项。
2.1配置UCPD外设↑
在Connectivity选项卡中,选择UCPD1外设并在接收模式下启用它。在NVIC 设置选项卡下,启用 UCPD 全局中断。
您不需要在配置中包含“Dead Battery Signals”,因为它由 X-NUCLEO-SNK1M1 扩展板上的 TCPP01 保护设备管理。
在DMA 设置选项卡下,添加 UCPD1_RX 和 UCPD1_TX DMA 请求。
2.2配置FreeRTOS中间件↑
在中间件部分,使用CMSIS_V1接口启用FreeRTOS 。在Config Parameters选项卡下,将“TOTAL_HEAP_SIZE”更改为 7000 字节。
然后,在Include Parameters选项卡下,启用eTaskGetState包含定义。
信息
如果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)
下表摘自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 个周期
然后,在GPIO 设置选项卡下,将 PB1 引脚重命名为VSENSE,这是该引脚的更具描述性的名称,用于 VBUS 监控:
在User Constants选项卡下,添加名为VDDA_APPLI且值为3300的常量。
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。
对于实际应用,这些 GPIO 设置必须在 UCPD 初始化之后执行。
2.6配置时钟↑
在Clock Configuration主选项卡下,将系统时钟 mux 更改为PLLCLK。它将HCLK时钟设置为 64 MHz。
信息
简单 USB-PD 接收器应用程序的强制设置已完成。
强烈建议使用以下部分进行调试
-
usb
+关注
关注
60文章
7890浏览量
263943 -
STM32
+关注
关注
2265文章
10870浏览量
354716 -
PD
+关注
关注
4文章
464浏览量
43920
发布评论请先 登录
相关推荐
评论