admin 管理员组文章数量: 887021
2024年1月24日发(作者:生死谍变 在线)
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
45 USB Type-C™/ USB电源传输接口(UCPD)
45.1介绍
USB Type-C / USB电源传输接口支持USB电源传输规范的物理层。
-支持通用串行总线电源传输规范:2017年1月12日,修订3.0,V1.1
-支持通用串行总线c型电缆和连接器规格:发布1.2版,2016年3月25日
主要功能是物理层实现功率传输(PD)规范,CC信令方法(不是VBUS),因此仅限于c型电缆。
45.2 UCPD的主要特点
UCPD控制器符合- USB Type-C Rev. 1.2和
- USB电源传输Rev. 3.0规格
UCPD控制器采用特定的I/Os支持USB Type-C和USB电源传输要求,具有:
- USB Type-C上拉(Rp, all values)和下拉(Rd)电阻-“死电池”支持
- USB电源传输消息传输和接收- FRS(快速角色互换)支持
数字控制器处理得特别好
- USB类型c级检测与反弹跳,产生中断- FRS检测,产生中断
- USB电源传输负载字节级接口,产生中断(DMA兼容)
- USB电源传输定时分配器(包括时钟预定标器)- CRC生成/检查
- 4 b5b编码/解码
序集(在接收端有一个可编程的序集掩码),在接收端进行序集频率恢复
该接口提供与停止模式兼容的低功耗操作,保持检测传入USB电源传输消息和FRS信令的能力。
RM0440牧师1
1999/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
45.3 UCPD实现
表412。UCPD实现
UCPD特性
UCPD1
X
1
死电池支持通过DBCC引脚
FRSTX
微调是全自动的(不需要SW覆盖)
X
-
离散组件PHY选项支持
1. " X " =支持," - " =不支持
45.4 UCPD功能描述
USB电源传输外设提供了USB电源传输规范物理层的硬件支持。
支持:
- USB电源传输修订3.0,包括快速角色互换-与ST的集成芯片物理层,
-直接检测c型电压电平
-支持功率传输“快速角色互换”(Rx端)
-“快速角色互换”Tx控制生成(如果需要)连接到外部mosfet的CC线路
UCPD Tx侧的主要特点:
-字节数据接收(来自协议层)序言生成
负载数据BMC(双阶段标记)编码的4b5b编码
计算并附加CRC
帧间间隙的硬件管理(为保证这一点,将延迟Tx消息)
在CC行上监视空闲状态的硬件(如果没有立即空闲,则将丢弃Tx消息)
硬件支持“硬复位”机制(中断任何正在进行的Tx消息)
使用BMC编码,在c型USB连接器的CC引脚上传输数据包(序言、SOP*、有效负载、CRC和EOP)
2000/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
UCPD Rx端主要特点:-序言恢复
- BMC(双相标记)解码
- 5b4b解码获取有效载荷数据- EOP检测
- CRC校验(基于EOP检测)
- k码有序集检测:硬件检测5个SOP和2个复位集,加上两个软件定义的模式(只允许4个k码中的3个存在)
按标准规定正确接收)
其他主要特点:
- Type-C上拉和下拉电阻支持(所有三个Rp值和Rd) -死电池Rd支持
- c型电压电平检测
-支持功率传输BIST模式(BMCsignaling case最低要求):BIST载波模式2(仅限Tx);BIST测试数据(Tx和Rx)
45.4.1 UCPD框图
UCPD的外部引脚列于下表413:
RM0440牧师1
2001/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
销的名字
表413。UCPD针
信描述
号类型
UCPDx_FRSTX
数通用串行总线快速角色互换信令控制,仅适用于DRPs。控制信号(活动高)为外部NMOS字
下拉活动CC线到GND(快速角色交换信号)。典型的应用程序将有两个这样的MOS(一个用于CC1,一个用于CC2)。最初,这两种可能的映射都应该处于GPIO模式,以低驱动。安装好FRS脉冲信号后,应通过选择该信号作为GPIO引脚的活动“备用函数”(参见GPIO章)重新映射该信号。电缆的方向(通过Type-C状态机找到,将确定要映射的正确CC线)。不活动的CC引脚应该使用GPIO模式以逻辑0级驱动。
UCPDx_CC1
模通用串行总线c型配置控制线1。用于连接USB Type-C连接器的CC1线
拟
模通用串行总线c型配置控制线2。用于连接USB Type-C连接器的CC2线
拟
UCPDx_CC2
UCPDx_DBCC1
模通用串行总线c型配置控制线1号,电池断针。如果需要无电支持,UCPDx_DBCC1必拟
须连接到USB Type-C连接器的CC1行
UCPDx_DBCC2
模通用串行总线c型组态控制线路2,电池断针。如果需要无电支持,UCPDx_DBCC2必拟
须连接到USB Type-C连接器的CC2线
关键内部信号如下表所示:
表414。UCPD内部信号
内部信号的名字
信号类型
描述
nPReset
数字输入
复位销
PClk
数字输入
用于寄存器的APB总线时钟
UsbpdClk
数字输入
内核时钟
TxDmaReq
数字输出
DMA请求(BMC Tx)
TxDmaAck
数字输入
DMA确认(BMC Tx)
RxDmaReq
数字输出
DMA请求(BMC Rx)
RxDmaAck
数字输入
DMA确认(BMC Rx)
IrqRxHrst
数字输出
连接中断输出(特定于硬复位)-不使用
IrqOther
数字输出
中断输出(其他中断)-未使用
IrqAll
数字输出
连接到NVIC的中断输出(所有中断)
IrqAsyn
数字输出
连接到EXTI的输出
ClkReq
数字输出
连接到RCC的输出
2002/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
45.4.2 UCPD复位和时钟
采用单重设信号npre (APB总线重设)。
UCPD的寄存器部分直接在PClk上计时。
主要功能部分在UsbpdClk上进行时钟控制。可以使用PSC_USBPDCLK预缩放到更合适的频率[2:0]。
接收器的设计工作为任何时钟输入从6到18兆赫。性能可能在6到9兆赫的范围内较低。
下图显示了与时钟相关的主要元素以及需要设置为适当值的其他计时元素。
BMC接收器(9到18兆赫
MSv45536V1
参考USB PD规范,以编程的固定延迟。注意,对于tTransitionWindow,特别是对于tInterFrameGap,应该考虑时钟频率的不确定性,以便在所有情况下都考虑时钟的时间。
45.4.3物理层协议
物理层覆盖USB电源传输规范下的信令。它的主要功能(传输端)是根据定义的包格式形成包
一般包括:-序言
-数据包开始(有序集)-有效载荷:报头
-有效载荷:数据(含编码数据)
-循环冗余校验(CRC)信息-数据包结束
在CC引脚上传输之前,完成了双相标记编码(BMC)的最后一步。还需要满足时间要求。
RM0440牧师1
2003/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
在接收端,主要任务是提取:
数据包(有序集)信息的开始
有效载荷:头
-有效载荷:数据(解码)
它还检查:- CRC的正确接收
-封包结束
接收器基本上是发射机的一个反向过程,因此从BMC解码器开始。
符号编码
除序言外,所有符号均以4b5b格式编码。
符号按照表415:4b5b符号编码表所示规格编码为4b5b:
表415。4b5b符号编码表
的名字
4 b
0
0000
1
0001
2
0010
3.
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
一个
1010
B
1011
C
1100
D
1101
E
1110
F
1111
5 b
符号描述
11110
十六进制数据0
01001
十六进制数据1
10100
十六进制数据2
10101
十六进制数据3
01010
十六进制数据4
01011
十六进制数据5
01110
十六进制数据6
01111
十六进制数据7
10010
十六进制数据8
10011
十六进制数据9
10110
十六进制数据
10111
B十六进制数据
11010
C十六进制数据
11011
十六进制数据维
11100
十六进制数据E
11101
F十六进制数据
Sync-1
K-code
11000
Startsynch # 1
Sync-2
K-code
10001
Startsynch # 2
RST-1
K-code
00111
硬重置# 1
RST-2
K-code
11001
硬重置# 2
bgi的
K-code
01101
数据包的EOP结束
保留
错误
00000
不要使用
2004/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
命令集
表415。4b5b符号编码表(续)
5 b
的名字
4 b
符号描述
00001
不要使用
保留
错误
00010
不要使用
保留
错误
00011
不要使用
保留
错误
00100
不要使用
保留
错误
00101
不要使用
保留
错误
Sync-3
K-code
00110
Startsynch # 3
01000
不要使用
保留
错误
01100
不要使用
保留
错误
10000
不要使用
保留
错误
11111
不要使用
保留
错误
一个有序的集合由4个k代码组成,如下所示。数据包格式如图674所示:
b4
位0
表416列出了定义的有序集。这个列表定义了所有可能的SOP*序列。
在物理层,只有硬重置具有特殊的行为(硬重置具有更高的优先级,因此能够中断正在进行的Tx消息)。
RM0440牧师1
2005/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
表416。命令集
在接收端,按照表417中定义的规范对有序集进行验证:
表417。有序集的验证
总之,物理层必须接受3/4个正确k代码的任何组合。
传播一些命令
传输大小在表418所示的规范中定义。
表418。数据大小
用于传输比特的顺序如图675所示。
2006/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
数据包格式
数据包格式如图676所示。这也详细说明了编码,数据的来源(例如物理层/协议层)。
RM0440牧师1
2007/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
数据包格式:硬复位(特殊情况)
在所有有序集中,“硬复位”需要物理层硬件的特殊处理。这是因为这是一个更高优先级的代码,应该直接执行
(以干净的方式)中断正在进行的传输。
物理层规范这样描述行为:
4. 如果物理层当前正在发送消息,则发送一个EOP K-code中断消息,并丢弃其余的消息。
5. tInterFrameGap等。
6. 如果CC不是空闲的,则等待它变为空闲
7. 发送前序后接4k码的硬复位信号。
8. 禁用通道(即停止发送和接收),重置物理层,并通知协议层物理层已重置。
9. 当协议层请求时重新启用通道
分组格式:电缆复位
电缆复位的格式类似于硬复位,但不像硬复位,它不需要特定的高优先级处理。
格式如图678所示
2008/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
避碰
物理层考虑到在Tx消息的最后一个传输位和后续消息的第一个传输位之间的延迟“tInterFrameGap”。
在开始传输之前,它还检查CC线路的“空闲”状态。的定义
“空闲”小于“nTransitionCount”(即3)转换“tTransitionWindow”(即12至20μs)。为了避免PD3.0中的冲突,还需要管理Rd值(源),并为这些Rp修改(在sink)监视Type-C电压级别。
物理层信令方案
实现了BMC方案。
阿拉伯学者:一般
根据协议层需要的BIST操作,可以运行以下操作之一:
- Tx BIST模式测试,通过编写TXMODE和TXSEND实现
- Rx BIST模式测试,通过将RXMODE写入RXBIST的正确值来实现。
UCPD支持的两种可能模式(对应于“BMC”模式)是:
BIST测试数据(192位模式),适用于Tx和Rx。对于Rx,
消息将被接收(但是被丢弃而不是传递到协议层,协议层仍然必须生成一个好的crc Tx消息
确认)。
BIST载波模式2(单模式,无限长消息),只适用于Txonly, Rx对Tx在这种模式下应该简单地忽略CC行
状态。
BIST模式选项1:测试数据模式
注意,测试数据模式在UCPD中并不是一个特例。BIST测试数据包帧格式如图679所示:
头
数据对象=7序言(接收方培训)SOP*(数据包开始)
BIST测试数据BDO
BIST测试数据(192位)…
序文,不使用物理层提供的4b5b编码,使用4b5b编码
CRC EOP(数据包结束)…
图679。BIST测试数据帧
MSv45542V1传说:
协议层提供,用4b5b编码
这是一个固定长度的测试数据模式。在现实中,唯一标志着它的不同的方面
从图676中已经显示的一般包格式来看:包格式是报头的内容。当UCPD通过编程接收Tx头内容时(这很简单
RM0440牧师1
2009/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
将其视为有效负载的一部分),只有这种编程(而不是块的行为)将普通包与BIST测试数据包区别开来。
BIST选项2:载波模式2
当需要时,BIST测试模式将发送一个1010的交替模式
不断地重复。由于该模式用于信号分析,所以它是稳定的,(在USB PD规范的V1.0中)没有定义长度。从USB PD规范的V1.1开始,协议层定义了一个计数器,它定义了什么时候应该使用这种模式
关闭。
注意,要退出此发送(根据USB PD规范的要求),在适当的延迟之后,应该通过UCPDEN禁用UCPD。
45.4.4 UCPD BMC发射器
BMC(双相位标记编码)发射机负责生成正确的Tx
消息,尊重时间,并包括以下方面的功能的Tx消息内容:
- 4 b5b编码
- CRC生成
-双相标记编码(BMC)
发射机结构如图681所示:
2010/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
图681。UCPD BMC发射机结构
时钟域边界:UsbpdClk;Usbpd_HalfbitClk (= UsbpdClk /)
UCPD_CFG1/2/3寄存器
USB PD发射机
BMC编码器
该方法由IEC规范定义:
- IEC 60958-1数字音频接口部分:1通用版3.0 2008-09
UCPD基于一个简单的(积分)时钟分配器生成所有相同的比特
长度(不包括二阶抖动问题)。半比特时间名义上正好是半比特时间,SoC中只有上升/下降边缘不匹配的二阶效应
对于半比特,在高时间和低时间之间做一个小的偏差。控制半位定时的字段是HBITCLKDIV。
发射机定时及避碰
硬件支持的防撞功能是作为一个功能的一半位时间的发射机。实现两个计数器:
- tInterFrameGap:通过IFRGAP(预定义值,可以修改)
- tTransitionWindow:通过TRANSWIN(预定义的值,可以修改),这两个计数器一旦设置正确,就会产生帧间间隙。
发射机硬复位
为了方便生成硬复位,使用了TXMODE字段的特殊代码。不需要编写其他字段。
在编写正确的代码时,硬件将强制硬复位Tx下的正确
(最佳)对正在进行的Tx消息的计时,该消息(如果仍在进行中)将通过截断当前序列并直接附加一个EOP K-干净地终止
代码序列。不会生成与此截断事件相关的特定中断。
RM0440牧师1
2011/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
错误情况下的发送器行为
运行不足的情况(TXUND中断)可能意外发生,在这种情况下,UCPD将缺乏(正确的)Tx有效载荷,无法完成Tx
信息正确。这是一个严重的错误(如果发生这种情况,软件将无法及时响应)。因此,硬件将确保消息末尾的CRC是不正确的,从而确保消息在接收端被丢弃。
45.4.5 UCPD BMC接收器
UCPD BMC接收器负责这些主要功能:-序言检测/定时推导
- BMC解码- 4b5b解码
- k码有序集识别(3 / 4正确基)- CRC校验
- - - - - - SOP检测
- EOP检测(由于硬复位特性,即使在正常行为之前也应始终处于活动状态)
一旦启用了UCPD(通过UCPDEN),接收器就会被激活,但是在所有传输期间都处于非活动状态。在启用时,为了干净地启动,它将首先等待空闲行状态,然后再尝试接收消息。
UCPD接收机高层架构如图682所示:
2012/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
UCPD接收器:CRC校验器
接收到的位被送入CRC检查器,CRC检查器在
接收有效载荷位流。最后,32位CRC也被输入到逻辑中
EOP检测(5位)中断进程,并检查固定的剩余状态,确认正确接收负载(实际上剩余值是0xC704DD78)。
此时UCPD将引发中断RXMSGEND。如果CRC不正确,那么RXERR将被设置为true,接收数
据应该被丢弃。
在正常操作下,这个中断之前已经被确认并被清除。如果不是这样,将生成一个不同的中断RXOVR来代替
RXMSGEND。
UCPD接收机:有序集检测
该函数将检测由四个5位k码组成的不同有序集。一旦进入序言,我们将打开一个滑动窗口检测有序集(4个单词,5位)。
RM0440牧师1
2013/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
因此,检测到的有序集将包括所有SOP*代码:
SOP SOP SOP”
但也
硬复位电缆复位SOP ' _Debug SOP " _Debug
寄存器USBPD1_RX_ORDEXT1和USBPD1_RX_ORDEXT2定义了两个扩展
UCPD接收机:EOP检测和硬复位异常处理
EOP是一个固定的5位k代码,标记消息的末尾。
要求发射机发送硬复位的方式(应该是以前的一种)
消息传输仍然在进行中)是前面的消息被EOP提前截断。
如果忽略硬复位,则EOP检测只能在预期值下进行
时间。然而,由于硬复位问题,当Rx消息到达时,EOP检测器必须处于活动状态。当检测到“早期EOP”时,截短的Rx消息将会
立即丢弃。
UCPD接收器异常处理:截断或损坏的消息异常
一旦检测到有序集,根据消息的不同,可能会接收到使用CRC和EOP完成的数据字节。如果在这些阶段的任何时候,发生了一个错误条件。
-在超过“1 UI”长度(确切值)的一段时间内,该行将变为静态
此条件的阈值不是临界的,但异常应该发生在3 ui之前),
在这两种情况下,接收方退出当前消息,将RXMSGEND提升为RXERR为1。
UCPD接收机异常处理:简短的序言或不完整的有序集异常
在特殊的情况下,接收机看到少于一半的预期序言,频率估计允许正确的bmc解码成为不可能的。即使全部
可以看到前导,允许频率估计,但在线路变为静态之前没有完全接收到有序集,接收状态机将不会启动。
在这两种情况下,时钟恢复/BMC解码器将重新启动,首先检查空闲状态,然后是序言,然后估计频率。
2014/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
45.4.6 UCPD Type-C上拉(Rp)和下拉(Rd)
UCPD通过ANAMODE[1:0]和ANASUBMODE[1:0]提供了对这些电阻的简单控制。如果只使用一个CC引脚,则可以使用CCENABLE[1:0]禁用对其中一个引脚的控制来优化功耗。
如果UCPDx_DBCC1和UCPDx_DBCC2引脚分别连接到UCPDx_CC1和UCPDx_CC2引脚上,当MCU处于无电源状态时,仍然会出现“死电池”Rd。电源到达后,单片机启动,所需
在设置PWR_CR3寄存器的UCPD_DBDIS位之前,应该将行为(例如接收器)编程到ANAMODE和ANASUBMODE中,以删除死电池Rd默认行为,并允许刚刚编程的值生效。
如果不需要死电池行为(例如,仅对源产品),则UCPDx_DBCC1和UCPDx_DBCC2引脚都应该绑定到地面。当电源到达并MCU启动后,应该将这种情况下所需的行为(例如源)编入程序
在设置PWR_CR3的UCPD_DBDIS位之前,使用ANAMODE和ANASUBMODE
注册以删除已死电池Rd默认行为,并允许刚刚编程的值生效。
使用待机低功耗模式是可能的水槽在unattached状态。
45.4.7 UCPD型c电压监测与去跳
为了使c型状态机保持最新,监测重要电压
CC1和CC2引脚上的事件(对应于那些状态机)是可用的,可以通过连续或轮询来完成。
为了只向软件显示重要事件,执行了一个反弹跳,也与功率传输Tx/Rx活动协调。
CC引脚上的静态电平是通过物理层上的阈值检测器根据这些设置确定的,从而在寄存器中给出电压范围值
TYPEC_VSTATE_CC1/2[1:0],便于在其中实现Type-C状态机
软件,并允许电缆的方向,以确定(PHYCCSEL仍然需要相应地设置,以便使用正确的引脚之间的CC1和CC2的电力输送
信号)。反弹跳是为了防止不表示类型c (DC级别)更改的快速转换,例如在power delivery消息传递期间。
建议使用轮询(在轮询之间关闭Type-C检测器,只在轮询时打开),而不是从STOP中唤醒(这需要永久使用Type-C检测器)
上)。这将优化功耗。
45.4.8 UCPD快速角色互换(FRS)信令与检测
FRS信号
如果需要FRS信号,则需要外部N-MOS晶体管,以便在适当的CC线路上将低电阻拉至GND。
为了表示快速角色交换(FRS)条件,应该将1写入FRSTX。这将
生成条件,硬件保证长度。控制信号(FRSTX)将脉冲(在1)的正确时间。
RM0440牧师1
2015/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
FRS检测
FRS监视由bit FRSRXEN启用,只有在写入正确的PHYCCSEL值之后才能启用(这是建立CC位置的结果)
取决于电缆的方向)。
45.4.9 UCPD DMA接口
DMA在UCPD中实现,当启用字节级中断处理USBPD1_TXDR和USBPD1_RXDR寄存器时(Tx和Rx数据寄存器,每个字节)
不再需要。
通过启用位TXDMAEN和/或RXDMAEN, DMA可以独立地激活Tx和/或Rx功能。
45.4.10从车站醒来
对于功耗优化,能够使用停止模式并等待CC引脚上的事件唤醒MCU运行是很有用的。
为了实现这一点,必须首先通过向WUPEN写入1来启用它。引起唤醒的事件可以是:
Events BMC 接收器 (RXORDDET ;RXHRSTDET), hardwareenable PHYRXEN
Event FRS 探测器 (FRSEVT), 硬件 上 启用 FRSRXEN
Events Type-C 探测器 (TYPECEVT1 ;,硬件支持CC1TCDIS;CC2TCDIS
45.4.11 UCPD编程序列
下面的例子说明了UCPD的正常使用。——配置UCPD
——允许UCPD
并行启动两个进程:
-[按需从协议层]发送Tx消息
-轮询(或等待中断)有关Rx消息和恢复细节移交给协议层
永远重复上面的步骤。
初始化阶段
使用下面的顺序清洁启动:
-通过编写寄存器UCPD_CFG初始准备所有时钟分配器值-通过UCPDEN启用该块
类型c状态机处理
对于源、接收的一般应用情况(以及可以在源、接收之间切换的双角色端口),软件必须实现相应的USB Type-C状态机。
基本编码如表419所示:ANAMODE, ANASUBMODE编码,TYPEC_VSTATE_CCx链接:
2016/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
表419。编码ANAMODE, ANASUBMODE,并与TYPEC_VSTATE_CCx链接
ANAMODE
ANASUBMODE 1:0 []
笔记
TYPEC_VSTATE_CCx 1:0 []
00
01
10
00:禁用
禁用
N /一个
vRa (Def) vRa [1.5] vRa [3.0]
vRd[1.5] vRd[3.0]
0:来源
01:默认USB Rp
11:3.0卢比
xx
vRa
vRd-USB
vrd - 1.5
1:沉
为了禁用其中一个CC引脚上的任何上拉/下拉,还提供了一个CCENABLE字段。
vrd - 3.0
11
注意:Type-C状态机不仅依赖于CC pin级别,还依赖于VBUS的存在
检测(sink模式),当处于源模式时确定VCONN产生和VBUS状态(ON/OFF/+电压电平);放电)。UCPD不直接控制VBUS
发电电路或VCONN负载开关(使VCONN电源发电机
,但应用程序需要这些输入和控件才能正常工作。
通用编程序列(UCPD之前已经配置好,即CFG寄存器,然后启用)
第一个程序ANAMODE;ANASUBMODE基于当前在USB Type-C状态机中的位置(以及当前广告的情况下a
源)。这将在CC引脚上打开适当的上拉/下拉,并定义TYPEC_VSTATE字段表示的电压级别。请注意,
在编程之前,物理层是有效关闭的
读取TYPEC_VSTATE_CC1/2以确定初始的Type-C状态(例如,本地源是否连接到远程接收器)
如果没有连接,则等待连接事件
假设检测到连接并假设本地电源传输
功能实现后,开始发送/接收Power Deliverymessages
当一个新的中断/事件发生在显示稳定电压变化的PHYEVT1/2上时,重新评估其含义并将该输入输入到Type-C状态
机
需要在三种可能的Rp值(默认为usb / 1.5A / 3.0A)和与其连接的接收器之间进行更改的源的情况:
- [Source]只需重新编写ANASUBMODE[1:0]
-[从那时起的Sink行为]将发生PHYEVT1/2, TYPEC_VSTATE1/2也将相应地改变
编程的双角色端口(DRP)切换从源到接收器:
-简单地重新编写ANAMODE;ANASUBMODE启动新的行为详细的编程序列(例子):
RM0440牧师1
2017/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
表420。c型序列(来源:3A);连接电缆/水槽(Rd在CC1上;Ra CC2)
ANAMODE c型状态;ANASUBMO DE CCENABL E PHYCCSE L RDCH CC[x] VCONN EN Event =>转到下一行注释
未婚。SRC 0:来源;11:两者均启用0(不在乎)00:[neither] PHYEVT 1: [VRd-3A0]等待sink连接检测;见CC1
[EVT1]
0:来源;11:Rp3A0 [SinkTxOK]
00: [Norm al]定时器(100ms),没有与PHY断开的PHYEVT x本地CC2 (VCONN开关在外部将tsvconn源连接到CC2;继续监测PHYEVT1
10: [CC2
active]
SRC
[VCONN =>
CC2]
10:Rp1A5
[SinkTxNG]
CC1]
SW
timers
Source wants to initiate
message sequence
(SinkTxNG condition set
first)
0:来源;11:Rp3A0 [SinkTxOK] PHYEVT 1: [Vopen - 3a0]等待Sink断开连接(Vopen on CC1)
未婚。SRC 0:来源;11:Rp3A0 0: [Norm al][详见表第一行]
正常情况下USB PD传输
当接收到来自协议层的消息(即要发送的消息)时,编写以下寄存器来准备Tx消息内容:
- UCPD_TX_ORDSET - UCPD_TX_PAYSZ
消息发送可以通过写入bit: - TXSEND来触发
2018/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
为TXMODE字段设置适当的值。
注意,中断TXIS将触发,以指示TXDR缓冲区的可用性,当这种情况下,写入下一个数据字节到:
——UCPD_TXDR
注意,相同的中断将根据负载中的字节数重复。
如果所有操作都正确,一旦CRC被发送,中断TXMSGSENT将被设置。
正常情况下USB PD接收
接收消息序列的开始通知由UCPD_SR(位RXORDDET)上的中断触发。
恢复资料的方法如下:
- UCPD_RX_SOP(关于中断RXORDDET)
- UCPD_RXDR(在中断RXNE上,每个字节重复)- UCPD_RXPAYSZ(在中断RXMSGEND上)
注意,如果看到RXERR为真,则必须丢弃前面从上面的UCPD_RXDR读取的数据。
假设CRC正常,那么接收到的数据将被传递到协议层。
出于调试原因,可能需要跟踪已接收到多少不正确的k代码的统计信息(仅当3/4 k代码如
规范)。这可以通过以下领域来实现:
- RXSOP3OF4(单比特表示存在损坏的k代码)
- RXSOPKINVALID(确定序列中哪个(如果有的话)已损坏)
硬复位传输(特殊情况)
一旦知道需要传输硬重置,立即写入
UCPD_CR。TXHRST将强制内部状态机生成正确的序列。注意,在这种精确的情况下,不需要更新UCPD_TX_ORDSET的值(硬重置的正确代码由UCPD发送)。
硬复位的USB电源传输规范定义要求,在正在进行的消息传输的情况下,硬复位优先。例如,在这种情况下,UCPD将截断当前消息的有效负载,并将EOP附加到末尾。
注意,没有通过寄存器(例如TXMSGSEND)发出通知。这是因为硬重置优先于任何先前的活动
因此,知道它是否已经完成不再重要)。
使用DMA进行传输
通过在UCPD_CR寄存器中设置TXDMAEN位,可以为传输启用DMA(直接内存访问)。
RM0440牧师1
2019/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
为每一个信息:
Prepare 整个 消息 在 内存 中 (starting 两 头 bytes)
Program DMA 操作 长度 对应 两 个 报头 字节 + 4 *#data 对象
Write TXSEND 发起 消息 传输
If TXMSGDISC 然后 回到 前 一 行 (TXSEND)
Wait DMA 转帐 完成 中断 (i.e. 当 最后 Tx 字节 写 toUCPD)
TXMSGSENT 出现 中断
Double-check 后续
DMA用于接收
通过在UCPD_CR寄存器中设置RXDMAEN位,可以为接收启用DMA(直接内存访问)。
每当Rx消息出现时
Program DMA 接收 操作 (and 备用 buffer) 有点 超过 最大 可能 消息 (length support) 取决于 扩展 信息
After 接收 RXORDDET, DMA 操作 应该 开始 在 后台 运行
RXPAYSZ 阅读
On 接待 RXMSGEND interrupt,
Double-check RXPAYSZ vs 的 # DMA Rx 字节 (should 对应 但 DMA 读 RXDR 将 去年 byte) 略
RXDR 后 得到
Process 的 DMA Rx 缓冲区
Prepare 下 Rx DMA 缓冲 为了 尽快 做好 准备
45.5 UCPD低功耗模式
低功耗模式概述见表421:低功耗模式对UCPD的影响。
表421。低功率模态对UCPD的影响
模式
描述
睡眠
没有影响
停止
事件检测(Type-C、BMC Rx、FRS检测)仍在运行,可以唤醒MCU。
备用
UCPD不工作,无法唤醒单片机。如果配置好,下拉将保持活动状态。在进入备用模式之前设置PWR_CR3寄存器的STDBY位,并在退出备用模式时清除它,作为UCPD上的第一个操作。
无动死电池下拉将保持活跃。
力的
当UCPD识别到相关事件时,它可以从停止模式唤醒MCU:
- Type-C事件,与在任何一个cc引脚上看到的电压范围的变化有关,可以在TYPEC_VSTATE_CCx中看到
- Power delivery接收消息,其有序集与根据RXORDSETEN[8:0]所记录的匹配,通过读取RXORDSET可见
2020/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
通过在UCPD_CFG2寄存器中设置WUPEN位,可以从STOP中唤醒。
在UCPD级别,需要内核时钟活动的三种类型的事件可能发生在停止期间,即。
-模拟PHY电压阈值检测器上的活动,以后可能会
确认为c型规范中定义的电压范围之间的稳定变化
-功率传输BMC接收器上的活动(来自选定的CC pin),该活动可能在稍后生成Rx消息事件(即RXORDSET)
-功率传递FRS检测器上的活动,该检测器可能在稍后生成anFRS信号检测事件(即FRSEVT)
为了使RCC正常工作,当有异步活动时,时钟请求信号将被激活(以WUPEN为条件):
- c型电压阈值检测器(来自任何一个CC引脚)
-功率发送接收机信号(来自所选CC引脚)- FRS检测信号(来自所选CC引脚)
45.6 UCPD中断
下表给出了UCPD中断。
表422。UCPD中断请求
RM0440牧师1
2021/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
表422。UCPD中断请求(续)
国旗事件
中断事件
事件标志/中断清除方法
中断使能控制位
发送报文中断
TXMSGSENT
将1写入TXMSGSENTCF
TXMSGSENTIE
TXMSGDISCIE
发送被丢弃的中断txmsgdisk
将1写入TXMSGDISCCF
传输中断状态
TXIS
编写要发送到UCPD_TXDR寄存器的数据
TXISIE
当从UCPD接收到中断时,软件必须通过读取UCPD_SR寄存器来检查中断的来源。
根据哪个位是1,ISR应该处理这个条件,并通过在UCPD_ICR中写入适当的位来清除该位。
45.7 UCPD寄存器
45.7.1 UCPD配置寄存器1 (UCPD_CFG1)
x000地址偏移量:0
重置值:0x0000 0000
这个寄存器用于IP配置。
31 30 29 28 27 26 25 24 24 23
15 14 13 12 11 10 9 8 7
2022/2083
22 21 20 19 18 17 16
RM0440牧师1
6 5 4 3 2 1 0
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
第31位UCPDEN: USB电源传输块使该字段被软件修改。
它采用应使用来启用外围设备。当禁用该块时,该块不具有功能,将不会看到或执行关于CC的任何接收到的信息。启用这个位之后,块就开始工作了,接收逻辑将立即开始检测CC输入。当禁用时,IP会
立即终止任何正在进行的活动。这种行为对于正确终止“载波模式2”传输非常重要。
0:禁用UCPD,内核的行为就好像所有控制寄存器都处于重置状态(实际上是0)1:启用UCPD。注意,每个寄存器都包含控件位(这并不包括
配置寄存器)所有这些寄存器都应该重写为它们想要的值。
位30 RXDMAEN: DMA接收请求使该字段被软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0:为接收而禁用DMA模式
1: DMA模式启用接收
第29位TXDMAEN:启用DMA接收请求
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0: DMA模式禁用传输
1: DMA模式支持传输
第28:20位RXORDSETEN[8:0]:接收端有序集检测启用
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。确定接收器应检测的有序集的类型。
0bxxxxxxxx1: SOP检测启用0bxxxxxxx1x: SOP'检测启用0bxxxxxx1xx: SOP "检测启用
0bxxxxx1xxx:硬复位检测启用0bxxxx1xxxx:电缆检测复位启用0bxxx1xxxxx: SOP'_Debug启用
0 bxx1xxxxxx: SOP”_Debug启用
0bx1xxxxxxx:启用SOP扩展号1。0b1xxxxxxxx:启用SOP扩展号2
位19:17 PSC_USBPDCLK[2:0]: UCPD_CLK的预标量。传入的内核时钟将首先是pre-
在任何其他部门(例如TRANSWIN的部门)之前按此设置进行缩放;
IFRGAP;HBITCLKDIV)对于传入时钟超过18mhz的情况(也可以考虑在12- 18mhz的范围内,在这种情况下,2的除法会得到6-9 MHz),这种除法是有用的。
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0x0:绕过预缩放/除以1
0x1:预刻度时钟除以2
0x2:预缩放时钟除以4 0x3:预缩放时钟除以8 0x4:预缩放时钟除以16
16位保留
RM0440牧师1
2023/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
位十五11 TRANSWIN [4:0):
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。
周期数(- 1)的半位时钟(见HBITCLKDIV)实现合法
tTransitionWindow(根据IP时钟设置,定义12到20 us之间的间隔)0x0:不支持
0x9:除以10(推荐值)0x1F:除以32(最大除法)
位6 IFRGAP [4:0):
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。
时钟分频器值用于生成帧间间隙(tInterframeGap)硬件定时器
这个位包含时钟分配器(- 1)的定义,以便从IP时钟生成tInterframeGap。
0 x0:不支持
0xD:除以14(如果Tx时钟低于USB PD 2.0规范中的标称值,则可能有用)
0xE:除以15(如果Tx时钟恰好是USB PD 2.0规范中的标称值,则为理想值)
0xF:除以16(如果Tx时钟高于USB PD 2.0规范中的标称值,则可能有用)
0x1F:除以32(最大除法)
位5:0 HBITCLKDIV (5:0):
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。时钟分频器值用于生成半位时钟。
这个寄存器包含了一个半比特时钟在IP上的周期数(- 1),例如程序3中的一个比特时钟占用了IP时钟“UCPD_CLK”的8个周期。
0x0:除以1生成HBITCLK
0x1A:除以27产生HBITCLK(推荐值)0x3F:除以63产生HBITCLK
45.7.2 UCPD配置寄存器2 (UCPD_CFG2)
x004地址偏移量:0
重置值:0x0000 0000
该寄存器用于UCPD中Rx信号滤波的配置。
英语作文网为您收集英语作文网收集英语作文网
瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯,瑞斯。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
2024/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
位31:4保留
位3WUPEN:从STOP enable中唤醒该字段将被软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0:从STOP disable(禁用输出UCPD_ASYNC_INT)中唤醒1:从STOP enable(启用输出UCPD_ASYNC_INT)中唤醒
第2位force eclk:控制强制时钟请求ClkReq。该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0:不要强制时钟请求ClkReq
1:强制时钟请求ClkReq
第1位RXFILT2N3:控制BMC解码器的Rx预过滤器的采样方法。所述采样时钟与接收时钟相同(即在预定标器之后)。
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0:等待3个一致的样本才认为它是一个新的水平1:等待2个一致的样本才认为它是一个新的水平
0位RXFILTDIS:为BMC解码器启用Rx预过滤器。所述采样时钟与接收时钟相同(即在预定标器之后)。
该字段由软件修改。
这个寄存器是静态的,因此只能在UCPDEN=0时更新。0:启用Rx输入筛选
1:禁用Rx输入过滤
45.7.3 UCPD控制寄存器(UCPD_CR)
x00c地址偏移量:0
重置值:0x0000 0000
这个寄存器用于控制UCPD。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
RM0440牧师1
2025/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
保留位31:22,必须保持重置值。
第21位CC2TCDIS:该位允许禁用用于CC2的Type-C检测器。
0:根据ANAMODE和ANASUBMODE设置启用CC2的Type-C检测器1:禁用CC2的Type-C检测器
第20位CC1TCDIS:该位允许禁用CC1的Type-C检测器。
0:根据ANAMODE和ANASUBMODE设置启用CC1的Type-C检测器1:禁用CC1的Type-C检测器
保留的第19位,必须保持在重置值。
第18位RDCH:在“UnattachedWait”状态下按要求驱动“RDCH”状态。SRC”(中描述
这个寄存器只能在UCPDEN=1时更新。
0:正常状态
1:必须保持在一个只源代码状态“UnattachedWait”。要尊重c类型状态。Rdch将在与VCONN相关联的CC引脚上驱动(基于
PHYCCSEL)。正确使用这个值意味着CCENABLE设置并不矛盾。
第17位FRSTX:信号快速角色交换请求。
此寄存器只能在UCPDEN=1时更新。0:正常稳定状态
1:编写一个命令来启用快速角色交换信号。该位将随后被硬件清除,在一个延迟后,尊重USB电源交付修订3.0。
第16位FRSRXEN:启用FRS请求检测函数,该函数监视CC行状态
(根据PHYCCSEL,应该首先正确设置),以便发出FRS Rx事件(FRSEVT)的信号。此寄存器只能在UCPDEN=1时更新。
0:不启用检测(例如,当附加到不支持frs的源/接收器时)
1:启用FRS检测
保留第15位,必须保持重置值。保留第14位,必须保持重置值。保留第13位,必须保持重置值。保留第12位,必须保持重置值。
位11:10 CCENABLE[1:0]:控制是否用于与ANAMODE相关的上拉和下拉控件
在CC1和CC2模拟物理系统中应用ANASUBMODE。此寄存器只能在UCPDEN=1时更新。
0x0:没有激活任何PHY(例如,源的禁用状态)
0x1:控件仅适用于CC1(例如,当CC2通过外部VCONN开关由VCONN驱动时)
0x2:控件仅适用于CC2(例如,当CC1通过外部VCONN开关由VCONN驱动时)
0x3:控件同时适用于CC1和CC2 (sink/source的正常用法)
第9位ANAMODE:模拟物理层工作模式(用于CC1和CC2取决于CCENABLE)。
参照表13:ANAMODE, ANASUBMODE的编码,以及TYPEC_VSTATE_CCx的链接,这个寄存器只能在UCPDEN=1时更新。更改此值后,必须设置此值以验证其有效性。
0:源1:Sink
2026/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
位8:7 ANASUBMODE[1:0]:模拟PHY子模式。参照表13:ANAMODE编码,
这个寄存器只能在UCPDEN=1时更新。编码依赖于ANAMODE的上下文。
第6位PHYCCSEL:根据附件中发现的电缆方向,选择使用CC1和CC2引脚进行USB电源传输信令。
此寄存器只能在UCPDEN=1时更新。0:使用CC1 IO进行功率传输通信1:使用CC2 IO进行功率传输通信
第5位:控制启用USB电源传输接收器。只有一个CC1和CC2接收器将启用基于PHYCCSEL。
此寄存器只能在UCPDEN=1时更新。0:禁用接收器
1:只启用由PHYCCSEL选择的接收器
第4位RXMODE:接收模式
确定接收端的模式。
此寄存器只能在UCPDEN=1时更新。0:正常接收模式
1: BIST接收模式(BIST测试数据模式)。RXORDSET的行为正常,RXDR不再接收字节,但CRC检查仍然作为正常消息进行。
第3位TXHRST:命令发送Tx硬复位。
此寄存器只能在UCPDEN=1时更新。
0:写入0不会在硬件中引起任何操作。
1:写一个触发进程的Tx硬复位消息。一旦消息开始发送(或被丢弃),硬件将随后清除该位。
第2位TXSEND:发送Tx数据包的命令。这里只应该写一个。这个寄存器只能在UCPDEN=1时更新。
0:写入0不会在硬件中引起任何操作。
1:写一个触发Tx消息发送过程。一旦消息开始发送(或被丢弃),硬件将随后清除该位。
位1:0 TXMODE[1:0]: Tx包的类型。
此寄存器只能在UCPDEN=1时更新。该字段由软件修改。
其他值:无效
0x0:编写这个值将启动以前在其他寄存器中定义的Tx消息的传输
0x1:写这个值将触发一个电缆重置序列的传输
0x2:写入此值将触发BIST测试序列发送(BIST载波模式2)
在USB PD规范的V1.1中,有一个计数器定义了此模式的持续时间。为了正确退出此模式(在延迟“tBISTContMode”之后),建议的方法是编写
UCPDEN = 0
45.7.4 UCPD中断掩码寄存器(UCPD_IMR)
x010地址偏移量:0
重置值:0x0000 0000
这个寄存器用于屏蔽中断。
RM0440牧师1
2027/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
位31:21保留
第20位:启用FRSEVT中断
此寄存器只能在UCPDEN=1时更新。
位19:16保留
第15位TYPECEVT2IE:启用TYPECEVT2中断
此寄存器只能在UCPDEN=1时更新。
第14位TYPECEVT1IE:启用TYPECEVT1中断
此寄存器只能在UCPDEN=1时更新。13位保留
第12位RXMSGENDIE:启用RXMSGEND中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第11位RXOVRIE:启用RXOVR中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第10位RXHRSTDETIE:启用RXHRSTDET中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第9位RXORDDETIE:启用RXORDDET中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第8位RXNEIE:启用RXNE中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
保留位7
2028/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
第6位TXUNDIE:启用TXUND中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第5位hrst感知:启用HRSTSENT中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第4位磁盘驱动器:启用磁盘中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第3位TXMSGABTIE:启用TXMSGABT中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第2位TXMSGSENTIE:启用TXMSGSENT中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第1位txmsg盘:启用TXMSGDISC中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
第0位TXISIE:启用TXIS中断
此寄存器只能在ucpden =1时更新。0:禁用
1:启用
45.7.5 UCPD状态寄存器(UCPD_SR)
x014地址偏移量:0
重置值:0x0000 0000
此寄存器用于状态。
31 30 29 28 27 26 25 24 24 23
RM0440牧师1
22 21 20 19 18 17 16
2029/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
位31:21保留
第20位FRSEVT:快速角色交换检测事件。通过将1写入FRSEVTCF来清除。
0:没有新事件
1:端口上发生了一个新的FRS(快速角色交换)接收事件
位19:18 TYPEC_VSTATE_CC2 [1:0):
此状态显示在CC2引脚上看到的直流电平,表示所指示的电压电平对应于引脚的稳定状态。换句话说,在USB PD消息期间,BMC PHY调制不会在pin上留下直流电平,但是这个寄存器的值会
不变。
0x0:最低电压状态0x1:第二电压状态0x2:第三电压状态
0x3:最高电压状态
位17:16 TYPEC_VSTATE_CC1 [1:0):
这个状态显示了在CC1引脚上看到的直流电平,这意味着所指示的电压电平对应于引脚的稳定状态。换句话说,在USB PD消息期间,BMC PHY调制不会在pin上留下直流电平,但是这个寄存器的值会
不变。
0x0:最低电压状态0x1:第二电压状态0x2:第三电压状态
0x3:最高电压状态
第15位TYPECEVT2: CC2引脚上的C型电压电平事件。它发生时
值的变化表示该引脚上新的稳定电压,通过将1写入TYPECEVT2CF来清除该值。
0:没有新事件
1: CC2引脚c类监控新事件
第14位TYPECEVT1: CC1引脚上的C型电压电平事件。它发生时
值改变,表示该引脚上新的稳定电压,将1写入TYPECEVT1CF清除。
0:没有新事件
1: CC1引脚类型- c监视上的新事件
第13位RXERR:接收未完成的消息OK(不正确的CRC,或截断的消息,例如line)
它不是一个中断状态位。当RXMSGEND设置为true时,它被设置为适当的值。
0:最后声明的Rx消息(通过RXMSGEND)已正确接收1:最后声明的Rx消息(通过RXMSGEND)已接收到错误
第12位RXMSGEND:接收到Rx消息(无论CRC值是多少,此状态都变为true)
真正的)。这对于硬重置消息接收不是真的(请参阅下面的RXHRSTDET)。
此位表示已接收到一条消息。如果设置了RXERR,则消息不正确/必须丢弃。通过将1写入RXMSGENDCF清除。
0:没有收到新的Rx消息(自上次清除以来)1:收到了一条新的Rx消息(自上次清除以来)
2030/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
第11位RXOVR: Rx数据溢出中断
这个位检测一个错误条件,其中Rx字节的缓冲区已经溢出(没有及时读取以释放传入字节的空间)。通过将1写入RXOVRCF清除。
0:没有发生Rx数据溢出1:发生了Rx数据溢出
第10位RXHRSTDET: Rx硬复位检测中断
此位信号接收到硬复位消息。通过将1写入RXHRSTDETCF来清除它。
0:未正确接收到Rx“硬重置”消息1:已正确接收到Rx“硬重置”消息
第9位RXORDDET: Rx有序集(4k码)检测到中断
这个位信号表示已检测到一个有序集。相关信息存储在其中
寄存器UCPD_RX_ORDSET的字段RXORDSET。通过将1写入RXORDDETCF来清除它。0:未检测到有序集(自上次清除以来)
1:检测到一个新的有序集(自上次清除以来)
第8位RXNE:接收数据寄存器不空中断
当UCPD_RXDR寄存器不为空时,硬件将设置此位。读取UCPD_RXDR时清除。
0: Rx数据寄存器为空
1: Rx数据寄存器不为空
保留位7
第6位TXUND: Tx数据欠运行状态中断
这个位检测Tx数据寄存器(TXDR)运行不足的错误条件(即数据没有及时写入以便在传输消息中使用)。通过将1写入TXUNDCF来清除它。
0:没有发生Tx数据欠运行(自上次通过TXUNDCF清除后)1:发生了Tx数据欠运行(自上次通过TXUNDCF清除后)
第5位HRSTSENT: HRST发送中断
这个位表示HRSTmessage已经发送(作为TXMSGSENT,但用于硬重置)。通过将1写入HRSTSENTCF清除。
0:没有HRST消息发送中断1:HRST消息发送中断
第4位HRSTDISC: HRST丢弃中断
此位表示HRST消息已被丢弃(作为TXMSGDISC,但用于硬重置)。将1写入HRSTDISCCF即可清除。
0:无HRST丢弃中断1:HRST丢弃中断
第3位TXMSGABT:发送消息中止中断
当一个Tx消息由于后续的HRST发送请求在传输过程中占据优先级而中止时,将设置此位。通过将1写入TXMSGABTCF来清除它。
0:没有传输消息中止中断1:传输消息中止中断
RM0440牧师1
2031/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
第2位TXMSGSENT:发送消息发送中断。这是在每个传输包的末尾确认包已经完全发送。在一个特定的情况下(后续
硬复位(截断当前消息)中断,位不会被引发。通过将1写入TXMSGSENTCF清除它。
0: Tx消息尚未正确发送(尚未)1:Tx消息已正确发送
第1位TXMSGDISC:发送丢弃的中断消息
由于正在接收(或线路上的噪声),无法发送消息。
虽然如果非空闲状态为真,则不会传输Tx消息,但是只有当CC变为空闲时,这个位才变为真。这适用于所有类型的Tx消息,包括硬重置
和阿拉伯学者病例。通过将1写入TXMSGDISCCF来清除它。0:没有Tx消息被丢弃
1:一个Tx消息被丢弃
第0位TXIS:传输中断状态
当UCPD_TXDR寄存器为空且需要写入时(即直到TXPAYSZ定义的有效负载的最后一个字节),硬件将设置这个位。当要发送的下一个数据被写入UCPD_TXDR寄存器时,它将被清除。
0: Tx数据寄存器不为空(或为空,但不等待数据)1:Tx数据寄存器为空,需要写入
中断清除寄存器(UCPD_ICR)
x018地址偏移量:0
重置值:0x0000 0000
这个寄存器用于清除中断标志。
英语作文网为您收集英语作文网收集英语作文网
位31:21保留
第20位FRSEVTCF: FRS事件标志(FRSEVT)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的FRSEVT标志
位19:16保留
第15位TYPECEVT2CF: TypeC event (CC2)标志(TYPECEVT2)清除此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的TYPECEVT2标志
2032/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
第14位TYPECEVT1CF: TypeC event (CC1)标志(TYPECEVT1)清除此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的TYPECEVT1标志
13位保留
第12位RXMSGENDCF: Rx消息接收标志(RXMSGEND)清除此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的RXMSGEND标志。
第11位RXOVRCF: Rx溢出标志(RXOVR)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的RXOVR标志。
第10位RXHRSTDETCF: Rx硬复位检测标志(RXHRSTDET)清除此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的RXHRSTDET标志。第9位RXORDDETCF: Rx有序集检测标志(RXORDDET)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的RXORDDET标志。
位八7保留
第6位TXUNDCF: Tx潜流标志(TXUND)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的TXUND标志。第5位HRSTSENTCF:硬复位发送标志(HRSTSENT)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的HRSTSENT标志。第4位HRSTDISCCF:清除硬复位丢弃标志(HRSTDISC)
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的HRSTDISC标志。第3位TXMSGABTCF: Tx消息中止标志(TXMSGABT)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的TXMSGABT标志。第2位TXMSGSENTCF: Tx消息发送标志(TXMSGSENT)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的TXMSGSENT标志。第1位TXMSGDISCCF: Tx消息丢弃标志(TXMSGDISC)清除
此寄存器只能在UCPDEN=1时更新。
将1写入这个位清除UCPD_SR寄存器中的TXMSGDISC标志。位0保留
45.7.7 UCPD Tx有序集类型寄存器(UCPD_TX_ORDSET)
x01c地址偏移量:0
重置值:0x0000 0000
这个寄存器用于Tx有序集。
RM0440牧师1
2033/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
英语作文网为您收集英语作文网收集英语作文网
位31:20保留
位19:0 TXORDSET [19:0]:
此寄存器只能在UCPDEN=1时更新,在传输a时除外
数据包(即在TXSEND/TXHRST被写为一个和它们被清除的时刻之间)。在其他情况下,字段没有更新。
完整的20位序列,包含4个k码,每个5位,定义数据包为
传播。包含用于传输的20个数据位,第一个传输的是第0位(K-Code1的第0位),最后一个传输的是第19位(K-Code4的第4位)。
45.7.8 UCPD Tx Paysize寄存器(UCPD_TX_PAYSZ)
x020地址偏移量:0
重置值:0x0000 0000
此寄存器用于Tx paysize。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
位31:10保留
第9位:TXPAYSZ[9:0]:有效负载大小(以字节为单位)。
此寄存器只能在UCPDEN=1时更新。
这个领域由软件和硬件修改。
包含作为Tx消息的有效负载传输的剩余字节数。在示例中可以看到,在这个定义中,header被认为是
有效载荷,但不计算CRC。
注意,当每个字节(有效负载)被写到UCPD_TXDR时,寄存器值将递减。当它达到0时,不再设置TXIS。
0x2: Towrite用于2字节负载(对应于来自协议层的控制消息)
0x6:为6字节的有效负载(协议层允许的最短数据消息)进行Towrite
0x1E:写入30字节的有效负载(协议层允许的最长数据消息,不考虑扩展消息)
0x106:写入262字节的有效负载(与扩展消息对应的最长的可能有效负载)
0x3FF:最长的有效负载(用于将来的扩展)
2034/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
45.7.9 UCPD Tx数据寄存器(UCPD_TXDR)
x024地址偏移量:0
重置值:0x0000 0000
这个寄存器用于Tx数据。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
位31:8保留
TXDATA[7:0]: 8位传输数据
此寄存器只能在UCPDEN=1时更新。通过USB PD接口传输的数据字节。
45.7.10 UCPD Rx有序集寄存器(UCPD_RX_ORDSET)
x028地址偏移量:0
重置值:0x0000 0000
这个寄存器用于Rx有序集。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
RM0440牧师1
2035/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
位31:7保留
位6:4 RXSOPKINVALID [2:0]:
调试功能:其他值:无效
0x0:没有k代码被破坏0x1:第一个k代码被破坏
0x2:第二个k码损坏0x3:第三个k码损坏
0x4:第四个k代码被破坏了
第3位RXSOP3OF4:表示(仅用于调试)错误纠正是为了匹配k代码序列
0: 4个正确的k码1:3个正确的k码
位2:0 RXORDSET[2:0]:检测到Rx有序集代码
0x0:接收端检测到的SOP代码0x1:接收端检测到的SOP'代码0x2:接收端检测到的SOP "代码
0x3: SOP'_Debug检测在接收机0x4: SOP " _Debug检测在接收机0x5:电缆复位检测在接收机
0x6:在接收端检测到SOP扩展#1 0x7:在接收端检测到SOP扩展#2
45.7.11 UCPD Rx Paysize寄存器(UCPD_RX_PAYSZ)
x02c地址偏移量:0
重置值:0x0000 0000
这个寄存器用于Rx paysize。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
2036/2083
RM0440牧师1
RM0440
USB Type-C™/ USB电源传输接口(UCPD)
位31:10保留
位9:0 RXPAYSZ[9:0]:以字节为单位的Rx有效负载大小。此值不是从标头派生的,而是从头派生的
接收阶段的增量,因为每个字节在UCPD_RXDR中可用。只在RXMSGEND中断后读取(在接收期间读取可能会看到一个错误的值,原因是
内部再同步)。正如在示例中所看到的,在这个定义中,头被认为是有效负载的一部分,但是没有计算CRC。
包含接收到的有效负载字节数。
此寄存器只能在UCPDEN=1时更新。
0x2: 2字节有效负载(对应于来自协议层的控制消息)
0x6: 6字节负载(协议层允许的最短数据消息)
0x1E: 30字节有效负载(协议层允许的最长数据消息,不包括扩展消息)
0x106: 262字节有效负载(与扩展消息对应的最长可能有效负载)
45.7.12 UCPD接收数据寄存器(UCPD_RXDR)
x030地址偏移量:0
重置值:0x0000 0000
这个寄存器用于Rx数据。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
位31:8保留
RXDATA[7:0]: 8位接收数据
从USB PD接口接收的数据字节
45.7.13 UCPD Rx有序集扩展寄存器#1
(UCPD_RX_ORDEXT1)
x034地址偏移量:0
重置值:0x0000 0000
此寄存器用于Rx有序集扩展名#1。
英语作文网为您收集英语作文网收集英语作文网
15 14 13 12 11 10 9 8 7 6 5 4 3 2 10
RM0440牧师1
rw RXSOPX1 [15:0]
2037/2083
USB Type-C™/ USB电源传输接口(UCPD)
RM0440
位31:20保留
位19:0 RXSOPX1 [19:0]:
这个寄存器是静态的,因此只能在UCPDEN=0时更新。
时钟分频器值用于生成帧间间隙(tInterframeGap)硬件timerFull 20位序列,由4个k -码组成,每个k -码为5位,定义一个要在硬件中匹配的补充有序集(#1)。
包含完整的20个数据位,第一个接收到的是第0位(K-Code1的第0位),最后一个接收到的是第19位(K-Code4的第4位)。
45.7.14 UCPD Rx有序集扩展寄存器#2
(UCPD_RX_ORDEXT2)
x038地址偏移量:0
重置值:0x0000 0000
此寄存器用于Rx有序集扩展名#2。
英语作文网为您收集英语作文网收集英语作文网
位31:20保留
位19:0 RXSOPX2 [19:0]:
这个寄存器是静态的,因此只能在UCPDEN=0时更新。
时钟分频器值用于生成帧间间隙(tInterframeGap)硬件timerFull 20位序列,由4个k -码组成,每个k -码为5位,定义一个要在硬件中匹配的补充有序集(#1)。
包含完整的20个数据位,第一个接收到的是第0位(K-Code1的第0位),最后一个接收到的是第19位(K-Code4的第4位)。
45.7.15 UCPD寄存器图
下表给出了UCPD寄存器映射和重置值。
表423。UCPD寄存器映射和重置值
偏移寄存器
0 x000
UCPD_CFG1 RXORDSETEN[译者注]
IFRGAP 4:0 []
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0
2038/2083
RM0440牧师1
版权声明:本文标题:UCPD编程手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1706093609h501663.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论