STMCU小助手
发布时间:2022-7-26 20:50
|
前言 本文档介绍了面向STM32Cube的STM32 USB-PD(电力传输)软件扩展,参考X-CUBE-USB-PD。) T. t3 y/ d+ F Z. Z9 j2 D' a USB Type-C™是最新的USB连接器生态系统,能够满足平台和设备不断变化的需求,同时保持USB的功能优势。 USB Power Delivery协议嵌入到了USB Type-C™连接器中,从而可以轻松连接/断开USB线缆,实现很多数据传输以外的功能。此协议能够传输超过常规5 V / 1.5 A的电压/电流,最大功率供应为100 W。# q: l. S* ]3 l: E3 \# k6 f! ] STM32 USB-PD包(X-CUBE-USB-PD)包含一个库(二进制格式)和以STM32F0设备作为USB Power Delivery微控制器的应用示例。可扩展到其他STM32系列。0 L* `2 _& N; {9 L 该软件包包含的示例涵盖了大部分应用用例,允许用户基于USB-PD(供电方,受电方,和双角色端口)开发应用。 该库及相关示例可用于STM32F0设备以及专用P-NUCLEO-USB001扩展板(包含模拟前端和USB Type-C™连接器)。4 R- g* Q( n2 o" [( T! Y 本文档介绍了如何使用USB-PD库实现常规用途,以及创建自定义应用。它包含了以下专题,以简化此库的使用:/ w1 m6 f4 T6 f9 L& ~ • USB-PD标准概述/ {2 G* \# W/ G) z, f) m8 \ • USB-PD库架构 • USB-PD堆栈使用描述 • 如何使用此库设置USB-PD应用。 1受电方概述 1.1缩写和缩略语 ) N* z5 j5 \- ~ 1.2参考 •通用串行总线电力传输规范,版本2.0,2016年3月25日$ Q6 Z) B9 E. m3 x •通用串行总线Type-C线缆和连接器规范1.2,2016年3月25日$ ~+ d3 s. v( Z/ Y4 C# ? 表1. 缩略语列表" d/ ^: Y+ x& k) p$ } 术语 意义3 f, t" t: g/ l/ K( G2 n7 b2 c1 }8 l( b API . x( x8 c; r$ J' W" g) g7 B 应用编程接口8 S' o! o/ w3 b* i CAD 线缆检测模块* t$ b2 Z4 p7 j CLI 0 W4 Q' Y B$ a' |3 B, a. w 命令行接口 DFP + S. z' |" n3 Q9 e3 g' f o 下行端口' u' Y$ i. f) ~. G6 v9 V- Y DPM * C/ k: d: E- J9 L! [" ~ 设备策略管理器 DRP 双角色端口7 ~- S; ]8 o7 E% M5 u FW . z1 N7 U4 t6 X* s 固件- l" e0 d1 a1 Y' a HW 硬件 PD 供电 PE 7 {3 `& h% ~9 E9 E( H 策略引擎 PRL % b1 O0 h; b, l0 U `. i! X 协议层% E/ _/ J4 a% h7 ~* _5 Q+ _ UFP # \3 ?$ c. M& I1 o- x n% x 上行端口; w/ ?8 ?" z( r; }% n USB 通用串行总线; W) f k6 N9 y( y0 a1 j2 }: m# S! y VDM ) M0 T, J! V5 ?% Y. i 供应商定义信息DocID029258 Rev 1 [English Rev 2] 7/35 UM2063 USB-C PD架构 34; z" Z& \% z/ R+ p, n 2 USB-C PD架构7 ^6 D2 w4 \' r2 S- f 2.1 * N: s5 `; ?+ Z- P# U 架构概述 i- F+ o+ F' {+ m( t+ v$ ^" G USB电力传输规范文档定义了PD设备(供电方或受电方)的通信层,如图 1中所示。$ d/ E: y& e, a 图1. USB电力传输架构1 Y9 z8 }; p; N5 I- s+ q 假定一个具有PD功能的器件至少具有一个端口,可以是:7 v t, }; `2 D3 i U, m • 9 v) {3 Q! j, v" X6 U 上行端口(UFP)5 m" M' [' t& l0 f) g, k – Sink电源(受电方)。% t' f5 I7 ~8 c# V8 M6 o4 {5 [ – 可选source电源(受电方 / 供电方)。0 L! s9 e3 Q; ]' ` – 可选择通过USB进行通信 – 利用SOP包通信。8 Y" y9 l" C' Z9 ^9 R • & } O: v1 v/ v) ?3 P; j) R 下行端口(DFP):8 i4 l/ C/ |4 r \8 u2 W7 P* } – Source电源(供电方)。 s' F4 k+ n. V* C – 可选Sink电源(供电方 / 受电方)。7 |3 e& d, j9 E2 z6 W – z; X% ]6 F5 l1 M- e, V- ]4 { 可选择通过USB进行通信。: N# r" c- l( r – 利用SOP包通信 – % z* a4 L' l8 _ 可选择利用SOP包通信 MS41457V15 g! r9 B/ Q% s: Y2 e9 P- s ᯯ⭫ב' M+ h1 d* S6 V. d+ I6 Y ⭫ᯯ/ D% A' p( W" }+ X VBUS/CC0 Y) L- d O. J: h J7 V% z 䇴༽ㆌ⮛㇗⨼ಞ- |0 F( _1 H$ b4 O% @; j ㆌ⮛ᕋᬄ$ _. A3 H" d4 f. E7 i6 C$ S অ䇤2 c9 A4 u Q/ o) O. ^ ⢟⨼ቸ 䇴༽ㆌ⮛㇗⨼ಞ ㆌ⮛ᕋᬄ! p7 J- ]! }1 G2 M$ {3 A! s অ䇤 ⢟⨼ቸUSB-C PD架构 9 M4 o8 d) d1 ?& Q: G1 o# I UM2063 8/35 DocID029258 Rev 1 [English Rev 2] 在USB产品可支持USB Power Delivery协议的场合中,USB DFP最初是Source,而USB UFP0 I; X1 X; q6 {: ?. t& B$ O 最初是Sink,尽管USB-PD可以实现Source/Sink和DFP/UFP的功能交换。 注: 在一对端口之间,每个PD通信中只有一个Source端口和一个Sink端口。 K: H& \% B0 B* M, [( J& v! ` 2.2 USB-PD层 9 E9 h: ^' _3 F/ q* D- y; S • 设备策略管理器(DPM) , m$ E5 n9 ~2 l# G: j DPM的作用是管理USB Power Delivery端口所用的电源。在供电方应用中,它为受电方2 S4 X: k1 q0 b5 y6 ?: c 送电,而在受电方应用中,则向供电方要电。 " l8 ?8 s! x F9 A 一旦建立了Explicit Contact,DPM还允许交换VDM消息。Device Policy Manger是 USB-C Power Delivery Stack的上一层级。 • 策略引擎(PE)层 . `% [2 t% _, L5 U6 @" c0 I Policy engine(PE)的作用是根据发送的消息及其预期响应来驱动消息序列。它支持$ `- t5 H7 c5 s7 }5 L, o3 Y 协商电源,为电力交换建立Explicit Contract。 接受或拒绝请求取决于DPM对特定电源配置文件的响应。 PE还可以处理Vendor Defined Messages流,允许根据供电方和受电方所支持的功能, 发现、进入或退出指定模式。0 t6 _1 F: |0 o y0 Q" Z% T+ F • 协议(PRL)层 , z3 z( L. N8 L9 z$ o) t5 T7 Y PRL层的作用是驱动消息构建、发送和接收(与消息性质无关)。它允许对消息流进行 检查,以检测通信错误。 PRL层是PE和PHY之间的包装层。 • PHY层 PHY层负责通过CC线发送和接收消息。它具有信号收发器,可在电线上叠加一个信号。# J5 g. n$ J# o& h! u; b+ _9 D 它负责管理线路上的数据并避免冲突,利用CRC检测消息中的错误。& r9 X) N' O1 E# } 注: 关于USB Power Delivery协议的更多信息,请参考第 1.2节中的官方规范文档。DocID029258 Rev 1 [English Rev 2] 9/35 UM2063 5 }. V7 c% q" i" e, }4 | S/ y5 h" S | USB-C PD架构 34! c0 F2 D' f: f, l5 F 2.3 / f# h3 j8 x% E 消息流 从设备发送的每个消息都应该由GoodCRC消息应答。这使得接收方可向发送方确认:其消息 已被正确接收,并将由上层进行处理。 接收到的错误消息应被忽略,在持续发生通信错误的情况下,软件复位可重置协议参数,以$ ~; k1 h0 U+ h: K# { 重新建立通信。如果错误仍然存在,则执行系统的硬件复位。 正常情况下,协商供电合同应按照图 2中所示的顺序进行。4 B& }5 x k2 }5 G" @ + b4 E1 x1 r) B; G1 g4 G6 u* U |
最全USB HID开发资料,悉心整理一个月,亲自测试
【源码】STLINK-V3MINI 高速USB仿真器,成功改刷【高速CMSIS-DAP】
STM32 USB CDC 虚拟多串口
实战经验 | 选择USBX模块生成USB CDC ACM无PD的项目
STM32 USB HID键盘例程
刘氓兔的杂谈【001】-片上USB 高速PHY
【经验分享】在进行 USB CDC 类开发时,无法发送 64整数倍的数据
在线直播|无需编写任何代码即可在STM32上实现USB-C Power Delivery
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
USB Audio设计与实现
微信公众号
手机版