1 USB Type-C
1.1 电气参数
Rd: 5.1kΩ
Ra: 1.0kΩ
Rfrswap: 5Ω,for PD 3.0 FR_Swap
4b5b bit rate: 300kbps
BMC bit rate: 600kbps
Rp: Reference to the Figure 1-1

Figure 1-1 USB Type-C pull-up resistors

1.2 DELL USB PD
DELL笔记本USB PD充电适配器Type-C金属头外壳对地有一只1KΩ的电阻。

2 USB PD基本概念
2.1 4种PDO类型
Fixed Supply: CV(恒压)
Battery Supply: CP(恒功率)
Variable Supply: CC(恒流)
Augmented Programmale Power Supply: PPS (APDO)

APDO: Reference to 'Table 6-22 Programmable Request Data Object';电压步长20mV,电流步长50mA。
譬如请求6V @ 2A,那么Request消息的B19…9的值为300,而B6…0的值为40。
PPS模式时,需要Sink每隔10秒左右发送一个Request到Src,重新协商PPS电压电流对(参看Figure 2-3)。

USB PD充电选取不同的电压后,三段式AC充电器会调整开关电源的PWM占空比实现调节变压器次级绕组的输出电压。

Figure 2-1 APDO包格式

2.2 PD SNK RDY状态时,SNK请求改变充电电压电流
Reference to USB_PD_R2_0 V1.3 ‘p358, 8.3.2.8.4.1 Sink Gets Source Capabilities’
接着双方重新协商发送消息对,如下所示:
- Get_Source_Cap
- Request(Request对象索引Object Position从1开始,而且该索引位置必定是5V Fixed PDO)
- Accept
- PS_RDY

PR_Swap时,PD双方的Rp和Rd也要交换,其他message不依赖Rp和Rd。

2.3 FR_Swap消息序列
1) Source (Hub) shorts Rp to ground for ~100 us to signal Sink that is needs to supply power immediately.
2) Sink (Mobile Device) supplies 5V.
3) Rp/Rd are not changed at this stage as in a normal PR_Swap.
4) Mobile device then sends an FR_Swap message to resynchronize the power system.
5) Mobile device renegotiates the power contract as needed.

2.4 USB PD PDO协商流程
Type-C SS MUX切换时间:
- 识别到Rp或者Rd连接的时候
- VDM消息进入特定模式时

Figure 2-2 USB PD Message Sequence

Figure 2-3 QC4+充电器


2.5 SOP_P和SOP_PP控制器
远端SOP_PP控制器的存在与否,不是靠检测出来的,而是通过先与SOP_P的通信来获知SOP_PP的控制器是否存在,如果存在,VCONN Source设备才会继续发SOP_PP的报文类型与SOP_PP控制通信。

2.6 iPhone USB PD
使用的芯片是CYPD2104和BQ25890的组合,iPhone X整体PD快充的电源管理策略如下:
1)关机状态下不进行PD沟通,APPLE 2.4A协议生效。非APPLE 2.4A协议开机会慢一点;
2)开机后进行PD协商,依然选取PDO2,前面50%会以较高功率充电(最大不超过15W且视温度及电量自动调控功率);
3)充至50%-55%左右会降至9-11W(视温度及电量自动调控功率);
4)当温度达到一定时,iPhone X会强制降至极低的功率。待手机温度下降后以5W的功率进行后续充电;
5)充电至80%左右,选取PDO1降至5V。请注意此时依然是PD充电,只是选了5V档位减低手机端压降损耗;
6)充电至88%左右,开始进入CV段直到充满。

3 高通平台USB PD
3.1 SDM660的充电器探测流程
- PMIC首先做CC线探测,如果探测到PMIC as UFP,PMIC与此同时再探测CC线是否与VBUS短接,如果VBUS和CC短接,说明插入的是legacy cable(一般指USB-A to USB-C的cable),这个时候直接禁止USB PD和QC(由于CC和VBUS短接,大电流充电会导致电流灌到CC线而可能烧毁PMIC,所以代码默认是禁止QC的);
- 上一步成立的情况下(也就是PMIC as UFP)接着做APSD探测,这里充电器类型探测结果有如下2种状况:
1)如果探测到充电器类型是DCP,接着做USB PD(包括QC4 PPS)探测,假如不支持USB PD,接着rerun_apsd()做QC3 & QC2探测,倘若QC3 & QC2探测失败,说明该电源适配器既不支持USB PD (包括QC4 PPS) 也不支持QC3 & QC2,维持在DCP正常充电状态;
2)如果充电器类型不是DCP,直接做USB PD探测。

