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

发布者:HarmonyInLife最新更新时间:2024-02-20 来源: elecfans关键字:创建  USB-PD  配置系统 手机看文章 扫描二维码
随时随地手机看文章

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


关键字:创建  USB-PD  配置系统 引用地址:创建USB-PD源设备创建项目与配置系统

上一篇:国产MCU的GD32E230串口通信
下一篇:GD32407V-START开发板的BSP框架制作与移植

推荐阅读最新更新时间:2024-11-13 15:42

基于STM32芯片创建HelloWorld工程
1. RT-Thread Studio RT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。 RT-Thread主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。 RT-Thread STudio了可以从 RT-Thread官网 下载,下载之后一路next安装即可,注意安装路径不要有中文或者空格。 2. 桌面mini时钟项目 迷你桌面时钟项目基于小熊派IoT开发板,使用RT-Thread
[单片机]
基于STM32芯片<font color='red'>创建</font>HelloWorld工程
使用LabVIEW和FPGA创建一个自动化的微控制器测试系统
   使用NI公司的产品,我们可以使用一套软硬件解决方案,轻而易举地测试不同的微控制器外设。我们使用NI的产品,通过向自动化框架提供易用的接口,使我们的测试系统自动化,这样节省了大量的精力和成本。    ZalmanRafael,InfineonTechnologies   TheChallenge:   集成和自动化一个完整的微控制器测试流程。   TheSolution:   使用NI公司产品来创造一个非人工测试平台,该平台具有直观用户界面和综合的测试案例。   Author(s):   ZalmanRafael-InfineonTechnologies   DBirundha-InfineonTechno
[测试测量]
使用LabVIEW和FPGA<font color='red'>创建</font>一个自动化的微控制器测试<font color='red'>系统</font>
如何快速创建开关电源的PCB版图设计
如今的 开关稳压器 和电源越来越紧凑,性能也日益强大,而越来越高的开关频率是设计人员面临的主要问题之一,正是它使得PCB的设计越来越困难。事实上,PCB版图已经成为区分好与差的开关电源设计的分水岭。本文针对如何一次性创建优秀PCB版图提出一些建议。 考虑一个将24V降为3.3V的3A开关稳压器。设计这样一个10W稳压器初看起来不会太困难,设计人员可能很快就可以进入实现阶段。不过,让我们看看在采用Webench等设计软件后,实际会遇到哪些问题。如果我们输入上述要求,Webench会从若干IC中选出“Simpler Switcher”系列中的LM25576(一款包括3A FET的42V输入器件)。该芯片采用带散热垫的TSSOP-
[电源管理]
如何快速<font color='red'>创建</font>开关电源的PCB版图设计
采用Keil4为ARM7 (LPC2103)创建工程 及J-link调试
采用Keil4为ARM7创建工程,采用J-LINK调试,具体步骤如下: 在菜单里的Project里选择New uVision project...,选择正确的路径并命名保存; 在弹出来的对话框中选择CPU,NXP(founded by philips)- LPC2103; 在弹出的对话框按“yes”复制LPC2100启动文件到工程; 在Project里面选择Option for Target'Target 1'...,Target里面的IROM1要配置正确(0x0 0x8000),一般采用默认值就可以了;Output选择里面的Name of Executable的命名不能用点号;Debug里面的选择
[单片机]
创建一流代工模式 台积电张忠谋面临退休
全球最大半导体代工企业台湾积体电路制造(简称台积电、TSMC)正保持快速发展。目前在全球代工市场的份额超过50%,总市值达到约18万亿日元,逼近多年来居于行业首位的美国英特尔。台积电创始人兼董事长张忠谋主导的代工模式不断扩大,改变了半导体行业的产业结构。如今,IT产业的“幕后统治者”台积电迎来了创业30年。 4月13日,在台北举行的台积电财报说明会上,联合首席执行官(CEO)刘德音充满自信地表示,在人工智能(AI)、自动驾驶和5G通信,众多领域的高性能半导体需求都将增加,这将成为台积电的增长引擎。 同一天发布的台积电2017年1~3月合并财报显示,净利润同比增长35%,增至876亿新台币,刷新了1~3月的季度历史新高。截至
[半导体设计/制造]
英飞凌和Rainforest Connection携手创建实时监测系统
英飞凌和Rainforest Connection携手创建实时监测系统,以检测世界上一些极脆弱森林中的野火情况 慕尼黑和加州圣何塞--2021年10月21日--移动出行、能效和物联网半导体领域的全球领导者英飞凌科技股份公司 今天宣布与非营利组织Rainforest Connection(RFCx)达成合作,利用声学技术、大数据和人工智能/机器学习来拯救雨林和监测生物多样性。在这个合作项目中,RFCx将尝试使用英飞凌的气体传感技术来提升和扩展其目前用于监测和保护脆弱的雨林生态系统的声学监听设备的能力。这包括监测灵长类动物、鸟类、青蛙、昆虫、蝙蝠和其他生物,并通过这项合作来保护森林免受非法采伐及火灾的种种威胁。 英飞凌将使我们
[传感器]
使用ROS 2 MoveIt和NVIDIA Isaac Sim创建逼真的机器人模拟
MoveIt 是一个控制平台,包括了运动规划、操纵、3D 感知、运动学、控制和导航方面的。ckNik Robocs 是进行 MoveIt 开发的公司,该公司正在探索在内部研发项目中使用 NVIDIA Isaac Sim 。项目的目标是提高对操纵的感知,并通过 PickNik 的商业机器人开发平台 MoveIt Studio 让机器人具有更自主的行为。 本文展示了将 MoveIt 2 与 NVIDIA Isaac Sim 中模拟的机器人进行集成的过程。本需要一台安装了 Isaac Sim 2022.2.0 的,以及如下所列的系统配置。请参阅 NVIDIA Isaac S
[机器人]
创建并移植K10 BSP包的具体步骤和方法(三)
while((MCG_S & MCG_S_IREFST_MASK) != 0x00U) {   /* 判断FLL参考源是否为外部参考时钟 */   }   while((MCG_S & 0x0CU) != 0x08U) { //等待,直到外部参考时钟作为MCG的输出   }   /* 切换到 PBE 模式*/   OSC_CR = OSC_CR_ERCLKEN_MASK;   SIM_SOPT2 &= (uint32_t)~(uint32_t)(SIM_SOPT2_MCGCLKSEL_MASK);   MCG_C1 = (MCG_C1_CLKS(0x02) | MCG_C1_FRDIV(0x05) | MCG_C1
[模拟电子]
<font color='red'>创建</font>并移植K10 BSP包的具体步骤和方法(三)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved