UCPD特性
UCPD支持USB Power Delivery规范的物理层
支持Universal Serial Bus Power Delivery specification: Revision 3.0, V1.2;
支持Universal Serial Bus Type-C™ Cable 和 Connector Specification: Release 1.3;
主要功能是PD标准的物理实现,以CC线信号方式对应到Type-C线。
UCPD复位和时钟
使用了一个复位信号nPReset;
UCPD寄存器的时钟直接由PCIK提供;
主要功能模块的时钟则由UsbpdCIK供应
此时钟可被预分频;
接收器在输入时钟为6~18MHz范围内均可正常工作;
在6~9MHz时性能较低;
引脚
上拉和下拉电阻
UCPD工作在DFP模式,假设没有反插
UCPD工作在UFP模式,假设没有反插
上下拉电阻、死电池
当MCU未上电时,死电池的下拉电阻依然存在
当MCU未上电时,CC1和CC2之间表现为开路
MCU上电并启动后,先配置UCPD_CR寄存器的ANAMODE(SOURCE或者SINK)和ANASUBMODE
位,再使能SYS_CONFIG[USBPDstrobe]来使能CC的下拉电阻。
快速角色互换(FRS)信号及检测
FRS信号:
需要一个外部的N-MOS晶体管来将CC线拉到地,FRSTX控制外部对应的晶体管;
控制信号(FRSTX)表现为一段高电平。
UCPD_CR寄存器的FRSRXEN位用来控制快速角色互换检测。
UCPD数据控制器
数据控制器负责:
USB Type-C插拔检测并去抖,产生中断;
FRS检测,并产生中断;
CRC校验生成/检查;
4b5b编码/解码;
BPM编码/解码;
有序序列集合(在接收端可选择使用哪个序列);
在接收前导码阶段速率检测;
字节级的USB Power Delivery数据传输负载,可产生中断(PD中断或者DMA中断);
USB Power Delivery时钟分频(包含一个预分频器)。
电压监视和去抖
为了使Type-C的状态机实时保持最新状态,采用连续或者轮询的方式监控CC1和CC2上的
重大电压事件。
为了使软件只接收有意义的事件,去抖过滤掉杂波,它与PD数据收发活动一起协同工作。
PD协议
序列集
包含4个K-Codes的序列集合,当接收器检测到4个中的3个或者全部4个K-Codes匹配
时,则认定为合法序列。
PD消息包格式
PD消息包-复位
硬复位是指正在有消息传输的过程中以一种干净利索的方式来中断传输并复位。
线缆复位与硬复位类似,但不同之处在于它不需要以高优先级的方式来对待。
步骤:
等待25µs;
如果CC不是空闲,则等到它为空闲;
发送前导码,后面跟4个K-Codes表示的硬复位信号;
Disable掉通道(如停止发送和接收),复位物理层并通知协议层;
当协议层请求时重新使能通道。
PD消息包-BIST
取决于协议层请求采取何种具体的BIST,下列两种操作将执行:
发送BIST测试,写UCPD_CR寄存器的TXMODE和TXSEND位;
接收BIST测试,写UCPD_CR寄存器的RXMODE位。
UCPD支持两种模式:
BIST测试数据(192-bit模式),适用于发送和接收接收器的握手包,直接抛弃,并没有传递给协议层;
BIST搬运模式,仅适用于发送,CC线上对应的接收端在此状态下将直接忽略掉此消息。
Type-C状态机处理
对于一般的SOURCE和SINK应用场景(也包含DRP应用)。软件必须实现USB Type-C相关的状态机。
UCPD模块只控制CC线。
低功耗下的运行模式
提供低功耗操作接口,兼容stop模式,在低功耗模式下有能力检测USB PD消息和FRS信号,UCPD可以配置成唤醒MCU。
低功耗模式
中断