3.2 驱动代码
高通Type-C、APSD(BC1.2)和QC的驱动代码在drivers/power下;而USB PD的代码在drivers/usb/pd下面,所以你如果把drivers/usb/pd下的代码通过Makefile屏蔽掉,发现Type-C、APSD(BC1.2)和QC3和QC2充电器还是可以工作的;而此时用USB线连接手机和PC,会发现USB不枚举,原因是extcon的代码是集成在drivers/usb/pd下的,所以如果你既要禁止USB PD,又要让USB可以枚举,那么需要把drivers/usb/pd下的extcon代码移植到drivers/power下面。

3.3 PD消息收发何时触发中断
中断机制是Interrupt on GoodCRC(IoG),如Figure 3-1所示。
Figure 3-1 USB PD中断产生

3.4 充电器类型是DCP时代码逻辑
以下是用户外接一个电源适配器到手机后,Type-C、APSD(BC1.2)、USB PD (包括QC4 PPS) 和QC3和QC2的代码逻辑。

一个投票箱有多个投票client,并且对这些client制定规则。
Figure 3-2 Ballot Box Rules

Figure 3-3 USB PD Ballot Box


4 USB PD芯片介绍
4.1 STM32软件实施USB PD协议
USB PD通讯使用的是双相标记码(Bi-phase Mark Code,BMC,300KHz,bit rate 600kbps),此码是一种单线通信编码,数据1的传输需要有一次高/低电平之间的切换过程,数据0的传输则是固定的高电平或低电平。

TX:SPI1从模式MISO当作TX,SPI1 CLK通过配置TIM14产生,工作在600KHz(对应BMC 600kbps),ARR = 72Mhz / 600kbps,PSC = 0,72MHz频率输入,每计数12个(= 72MHz / 600kbps)触发产生一个SPI1从clk时钟。
SPI传输数据过程中总是先发送或接收高字节数据,每个时钟周期接收器或发送器左移一位数据。对于小于16位的数据,在发送前必须左对齐,如果接收的数据小于16位,则采用软件将无效的数据位屏蔽。

RX:TIM1 CH1输入捕获模式并用DMA接收数据。
输入捕获模式下:当捕获单元捕获到外来有效信号边沿事件(通过TIM1 CH1 Capture Compare Enable Register = 0xB设置上升沿和下降沿捕获,STM32库使用宏TIM_ICPolarity_BothEdge = 0x000A配置双边沿触发捕获),将此刻计数器的值锁存到CCR(Capture Compare Register,16bit)影子寄存器并自动将CCR影子寄存器的值拷贝进CCR预装寄存器,以供用户读取。DMA传输方式就是将CCR预装寄存器中的计数值传输到内存中。CCR寄存器中的计数值与上一次的计数值相减 x 计数频率的倒数 = 高电平或者低电平信号宽度。
输入捕获采样的频率就是定时器经过预分配器(PSC)之后的频率,譬如STM32F1 TIM1 CH1的计数器频率等于2.4MHz = 72MHz/(Prescaler + 1),那么计数器计数每增加4个就表示BMC(bit rate 600kbps)的一个bit。解码时,如果连续2次计数间隔之差都小于6,那么这2次计数间隔对应的4b5b bit是1,如果1次计数间隔之差大于6,说明这次4b5b bit是0。

https://github.com/alterapraxisptyltd/chromium-ec/blob/master/chip/stm32

MISO (DAT0): mi s əu
MOSI (CMD): m əu si
QUP:高通平台的SPI总线和I2C共用core和引脚,称为QUP(QCOM Universal Peripheral);而UART和QUP又共用引脚,并且称为BLSP

4.2 FUSB30X
Registers.Control.TOGGLE
Registers.Status.I_HARDRST
void autoVdmDiscovery(void)

4.3 DP Pin assignments
TA0356 - USB Type-C and Power Delivery DisplayPort Alternate Mode

USB SSTX - TX1
USB SSRX - RX1
DP0 - RX2
DP1 - TX2

5 Abbreviations
AEC-Q100:Automotive Electronics Council-Quality,汽车电子协会,主要规定汽车上IC要遵循的标准,也即是车规认证。汽车级EZ-PD CCG3PA控制器通过了AEC-Q100认证
ARC:Argonant RISC Core
CC2530:TI ChipCon2530
CCG2:Type-C Controller Generation 2
CCGP:USB Common Class Generic Parent,Linux内核类似的驱动就是usb_generic_driver
DWC2:Design Ware Controller 2,Apple的嵌入式设备,包括iPad和iPhone都是使用的DWC2
EZ-PD PMG1: Power Delivery Microcontroller Gen1 in year 2021
giveback:归还 - ehci_urb_done() -> usb_hcd_giveback_urb()。USB PD中的giveback(= 1)指sink会响应source的GotoMin请求,返还部分电力给source。
GRL:Granite River Labs,GRL东莞实验室
halt:停车或者站住,来自于德语;USB endpoint停止运行,返回stall handshake。recovery方法:control ep接收下一次SETUP PID时,自动清除halt标志;其它ep使用clear_feature复位ep halt。
HX3C:USB Type-C Hub with PD
ISP1161:Philips' Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?doc_id=1290054
MPS:Monolithic Power Systems,美国公司
PTN5100:Part Number
Quirks:the attributes of a device that are considered to be noncompliant with expected operation
RS507L:ASEMI整流桥RS507L,4pin接口;用途有LED,手机充电器整流
SL811HS:Cypress/ScanLogic 811 Host/Slave,性能上与ISP1161(Integrated host Solution Pairs 1161)相当
TDI:TransDimension Inc.,该公司首先发明了将TT集成到EHCI RootHub中的方法,这样对于嵌入式系统来说,就省去了OHCI/UHCI的硬件,同时降低了成本,作为对该公司的纪念,Linux内核定义了宏ehci_is_TDI(ehci);产品UHC124表示USB Host Controller;收购了ARC USB技术;现已被chipidea收购,chipidea又被mips收购
TLV:TI Low Value,高性价比
TPS:TI Performance Solution
USB BH reset:Bigger Hammer or Brad Hosler,表示warm reset;you may be confused why the USB 3.0 spec calls the same type of reset "warm reset" in some places and "BH reset" in other places. "BH" reset is supposed to stand for "Big Hammer" reset, but it also stands for "Brad Hosler". Brad died shortly after the USB 3.0 bus specification was started, and they decided to name the reset after him. The suggestion was made shortly before the spec was finalized, so the wording is a bit inconsistent.
USB PD:USB 电源交付
USB PDT:USB PD Test Instrument

