STMCU小助手
发布时间:2022-7-26 20:50
|
前言 本文档介绍了面向STM32Cube的STM32 USB-PD(电力传输)软件扩展,参考X-CUBE-USB-PD。; `8 O, u- C6 W& _' X1 J N USB Type-C™是最新的USB连接器生态系统,能够满足平台和设备不断变化的需求,同时保持USB的功能优势。 USB Power Delivery协议嵌入到了USB Type-C™连接器中,从而可以轻松连接/断开USB线缆,实现很多数据传输以外的功能。此协议能够传输超过常规5 V / 1.5 A的电压/电流,最大功率供应为100 W。: C7 c7 i: C# R# k STM32 USB-PD包(X-CUBE-USB-PD)包含一个库(二进制格式)和以STM32F0设备作为USB Power Delivery微控制器的应用示例。可扩展到其他STM32系列。 该软件包包含的示例涵盖了大部分应用用例,允许用户基于USB-PD(供电方,受电方,和双角色端口)开发应用。 该库及相关示例可用于STM32F0设备以及专用P-NUCLEO-USB001扩展板(包含模拟前端和USB Type-C™连接器)。2 P4 L. i( n$ F/ F0 ^/ i 本文档介绍了如何使用USB-PD库实现常规用途,以及创建自定义应用。它包含了以下专题,以简化此库的使用: • USB-PD标准概述 • USB-PD库架构 • USB-PD堆栈使用描述 • 如何使用此库设置USB-PD应用。, I+ ^, x% |) f0 q3 s: v Q 2 y1 h* o; V" ?) Y8 y 1受电方概述 1.1缩写和缩略语 / i7 `3 i! K' \! o 1.2参考8 D. e5 R/ U8 i/ v8 n3 X! @( }8 i •通用串行总线电力传输规范,版本2.0,2016年3月25日: v8 M/ h& o! A/ k2 Y. i- H- h" S) r •通用串行总线Type-C线缆和连接器规范1.2,2016年3月25日 表1. 缩略语列表 术语 意义+ @: {3 I" Y; @ ]2 D API % }' K. \4 m3 O( } 应用编程接口: G" i# P/ d0 o; J8 F$ y: ^ CAD 线缆检测模块 CLI 命令行接口% Q: j0 Z% F# l6 g' p* E, Q/ } DFP $ ?% | Z, J2 M5 ?/ s' l 下行端口1 [* k2 y: @9 E7 V DPM 设备策略管理器/ a& k- I( {! F4 r- U2 M' C DRP 9 O+ Y0 Z: x, B( Q0 j 双角色端口 FW 固件$ Z/ s7 |+ O6 t HW 硬件! j V) x, B! d, S0 p: u PD 供电7 |# s4 g: c) N" t6 H* @. ] PE 策略引擎( p5 T# i$ P7 e6 \" I; d* s& d PRL 2 i- X8 p: c; o' v) J0 b! r 协议层 UFP , w8 O$ X" T6 z) n* G6 M 上行端口" O* d5 d2 _+ I4 d8 S USB # [+ H+ a, l& a" x N 通用串行总线( a: S6 ^! [; C* N1 P- F1 X VDM 供应商定义信息DocID029258 Rev 1 [English Rev 2] 7/35 UM2063 & ?2 g" x7 u4 a8 c: @2 s n4 I3 _& n USB-C PD架构 34 2 USB-C PD架构, x% Z# w4 N6 T. a$ } 2.1 架构概述 USB电力传输规范文档定义了PD设备(供电方或受电方)的通信层,如图 1中所示。 图1. USB电力传输架构$ l- d' p" j- R" t+ L) V% k 假定一个具有PD功能的器件至少具有一个端口,可以是:" I! |7 n' t7 n • ) h: P) n/ x& ? 上行端口(UFP)8 e- P, b' q' M/ d* W – Sink电源(受电方)。& @1 z: X& D* i2 Y – 可选source电源(受电方 / 供电方)。 – 6 E# v3 O) X O8 s" X, l x n 可选择通过USB进行通信4 l4 L" S- T: N4 L4 g – 8 `( O, K9 u' n* }* Q4 D 利用SOP包通信。8 ?' l: R* |% D • 下行端口(DFP):$ F, j/ t8 W! y6 _* z – Source电源(供电方)。 – 可选Sink电源(供电方 / 受电方)。. m: @4 {( G: t) |& e( y M% | – 可选择通过USB进行通信。 – 0 U# D. E7 h6 @* O0 Z9 \ 利用SOP包通信0 X4 a4 N6 G. \( u – 可选择利用SOP包通信8 @- M4 v x2 G% a: [& _* K$ |4 F: Y MS41457V1 ᯯ⭫ב* K* D3 \ q: C- }/ V* ^ ⭫ᯯ VBUS/CC6 m2 p" i6 g/ }1 [ 䇴༽ㆌ⮛㇗⨼ಞ ㆌ⮛ᕋᬄ অ䇤. s6 X+ n* k$ J ⢟⨼ቸ- S/ a! n9 t& {% ^& K& c, n" I1 G 䇴༽ㆌ⮛㇗⨼ಞ: o1 l0 g7 ~8 f$ y5 {& D3 k8 c ㆌ⮛ᕋᬄ অ䇤 ⢟⨼ቸUSB-C PD架构 UM2063+ I9 n& q2 B9 z" G- ]' [( v7 e 8/35 DocID029258 Rev 1 [English Rev 2]3 k) H0 Q+ b. ^0 b! H 在USB产品可支持USB Power Delivery协议的场合中,USB DFP最初是Source,而USB UFP 最初是Sink,尽管USB-PD可以实现Source/Sink和DFP/UFP的功能交换。- p2 W& t( j3 z) W. B6 w 注: 在一对端口之间,每个PD通信中只有一个Source端口和一个Sink端口。# f% j- K9 G3 @6 }9 Q. C% V 2.2 USB-PD层 • 设备策略管理器(DPM) DPM的作用是管理USB Power Delivery端口所用的电源。在供电方应用中,它为受电方 送电,而在受电方应用中,则向供电方要电。 + ~8 d* X! U# O7 a5 _6 R 一旦建立了Explicit Contact,DPM还允许交换VDM消息。Device Policy Manger是$ F( K6 K5 Y. E' f$ [ R6 {9 F USB-C Power Delivery Stack的上一层级。 • " ^ @. Z/ h* A6 E/ M4 R V2 ] 策略引擎(PE)层 Policy engine(PE)的作用是根据发送的消息及其预期响应来驱动消息序列。它支持 协商电源,为电力交换建立Explicit Contract。 ?+ }, t3 Q8 y7 f. W7 G 接受或拒绝请求取决于DPM对特定电源配置文件的响应。 - W6 i& u8 u# a" h PE还可以处理Vendor Defined Messages流,允许根据供电方和受电方所支持的功能, 发现、进入或退出指定模式。. X% N9 D( ?" G+ w- D( w • 0 Y5 G$ j6 }. `/ j _ 协议(PRL)层 PRL层的作用是驱动消息构建、发送和接收(与消息性质无关)。它允许对消息流进行 检查,以检测通信错误。 PRL层是PE和PHY之间的包装层。: p9 C0 p8 u3 H5 }6 Y# Y2 m% w • . O z' u0 J5 P% r( _3 Q PHY层 PHY层负责通过CC线发送和接收消息。它具有信号收发器,可在电线上叠加一个信号。 它负责管理线路上的数据并避免冲突,利用CRC检测消息中的错误。 注: 关于USB Power Delivery协议的更多信息,请参考第 1.2节中的官方规范文档。DocID029258 Rev 1 [English Rev 2] 9/35 UM2063 USB-C PD架构2 [' i* `$ q0 E5 o8 e 348 Q& s( J. V) n: T2 ?# S4 Z1 f 2.3 % A' C! n3 h0 ~' ]# A! [ 消息流 从设备发送的每个消息都应该由GoodCRC消息应答。这使得接收方可向发送方确认:其消息; `& h6 `( E; B8 m. S) |8 z 已被正确接收,并将由上层进行处理。 接收到的错误消息应被忽略,在持续发生通信错误的情况下,软件复位可重置协议参数,以 重新建立通信。如果错误仍然存在,则执行系统的硬件复位。. ~, F5 f+ b t 正常情况下,协商供电合同应按照图 2中所示的顺序进行。 |
最全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设计与实现
微信公众号
手机版