欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 基于STM32G0的USB PD协议学习(3)

基于STM32G0的USB PD协议学习(3)

2025/4/2 10:46:01 来源:https://blog.csdn.net/qq_41121877/article/details/143315097  浏览:    关键词:基于STM32G0的USB PD协议学习(3)

0、前言

STM32这个平台资源确实很不错,但是里面的PD代码是一个lib库文件,没有开源。可以做来玩玩,但是如果要满足USB-IF认证需求的话,谨慎!!!

这段时间较为繁忙,断更有点严重...

1、原理图

之前想做的功能挺多的,很多都没做,先放一张总图。

 下面就展示其中重要的部分:

1.1 STM32G071CBU3

 核心芯片选用的是STM32G071系列,该系列有两个PD端口,本文只使用了其中的一个。

使用的外设有:

I2C1: OLED显示

I2C2: Charge IC控制,电池的充放电管理

ADC:务必打开!!!用于检测vbus上的电压,PD协议需要,外部需要单独设计电路

UART3: Debug调试

重点就这个几个,其他的可以不管.....

另外一点我比较好奇的是,PD协议中VCON是5V输出,但是这个芯片的供电是3.3V。所以这个stm32芯片是否支持Vcon swap呢?

1.2 充电管理IC

充电管理IC使用的是Ti的BQ25703芯片,该芯片支持I2C配置其工作模式,使其具有充电和放电的功能。之前选用BQ25703只是为了做简单的PD验证,在优信上也好买,便宜!

该芯片的放电功能满足简单的PD协议需求,但无法满足PPS这个功能。

因此我推荐使用BQ25713这个芯片,其具有更高的电压分辨率,满足PPS的协议需求。

2、STM32代码

外设驱动(包含:I2C、串口、PD、ADC)是用CubeMx生成的。PD需要再额外配置一下,选择需要的功能,生成后PD会出现一个lib文件。所有就打算放弃深入开发该芯片了。。。

代码写的时间有点久了,有些地方可能会有疏漏,欢迎指出。

2.1 CubeMx

外设的大概配置,选择性勾选。

其中 I2C1I2C2、ADC是必须的

PD配置:

 PDO General Def

 User Port 0 Parameters

 User Constants

 Parameter Setting

DPM Core 

 Stack Port 0 Parameters

2.2 Keil工程设置

2.1小节配置完成后,需要添加额外代码,PD才能正常工作。

我直接放代码慢慢看吧,时间太久,有点忘记了。。。

https://download.csdn.net/download/qq_41121877/89931059

总结

目前PD协议已经更新3.2.1.0,不知STM32这个芯片还能否胜任。另外该文章是STM32 PD系列的最后一章节,后续不再有更新,待找到新的PD芯片后再更新......

本人只是刚入门PD的小白,如有大佬有推荐的其他PD芯片欢迎告知,一起研究研究!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词