USB PD快充协议相关推荐

  1. USB PD快充协议芯片

    USBPD协议芯片,USBPD快充协议芯片,USBPD3.0快充协议芯片,PD芯片RK837.支持USB PD3.0 Type C控制器协议芯片目前高科技设备肯定会越来越多,那么充电器的发展前景可谓是 ...

  2. USB TypeC接口和USB PD快充协议,有何区别?

    很多人一下子搞不清楚,怎么USB即是TypeC又是USB PD呢? 首先从USB标准演化来看这个问题: 通常提到USB几点几,一般说地是通信速度变快了. 那USB TypeC又是什么呢?它主要是指接口 ...

  3. xb8886a规格书_拆解报告:Baseus倍思Bipow 10000mAh USB PD快充移动电源N1PD

    拆解报告:Baseus倍思Bipow 10000mAh USB PD快充移动电源N1PD 2019-12-27 20:21:28 1点赞 6收藏 3评论 Baseus倍思一直致力于充电配件的研发与生产 ...

  4. “能握手才是好朋友(协议)”拓尔微高兼容性PD快充协议芯片 IM2406

    都是快充为何不通用? 根据"P=UI"公式,提升手机充电功率无非就是增大输入电流或输入电压的大小.但是,到底是以提升电压为主,还是增大电流为主,又或是二者同时增加? 由于业内没有统 ...

  5. 私人快充协议与PD快充协议的区别

    什么是私人快充协议,什么是PD快充协议?首先,协议是什么?一个简单的类比,它就像一个代码,双方都拥有相同的代码以此来建立联系.就手机而言,它代表了在手机和充电器内部集成的电源管理IC,特别是当手机和充 ...

  6. PD快充协议诱骗芯片XSP01 支持 iPhone无线充电9V或12V

    一.概述 XSP01是一颗符合PD.QC2.0.QC3.0.AFC.FCP协议的电源受电端协议芯片,可广泛应用于各个领域的各种产品,如无线充电.小家电.老化器.电子烟等. 1.1.芯片特性 支持PD快 ...

  7. 用PD线连接android和iphone,使用C-A转接头+A-L线能让iPhone USB PD快充吗?

    原标题:使用C-A转接头+A-L线能让iPhone USB PD快充吗? 从iPhone8/8Plus/X开始,苹果终于在iPhone上加入了USB PD快充,今年的iPhoneXR/XS/XS Ma ...

  8. 如何诱骗充电头PD输出?——PD快充协议受电诱骗方案CH224电路分享!

    现在主流手机都已经增加了PD快充协议,用来大幅度提升手机的充电效率,并且大多标配了PD快充充电头.这些充电头相当于一个智能充电器,在其功率允许的范围内,可以根据受电端的协议来约定自身对外输出多大的功率 ...

  9. USB PD快充取电协议触发诱骗芯片产品系列

    PD诱骗芯片是受电端的一种PD协议芯片,它内置了PD通讯模块,通过与供电端(如PD充电器)的PD协议芯片握手通信,可以申请出需要的电压给产品供电. PD协议充电器与传统的QC充电器最大的区别就是,PD ...

  10. 支持苹果18W-60W PD快充协议芯片JD6606S

    20020年Apple发布重大消息,新款手机iPhone 12将不标配充电器,以及快充PD支援由18W提升至20W.而宣告不标配充电器,则是协议芯片制造商的春天来临,天德钰科技在协议芯片已深耕许久,对 ...

最新文章

  1. CVPR 2021 | RfD-Net: 从点云中重建三维物体实例
  2. Linux 服务器更换主板后,网卡识别失败的处理方法
  3. python虚拟环境安装pyqt5_python虚拟环境安装pyqt5
  4. mysql类 php100_PHP100视频教程26:制作自己的PHP+MYSQL的类
  5. 为什么越来越多的企业使用互联网电话(VoIP)?—Vecloud微云
  6. Altium Designer 的使用笔记
  7. php图片添加角标,分享一段html在消息按钮上增加数量角标的实现代码
  8. JavaScript如何简单而准确地判断复杂数据类型
  9. 很遗憾!iPhone 12内部CAD设计图流出:刘海并未缩小
  10. PHP从入门到精通 第二版pdf
  11. 苹果浏览器Safari
  12. mysql 图片路径用什么类型_mysql数据库怎么存图片路径
  13. 【云扩RPA】Table
  14. CRF++安装教程(含Windows和Linux两个版本)
  15. 微信聊天记录成合法证据;中兴重启5G测试;京东推出机器人地图 | 极客头条...
  16. 象棋里的天地炮与重炮
  17. Linux如何查看磁盘/分区的UUID
  18. RTKLIB观测数据读取修改
  19. RV1126/RV1109芯片 人工智能安防开发板介绍
  20. 删除bing搜索中网站页面的方法

热门文章

  1. VM虚拟机中的centOS7如何安装linux QQ
  2. spring cloud 微服务调用链
  3. 打印目录和更新时就会出现“错误!未定义书签!”的解决技巧
  4. 财源滚滚的第三方支付牌照
  5. 终于搞懂了回车与换行的区别
  6. 《倚天》中张三丰一席话引发的思考
  7. 使用Python绘制二元函数图像
  8. split 逗号或分号_分号或不分号
  9. mysql 允许局域网连接,怎么设置Mysql允许局域网或外部连接的方法
  10. python虚拟变量回归_第二周:python实现线性回归(哑变量回归)的高效方法