USB供电源入门
1创建项目
打开 STM32CubeIDE 并创建一个新的 STM32 项目。作为目标选择,从Board Selector选项卡中选择 NUCLEO-G0B1RE
单击“下一步”,然后输入您的项目名称。将其他字段保留为默认值,然后单击“完成”。
当提示使用默认模式初始化外围设备时,单击否。
2配置系统↑
此时,您的项目已创建,您只剩下 STM32CubeMX 视图。在接下来的步骤中,我们将配置项目所需的外围设备和选项。
2.1清除引出线↑
要从空白配置开始,请单击Pinout菜单并选择Clear Pinouts。这将重置引脚布局视图中的引脚布局。
2.2配置系统时基↑
对于这个简单的例子,我们将使用 SysTick 作为系统时基。在 System Core 部分,选择SYS并将Timebase Source更改为SysTick。
2.3配置UCPD外设↑
在Connectivity选项卡中,选择UCPD1外围设备并在源模式下启用它。在NVIC 设置选项卡下,启用 UCPD 全局中断。
在DMA 设置选项卡下,添加 UCPD1_RX 和 UCPD1_TX DMA 请求。为 RX选择DMA1 通道 4,为TX 选择 DMA1 通道 2。
信息
您可以使用任何您想要的 DMA 通道,但 DMA1_Channel1 除外,它稍后将由 BSP 驱动程序使用。
2.4配置FreeRTOS中间件↑
在中间件部分,使用CMSIS_V1接口启用FreeRTOS 。在Config Parameters选项卡下,将“TOTAL_HEAP_SIZE”更改为 7000 字节。
然后,在Include Parameters选项卡下,启用eTaskGetState包含定义。
信息
如果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)
下表摘自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 将重新配置它。
2.7配置I2C外设↑
由于 X-NUCLEO-SRC1M1 扩展板包含一个通过 I2C 通信的 TCPP02-M18,我们需要在我们的项目中启用 I2C 外设。
在连接部分,在I2C模式下启用I2C2外设。保留默认配置,因为 X-NUCLEO-SRC1M1 BSP 将重新配置它。
注意:我们需要在 CubeMX 视图中启用 I2C2 外设以生成代码以包括 I2C 驱动程序,就像我们为 ADC 所做的那样。
2.8配置时钟↑
在Clock Configuration主选项卡下,将系统时钟 mux 更改为PLLCLK。它将HCLK时钟设置为 64MHz。
信息
简单 USB-PD 接收器应用程序的强制设置已完成。
强烈建议使用以下部分进行调试
2.9 [可选] 配置 Tracer 进行调试↑
2.9.1配置LPUART↑
在STM32G0 Nucleo-64板子上,连接ST-LINK的Virtual COM口是LPUART1。
警告
必须更改 LPUART1 使用的默认 STM32CubeMX 引脚以匹配 STM32G0 Nucleo-64 硬件:
TX 的 PA2
用于接收的 PA3。
在连接部分,在异步模式下启用LPUART1,波特率为921600 波特。其余保持默认。
在引脚布局视图中,左键单击 PA2 和 PA3 以将它们重新映射到LPUART1_TX和LPUART1_RX。
在DMA 配置选项卡下,添加对LPUART1_TX的请求。使用DMA1 通道 3。
最后,在NVIC 设置选项卡下,启用 LPUART1 全局中断。
2.9.2配置嵌入式tracer↑
在Utilities部分,选择TRACER_EMB并使用LPUART1作为跟踪源。
然后,返回USBPD中间件配置并选中 Tracer Source 复选框。
2.9.3配置UCPD监控固件响应器调试↑
如果需要与 USB-PD 堆栈交互,可以使用 UCPD 监控工具STM32CubeMonUCPD激活固件交互式堆栈响应器。在 Utilities 部分,启用 GUI_INTERFACE,然后输入自由文本来描述电路板。
上一篇:国产MCU的GD32E230串口通信
下一篇:GD32407V-START开发板的BSP框架制作与移植
推荐阅读最新更新时间:2024-11-13 15:42
设计资源 培训 开发板 精华推荐
- L7808A 大电流稳压器的典型应用
- 使用 ROHM Semiconductor 的 BD5338 的参考设计
- LF50ACP 5V 延迟开启低压降稳压器的典型应用
- MIKROE-2812,用于 STM32 Shield 的 mikromedia 7
- 用于数据采集系统的 5V 模拟放大
- 用于简单时钟振荡器的 NCP301LSN27T1 2.7V 电压检测器的典型应用
- NCP571SN09T1GEVB,NCP571 评估板,0.9V DC 至 DC 单输出电源
- AM2G-1209SH30Z 9V 2W DC/DC 转换器的典型应用
- ADR525 高精度并联模式电压基准的典型应用
- LTC7812IUH 低 EMI、宽输入范围直通级联升压+降压稳压器的典型应用电路