寄存器描述
0x000 AHB_BASIC
|
默认值:0x00000004 |
AHB 基本配置寄存器 (AHB Basic Configure) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:9 |
- |
- |
- |
|
8 |
R/W |
0x0 |
保持默认值,不要改动 |
|
7 |
R/W |
0x0 |
保持默认值,不要改动 |
|
6 |
R/W |
0x0 |
保持默认值,不要改动 |
|
5 |
R/W |
0x0 |
ASSB AHB Support Single Burst,AHB 支持 Single Burst。
|
|
4 |
- |
- |
- |
|
3 |
R/W |
0x0 |
保持默认值,不要改动 |
|
2 |
R |
0x1 |
AHB Master Idle 指示 AHB Master State Machine 处于 idle 状态。 |
|
1 |
R |
0x0 |
DMA Request Signal 用于 debug。 |
|
0 |
- |
- |
- |
0x004 USB_DEV_INIT
|
默认值:0x00000000 |
USB Device 初始化寄存器 (USB Device Initial) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
- |
- |
- |
|
15:12 |
R/W |
0x0 |
DMA_BL DMA Burst Length,用于设置 DMA 的 Burst 长度。
|
|
11 |
R/W |
0x0 |
EN_DMA Enable DMA,DMA 使能
|
|
9 |
R/W |
0x0 |
GIE Global Interrupt Enable,全局中断使能位,使能 USB IP 的中断。
|
|
8 |
R/WAC |
0x0 |
C_IN_TKN_Q Clear IN Token Queue,清除 IN Token 的队列,写 1 清除队列,完成自动清 0。 |
|
7:3 |
R/W |
0x0 |
C_TX_NUM Clear TXFIFO Number,可以对 FIFO 进行清除。在 TxFFlsh bit 没有清 0
之前,此域不能及进行更改。
|
|
2 |
R/WAC |
0x0 |
C_TXFIFO Clear TXFIFO,此位写 1 进行 TXFIFO 清除(进行此操作前需确保 USB 没有进行数据传输),完成 TXFIFO 清除后自清 0。 |
|
1 |
R/WAC |
0x0 |
C_RXFIFO Clear RxFIFO,此位写 1 进行 RxFIFO 清除(进行此操作前需确保 USB 没有进行数据传输),完成 RxFIFO 清除后自清 0。 |
|
0 |
R/WAC |
0x0 |
Soft_RSTSoft Reset USB Device 软复位,此位写 1 进行软复位,复位完成自清 0。 |
0x008 USB_PHY_IF
|
默认值:0x00001400 |
USB PHY 接口寄存器 (USB PHY Interface) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:20 |
- |
- |
- |
|
19 |
R/W |
0x0 |
ULPI_CLK_SUS ULPI Clock Suspend,决定 Suspend 状态下内部时钟的供电。采用内部
PHY,无需配置,保持默认值即可。
|
|
18 |
R/W |
0x0 |
ULPI_AUTO_RES ULPI Auto Resume,配置 ULPI PHY 的寄存器的 AutoResume
功能。采用内部 PHY,无需配置,保持默认值即可。
|
|
17:16 |
- |
- |
- |
|
15 |
R/W |
0x0 |
PHY_LP_CLK_SET PHY Low-Power Clock Set,选择 480 MHz 或 48 MHz 的
PHY 模式,在 FS 和 LS 模式下,PHY 可以工作在 48 MHz,达到节省功耗的效果。采用内部
PHY,这里无需配置,保持默认值即可。
|
|
14 |
- |
- |
- |
|
13:10 |
R/W |
0x5 |
TA_TIME USB Turnaround Time,配置 USB Turnaround Time。 以 PHY 时钟数为单位。 |
|
9:8 |
- |
- |
- |
|
7 |
R/W |
0x0 |
SEL_ULPI _DDR Select ULPI Interface Double Data Rate,选择 ULPI IF
的数据为双沿触发。采用内部 PHY,无需配置,保持默认值即可。
|
|
4 |
R/W |
0x0 |
SEL_PHY_IF Select PHY Interface,选择 PHY 的接口类型。采用内部
PHY,无需配置,保持默认值即可。
|
|
3 |
R/W |
0x0 |
PHY_IF_WIDTH,PHY Interface Width,UTMI + PHY 选择 8-bit 或 16-bit
接口,ULPI 必须选择 8-bit 接口,采用内部 PHY,无需配置,保持默认值即可。
|
|
2:0 |
R/W |
0x0 |
TIMEOUT_CAL Timeout Calibration,USB Timeout 校准 |
0x00C USB_ULPI_PHY
|
默认值:0x00000000 |
USB ULPI PHY 寄存器 (USB ULPI PHY) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:0 |
R/W |
0x0 |
采用内部 PHY,无需配置,保持默认值即可。 |
0x010 USB_INT_STS
|
默认值:0x10000020 |
USB 中断状态寄存器 (USB Interrupt Status) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31 |
R/W1C |
0x0 |
WAKEUP_INT Wake up Interrupt,唤醒产生中断,在 Suspend 状态下,收到 Host 发出的
Resume 信号后进行唤醒。
|
|
30:23 |
- |
- |
- |
|
22 |
R/W1C |
0x0 |
DATA_FET_STOP_INT Data Fetch Stop Interrupt,此中断表示在 DMA 模式下,IN EP 取数据出现停止,原因是 TXFIFO 或请求队列的空间不够。 |
|
21 |
R/W1C |
0x0 |
INCOMP_ISO_OUT_INT Incomplete Isochronous OUT Transfer Interrupt,此位中断用于指示至少一个 Isochronous OUT EP 当前帧里的 Transfer 不完整。 |
|
20 |
R/W1C |
0x0 |
INCOMP_ISO_IN_INT Incomplete Isochronous IN Transfer Interrupt,此位中断用于指示至少一个 Isochronous IN EP 当前帧里的 Transfer 不完整。 |
|
19 |
R |
0x0 |
OUT_EP_INT OUT Endpoints Interrupt,指示存在 OUT EP 中断。此中断为 OUT EP 的总中断,需将各个 OUT EP 的中断清除才可以清除该中断。 |
|
18 |
R |
0x0 |
IN_EP_INT IN Endpoints Interrupt,指示存在 IN EP 中断。此中断为 IN EP 的总中断,需将各个 IN EP 的中断清除才可以清除该中断。 |
|
17 |
R/W1C |
0x0 |
EP_MIS_INT Endpoint Mismatch Interrupt,指示 Non-periodic TxFIFO
的数据与 IN Endpoint 不一致
|
|
16 |
- |
- |
- |
|
15 |
R/W1C |
0x0 |
EOP_FR_INT End of Periodic Frame Interrupt,此中断指示当前 Frame 达到
SET_PER_FR_INT 所设置的时间点
|
|
14 |
R/W1C |
0x0 |
ISO_OUT_DROP_INT Isochronous OUT Packet Dropped
Interrupt,此中断表示由于 RXFIFO 无足够空间存放 isochronous OUT EP 的一个 Maximum
size 的数据包,拒绝接收 isochronous OUT packet
|
|
13 |
R/W1C |
0x0 |
Enum_DONE Enumeration Done,此中断用于指示完成 USB 的速率枚举
|
|
12 |
R/W1C |
0x0 |
USB_REST USB Reset,此中断用于指示 USB BUS 出现了 RESET 信号
|
|
11 |
R/W1C |
0x0 |
USB_SUS USB Suspend,此中断用于指示 USB 进入 Suspend 状态
|
|
10 |
R/W1C |
0x0 |
EARLY_SUS Early Suspend,此中断用于指示 USB 进入 idle 状态超过 3 ms
|
|
9:8 |
- |
- |
- |
|
7 |
R |
0x0 |
OUT_NACK_EFF OUT Endpoint NACK Effective,此中断用于指示寄存器 SET_OUT_NACK 配置生效。此位清 0 可以通过设置 CLR_OUT_NACK。 |
|
4 |
R |
0x0 |
RXFIFO_NO_EMP RXFIFO Non-Empty,此位指示 RxFIFO 里至少有一个 packet
需要读取
|
|
3 |
R/W1C |
0x0 |
RX_SOF Receive Start of (micro) Frame Token,此位指示 USB 接收到
SOFToken
|
|
2:0 |
- |
- |
- |
0x014 USB_INT_MSK
|
默认值:0x00000000 |
USB 中断屏蔽寄存器 (USB Interrupt Mask) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31 |
R/W |
0x0 |
WAKEUP_INT_MSK Wake up Interrupt,唤醒产生中断,在 Suspend 状态下,收到 Host
发出的 Resume 信号后进行唤醒。
|
|
30:23 |
- |
- |
- |
|
22 |
R/W |
0x0 |
DATA_FET_STOP_INT_MSK Data Fetch Stop Interrupt,此中断表示在 DMA
模式下,IN EP 取数据出现停止,原因是 TXFIFO 或请求队列的空间不够。
|
|
21 |
R/W |
0x0 |
INCOMP_ISO_OUT_INT_MSK Incomplete Isochronous OUT Transfer
Interrupt,此位中断用于指示至少一个 Isochronous OUT EP 当前帧里的 Transfer 不完整。
|
|
20 |
R/W |
0x0 |
INCOMP_ISO_IN_INT_MSK Incomplete Isochronous IN Transfer
Interrupt,此位中断用于指示至少一个 Isochronous IN EP 当前帧里的 Transfer 不完整。
|
|
19 |
R/W |
0x0 |
OUT_EP_INT_MSK OUT Endpoints Interrupt,指示存在 OUT EP 中断。此中断为 OUT
EP 的总中断。
|
|
18 |
R/W |
0x0 |
IN_EP_INT_MSK IN Endpoints Interrupt,指示存在 IN EP 中断。此中断为 IN EP
的总中断。
|
|
17 |
R/W |
0x0 |
EP_MIS_INT_MSK Endpoint Mismatch Interrupt,指示 Non-periodic
TxFIFO 的数据与 IN Endpoint 不一致。
|
|
16 |
- |
- |
- |
|
15 |
R/W |
0x0 |
EOP_FR_INT_MSK End of Periodic Frame Interrupt,此中断指示当前 Frame 达到
SET_PER_FR_INT 所设置的时间点:
|
|
14 |
R/W |
0x0 |
ISO_OUT_DROP_INT_MSK Isochronous OUT Packet Dropped
Interrupt,此中断表示由于 RXFIFO 无足够空间存放 isochronous OUT EP 的一个 Maximum
size 的数据包,拒绝接收 isochronous OUT packet。
|
|
13 |
R/W |
0x0 |
Enum_DONE_MSK Enumeration Done,此中断用于指示完成 USB 的速率枚举。
|
|
12 |
R/W |
0x0 |
USB_REST_MSK USB Reset,此中断用于指示 USB BUS 出现了 RESET 信号。
|
|
11 |
R/W |
0x0 |
USB_SUS_MSK USB Suspend,此中断用于指示 USB 进入 Suspend 状态。
|
|
10 |
R/W |
0x0 |
EARLY_SUS_MSK Early Suspend,此中断用于指示 USB 进入 idle 状态超过 3 ms。
|
|
9:8 |
- |
- |
- |
|
7 |
R/W |
0x0 |
OUT_NACK_EFF_MSK OUT Endpoint NACK Effective,此中断用于指示寄存器SET_OUT_NACK
配置生效。
|
|
4 |
R/W |
0x0 |
RXFIFO_NO_EMP_MSK RXFIFO Non-Empty,指示 RxFIFO 里至少有一个 packet
需要读取
|
|
3 |
R/W |
0x0 |
RX_SOF_MSK Receive Start of (micro) Frame Token,指示 USB 接收到
SOFToken
|
|
2:0 |
- |
- |
- |
0x018 RXFIFO_SIZ
|
默认值:0x00000400 |
RXFIFO SIZE 寄存器 (RXFIFO SIZE) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
- |
- |
- |
|
15:0 |
R/W |
0x400 |
RXFIFO_SIZ RXFIFO Size,RxFIFO 空间大小,最小值 16,最大值 1024。 |
0x01C RXFIFO_STS
|
默认值:0x00000000 |
RXFIFO 状态寄存器 (RXFIFO Status) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:25 |
- |
- |
- |
|
24:21 |
R |
0x0 |
FR_NUM Frame Number,为 Frame Number 的低 4 位,只用于 Isochronous 类型的 OUT EPs。 |
|
20:17 |
R |
0x0 |
RX_PKT_STS Received Packet Status ,用于指示接收的 packet 的状态。
|
|
16:15 |
R |
0x0 |
OUT_DAT_PID Data PID,指示接收到的 OUT data packet 的 DATA PID 类型:
|
|
14:4 |
R |
0x0 |
RXBYTE_CNT Byte Count,用于指示接收到的 data packet 的 Byte 计数。 |
|
3:0 |
R |
0x0 |
OUTEP_NUM Endpoint Number,此域指示当前接收的 packet 的 Endpoint Number。 |
0x020 IETXFIFO_SIZ
|
默认值:0x02000400 |
INEP0 的 TXFIFO Size 寄存器 (NPTXFIFO SIZE) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
R/W |
0x200 |
IETXFIFO0_SIZ INEP TXFIFO0 Size,最小值 16,最大值 1024 |
|
15:0 |
R/W |
0x400 |
IETXFIFO0_START INEP TXFIFO0 Start Address,INEP 的 TxFIFO0 的起始地址。 |
0x024 THR_CTL
|
默认值:0x0C100020 |
设备阈值控制器(Device Threshold Control Register) | ||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:28 |
- |
- |
- |
|
27 |
R/W |
0x1 |
ArbPrkEn Arbiter Parking Enable,仲裁器驻留使能。该 bit 控制内部 DMA
仲裁器是否使能,仲裁器是为了在阈值功能使能时防止 underrun。
|
|
26 |
- |
- |
- |
|
25:17 |
R/W |
0x8 |
RxThrLen Receive Threshlod Length,接收阈值长度指示在 AHB 开始传输之前,USB 接收的数据量。阈值长度单位为 Dwords,最小值为 8 Dwords。 |
|
16 |
R/W |
0x0 |
RxThren Receive Threshlod Enable,接收阈值使能 正常不建议使能接收阈值,因为可能导致 Rxfifo
出现问题,特别是当接收出错的时候。
|
|
15:13 |
- |
- |
- |
|
12:11 |
R/W |
0x0 |
AHBThrRatio AHB Threshlod Ratio,AHB 阈值比例 指示发送路径上 AHB 阈值和
MAC 阈值的比例,AHB 的阈值总是低于或等于 USB 的阈值。AHB 阈值和 MAC 阈值都必须 Dwords 对齐配置
MAC 阈值和 AHB 比例时需要注意使 AHB 阈值 Dwords 对齐。配置 MAC 阈值和 AHB 比例时还需要注意使
AHB 的阈值不低于 8 Dwords 以满足 USB 周转时间需求。
|
|
10:2 |
R/W |
0x8 |
TxThrLen Transmit Threshlod Length,发送阈值长度 表示 MAC 阈值,包括实时和非实时端点,指在 USB 开始发送之前,相应端点 FIFO 里的数据量。阈值长度单位为 Dwords,为保证 AHB 阈值不低于 8 Dwords,MAC 阈值最小值不得低于 8 Dwords。当 AHBThrRatio 不为 0 时,需要注意保证 AHB 阈值不低于 8 Dwords。推荐配置为与 AHB Burst 长度一样。 |
|
1 |
R/W |
0x0 |
ISOThrEn ISO IN Endpoints Threshlod Enable,实时 IN 端点阈值使能
|
|
0 |
R/W |
0x0 |
NonISOThrEn Non-ISO IN Endpoints Threshlod Enable,非实时 IN 端点阈值使能
|
0x030 RXFIFO_STS_POP
|
默认值:0x00000000 |
RXFIFO 状态寄存器 (RXFIFO Status Pop) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:25 |
- |
- |
- |
|
24:21 |
R |
0x0 |
FR_NUM Frame Number,为 Frame Number 的低 4 位,只用于 Isochronous 类型的 OUT EPs。 |
|
20:17 |
R |
0x0 |
RX_PKT_STS Received Packet Status ,用于指示接收的 packet 的状态。
|
|
16:15 |
R |
0x0 |
OUT_DAT_PID Data PID,指示接收到的 OUT data packet 的 DATA PID 类型
|
|
14:4 |
R |
0x0 |
RXBYTE_CNT Byte Count,用于指示接收到的 data packet 的 byte 计数。 |
|
3:0 |
R |
0x0 |
OUTEP_NUM Endpoint Number,指示当前接收的 packet 的 Endpoint Number。 |
0x040 PHY_CLK_CTL
|
默认值:0x00000000 |
PHY 时钟控制寄存器 (PHY Clock Control) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:30 |
- |
- |
- |
|
0 |
R/W |
0x0 |
STP_PHY_CLK STOP PHY CLOCK,停止 PHY Clock,在 USB Suspend
状态下可以配置此位,停止 PHY 的时钟,能够降低 USB PHY 的功耗。
|
0x060+(n-1)*0x4 (n=1~4) TXFIFOn_SIZ
|
默认值:0x0200XXXX |
TXFIFOn SIZE 寄存器(TXFIFOn Size) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
R/W |
0x200 |
INEP_TXFIFOn_SIZ In Endpoint TxFIFO1 Size,INEP TXFIFOn 的大小,最小值 4。 |
|
15:0 |
R/W |
0xXXXX |
INEP_TXFIFOn_START In Endpoint TxFIFOn Start Address,INEP TXFIFOn 的起始地址。默认值为 0x400+(0x200*n)。 |
0x200 USB_DEV_CONF
|
默认值:0x08200000 |
USB Device 配置寄存器 (USB Device Configure) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:23 |
- |
- |
- |
|
22:18 |
R/W |
0x8 |
IN_EP_MIS_THIN Endpoint Mismatch Threshold,触发 IN Endpoint Mismatch 中断的阈值。 |
|
17:16 |
- |
- |
- |
|
15 |
R/W |
0x0 |
MSK_Early_SUS_ERR_INT MSK Early Suspend Generate Erratic Error
Interrupt,使能 Early Suspend 产生 Erratic Error 中断
|
|
14 |
R/W |
0x0 |
EN_DLY_XCVR 设备 chirp 期间 xcvr_sel 和 txvalid 之间的延迟使能。
|
|
13 |
- |
- |
- |
|
12:11 |
R/W |
0x0 |
SET_PER_FR_INT SET Periodic Frame Interval,设置 Periodic Frame
结束的时间点
|
|
10:4 |
R/W |
0x0 |
USB_DEV_ADDR USB Device Address,软件在 Set Address command 时设置的 Device 地址。 |
|
3 |
- |
- |
- |
|
2 |
R/W |
0x0 |
OUT_RX_NZL_DATA_HDL OUT Transaction Receive None-zero-length
DATA Handle,设置在 OUT transaction 的 Status 阶段,接收到 non zero length
数据包时的处理方式
|
|
1:0 |
R/W |
0x0 |
USB_DEV_SPD_SET USB Device Speed Set,设置 USB Device 进行枚举的 USB
速度
|
0x204 USB_DEV_FUNC
|
默认值:0x00000002 |
USB Device 功能寄存器 (USB Device Function) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:17 |
- |
- |
- |
|
16 |
R/W |
0x0 |
EN_NACK_BBL_ERR Enable NACK Babble Error,使能 NACK 自动回复 Babble
Error
|
|
15 |
R/W |
0x0 |
IG_FR_NUM_ISO_EP Ignore Frame Number for Isochronous Endpoints,针对同步 EP 使用。 |
|
14:12 |
- |
- |
- |
|
11 |
R/W |
0x0 |
PWR_ON_DONE POWER-ON Programming Done,指示 Wakeup 后
Contrl、StatusRegister 已经 Ready
|
|
10 |
W |
0x0 |
CLR_OUT_NACK Clear OUT Endpoint NACK,此位写 1 清除 OUT Endpoints NACK。 |
|
9 |
W |
0x0 |
SET_OUT_NACK Set OUT Endpoint NACK,此位写 1 设置 OUT NACK。软件层通过此位设置,让所用的 OUT Endpoints 发送 NACK 握手信号。此位只有在 OUT_NACK_EFF 清 0 后才可以置 1。 |
|
6:4 |
R/W |
0x0 |
TEST_MOD TEST MODE Select,测试模式选择
|
|
3 |
R |
0x0 |
GLB_OUT_NACK_STS Global OUT NACK Status
|
|
2 |
R |
0x0 |
GLB_IN_NACK_STS Global IN Non-periodic NACK Status
|
|
1 |
R/W |
0x1 |
SET_DEV_DISCON Set USB Device Disconnect,设置 Device 进行
disconnect 操作
|
|
0 |
R/W |
0x0 |
EN_REM_WAKUP Enable Remot Wakeup,使能 USB Devcie 唤醒 USB Host
|
0x208 USB_LINE_STS
|
默认值:0x00000002 |
USB Line 状态寄存器 (USB Line Status) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:24 |
- |
- |
- |
|
23:22 |
R |
0x0 |
DAT_LINE_STS Data Line Status,指示目前 USB 数据线的逻辑电平
|
|
21:8 |
R |
0x0 |
RX_FR_NUM Number of the Received SOF
|
|
7:4 |
- |
- |
- |
|
3 |
R |
0x0 |
ERRTIC_ERR Erratic Error,此位用于报告 UMTI+ 任意的错误。如果由于 erratic error 产生的 early suspend,软件只能通过实现 soft disconnect 恢复。 |
|
2:1 |
R |
0x1 |
USB_EN UM_SPEEDUSB Enumerated Speed,指示经过速度的侦测最后 Device 得出的速率
|
|
0 |
R |
0x0 |
DET_SUS_STS Detect Suspend Status USB 侦测到 Suspend Condition 时,此位置 1。 |
0x20C INEP_INT_MSK
|
默认值:0x00000000 |
输入端点中断屏蔽寄存器 (IN EP Interrupt Mask) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:14 |
- |
- |
- |
|
13 |
R/W |
0x0 |
NACK_INT_MSK NACK interrupt Mask
|
|
12:7 |
- |
- |
- |
|
6 |
R/W |
0x0 |
IN_NACK_EFF_INT_MSK IN Endpoint NACK Effective Mask
|
|
5 |
R/W |
0x0 |
INTOKEN_MIS_INT_MSK IN Token received with EP Mismatch Mask
|
|
4 |
R/W |
0x0 |
RX_INTOKEN_EMPTY_INT_MSK IN Token Received When TxFIFO Empty
Mask
|
|
3 |
R/W |
0x0 |
TIME_OUT_INT_MSK Timeout Interrupt Mask (Non-isochronous
endpoints)
|
|
2 |
R/W |
0x0 |
AHB_RW_ERR_INT_MSK AHB Read/Write Error Interrupt Mask
|
|
1 |
R/W |
0x0 |
DIS_EP_INT_MSK Endpoint Disabled Interrupt Mask
|
|
0 |
R/W |
0x0 |
TX_COMP_INT_MSK TX Transfer Completed Interrupt Mask
|
0x210 OUTEP_INT_MSK
|
默认值:0x00000000 |
输出端点中断屏蔽寄存器 (OUT EP Interrupt Mask) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:15 |
- |
- |
- |
|
14 |
R/W |
0x0 |
NYET_INT_MSK NYET interrupt Mask
|
|
13 |
R/W |
0x0 |
NACK_INT_MSK NACK interrupt Mask
|
|
12 |
R/W |
0x0 |
BABBLE_ERR_INT_MSK Babble Error Interrupt Mask
|
|
11:7 |
- |
- |
- |
|
6 |
R/W |
0x0 |
B2B_SETUP_INT_MSK Back-to-Back SETUP Packets Received Mask
|
|
5 |
R/W |
0x0 |
STS_PHASE_RX_INT_MSK Status Phase Received Mask
|
|
4 |
R/W |
0x0 |
OUT_TOKEN_EP_DIS_INT_MSK OUT Token Received when Endpoint
Disabled Mask
|
|
3 |
R/W |
0x0 |
SETUP_DONE_INT_MSK SETUP Phase Done Mask. Applies to control
endpoints only.
|
|
2 |
R/W |
0x0 |
AHB_RW_ERR_INT_MSK AHB Error Mask
|
|
1 |
R/W |
0x0 |
DIS_EP_INT_MSK Endpoint Disabled Interrupt Mask
|
|
0 |
R/W |
0x0 |
RX_COMP_INT_MSK Transfer Completed Interrupt Mask
|
0x214 USB_EP_INT
|
默认值:0x00000000 |
USB 端点中断寄存器 (USB EP Interrupt) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
R |
0x0 |
OUT_EP_INT OUT Endpoint Interrupt BIT,每位对应一个 OUT EP 的中断状态此中断为该
OUT EP 的总中断,需将该 OUT EP 的所有中断清除才可以清除该中断。
其它 bit 无效 |
|
15:0 |
R |
0x0 |
IN_EP_INT IN Endpoint Interrupt BIT,每位对应一个 IN EP 的中断状态此中断为该 IN
EP 的总中断,需将该 IN EP 的所有中断清除才可以清除该中断。
其它 bit 无效 |
0x218 USB_EP_INT_MSK
|
默认值:0x00000000 |
USB 端点中断屏蔽寄存器 (USB EP Interrupt Mask) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
R/W |
0x0 |
OUT_EP_INT_MSK OUT Endpoint Interrupt Mask,每位对应一个 OUT EP
的中断屏蔽位,1b'0 表示屏蔽,1b'1 表示不屏蔽。
其它 bit 无效 |
|
15:0 |
R/W |
0x0 |
IN_EP_INT_MSK IN Endpoint Interrupt Mask,每位对应一个 IN EP
的中断屏蔽位,1b'0 表示屏蔽,1b'1 表示不屏蔽。
其它 bit 无效 |
0x220 IN_EP0_CFG
|
默认值:0x00008000 |
输入 EP0 配置寄存器 (IN EP0 Configure) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31 |
R/WAC |
0x0 |
EN_EP Enable Endpoint,使能 IN EP0,将此位置 1,使能 EP0 发送数据。在 EP0 的 DIS_EP_INT 中断或 TX_COMP_INT 中断出现之前,此位会自清 0。 |
|
30 |
R/WAC |
0x0 |
DIS_EP Disable Endpoint,关闭 IN EP0,需要在 EN_EP = 1 的情况下,才可以对此位置 1。将此位置 1,EP0 停止发送数据,尽管 EP0 的 transfer 没有完成。 需要接收到 EP0 的 DIS_EP_INT 中断,才可以认为 EP0 Disable。在 EP0 disabled 中断出现之前,此位会自清 0。 |
|
29:28 |
- |
- |
- |
|
27 |
W |
0x0 |
S_NACK Set NACK,配置 NACK,此位置 1 设置 EP0 的 NACK
|
|
26 |
W |
0x0 |
C_NACK Clear NACK,清除 NACK,此位置 1,清除 EP0 的 NACK 位
|
|
25:22 |
R/W |
0x0 |
TXFIFO_NUM TXFIFO Number,IN EP0 对应 Non-periodic TxFIFO,因此此域一直为 0,无需配置。 |
|
21 |
R/WAC |
0x0 |
EN_STALL Enable STALL Handshake,此位置 1 发送 Stall 握手信号。Device core
会在收到 SETUP Token 后会将此位清 0。另外如果 NACK 与 Stall 同时置位,发送 Stall
握手信号的优先级更高。
|
|
20 |
- |
- |
- |
|
19:18 |
R |
0x0 |
EP0_TYPE Endpoint0, TypeEP0 的类型,这里为只读位,EP0 总是为 Control 类型的端点。 |
|
17 |
R |
0x0 |
IN_EP0_NACK_STS IN Endpoint0 NACK Status,IN EP0 当前的回复 NACK
的状态
注: 不管此状态位如何,对于 SETUP 数据包,Device
总是回复 ACK 握手信号。 |
|
16 |
- |
- |
- |
|
15 |
R |
0x1 |
ACT_EP Active Endpoint,对于 EP0 此位一直为 1,表示 control IN EP0 一直处于活跃的状态。 |
|
14:11 |
R/W |
0x0 |
NXT_TX_EP Next Transmit Endpoint,配置下一个发送的 IN EP Number,仅在 DMA
模式下适用:
|
|
10:2 |
- |
- |
- |
|
1:0 |
R/W |
0x0 |
MPS Maximum Packet Size,IN EP0 的最大 Packet Size
|
0x224+(n-1)*0x4 (n=1~4) IN_EPn_CFG
| 默认值:0x00000000 | IN 配置寄存器 (IN Configure) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31 | R/WAC | 0x0 | EN_EP Enable Endpoint,使能 IN ,将此位置 1 ,使能 发送数据。在 的 DIS_EP_INT 中断或 TX_COMP_INT 中断出现之前,此位会自清 0。 |
| 30 | R/WAC | 0x0 | DIS_EP Disable Endpoint,关闭 IN ,需要在 EN_EP = 1 的情况下,才可以对此位置 1。将此位置 1, 停止发送数据,尽管 的 transfer 没有完成。需要接收到 的 DIS_EP_INT 中断,才可以认为 Disable。在 disabled 中断出现之前,此位会自清 0。 |
| 29 | W | 0x0 | S_DATA1 Set DATA1 PID,只适用 interrupt/ bulk 类型的
EPs,此位置 1,PID 域选择 DATA1 S_ISO_ODD_FR
Set Isochronous Odd (micro) frame,只适用 isochronous INEPs,此位置 1,EO_FrNum 域选择奇数帧
|
| 28 | W | 0x0 | S_DATA0 Set DATA0 PID,只适用 interrupt/ bulk 类型的 IN EPs,此位置 1,PID 域选择 DATA0
Set Isochronous Even (micro) frame,只适用 isochronous INEPs,此位置 1,EO_FrNum 域选择偶数帧
|
| 27 | W | 0x0 | S_NACK Set NACK,配置 NACK,此位置 1 设置 的 NACK
|
| 26 | W | 0x0 | C_NACK Clear NACK,此位置 1,清除 的 NACK 握手信号
|
| 25:22 | R/W | 0x0 | TXFIFO_NUM TXFIFO Number,IN EP 所对应采用的 TXFIFO
|
| 21 | R/W | 0x0 | EN_STALL Enable STALL Handshake,此位置 1 发送 Stall 握手信号,不适用 Isochronous 类型 Endpoint。Device core 会在收到 SETUP Token 后会将此位清 0。另外如果 NACK 与 Stall 同时置位,发送 Stall 握手信号的优先级更高
|
| 20 | - | - | - |
| 19:18 | R/W | 0x0 | EP_TYPE_SEL Endpoint Type Select,EP 类型选择
|
| 17 | R | 0x0 | IN_EP_NACK_STS IN Endpoint NACK Status,IN EP 当前的回复 NACK 的状态
注:
不管此状态位如何,对于 SETUP 数据包,Device 总是回复 ACK
握手信号。 |
| 16 | R | 0x0 | DATA_PID_STS Endpoint Data PID Status,适用 interrupt/ bulk IN EPs
Even/ Odd Frame Number Status,适用 isochronous IN EPs
|
| 15 | R/WAC | 0x0 | ACT_EP Active Endpoint,EP 是否处于活跃工作状态,在 USB Data Line 出现 USB RESET 命令后,此位会自动清 0
|
| 14:11 | - | - | - |
| 10:0 | R/W | 0x0 | MPS Maximum Packet Size,IN 的最大 Packet Size,单位是 byte。 |
0x260 OUT_EP0_INT
| 默认值:0x00008000 | OUT EP0 配置寄存器 (OUT EP0 Configure) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31 | R/WAC | 0x0 | EN_EP Enable Endpoint,使能 OUT ,将此位置 1,使能 接收数据。在 OUT 的 SETUP_DONE_INT 中断、DIS_EP_INT 中断或 RX_COMP_INT 中断出现之前,此位会自清 0。 |
| 30 | R | 0x0 | DIS_EP Disable Endpoint,关闭 OUT ,软件无法对此位进行写操作,无法关闭 OUT 。 |
| 29:28 | - | - | - |
| 27 | W | 0x0 | S_NACK Set NACK,此位置 1,设置 OUT 发送 NACK
|
| 26 | W | 0x0 | C_NACK Clear NACK,此位置 1,清除 NACK 握手信号
|
| 25:22 | - | - | - |
| 21 | R/WAC | 0x0 | EN_STALL Enable STALL Handshake,此位置 1 发送 Stall
握手信号
|
| 20 | R/W | 0x0 | EN_SNOOP Enable Snoop Mode,配置此位可以使得 进入 Snoop mode。在 Snoop 模式下,USB Device
不会检查接收的 OUT packet 是否正确
|
| 19:18 | R | 0x0 | _TYPE Endpoint0 Type, 一直为 Control 类型,此 bit 不需配置。 |
| 17 | R | 0x0 | OUT__NACK_STS OUT
Endpoint0 NACK Status,OUT 当前的回复 NACK
的状态
注: 不管此状态位如何,对于 SETUP
数据包,Device 总是回复 ACK 握手信号。 |
| 16 | - | - | - |
| 15 | R | 0x1 | ACT_EP Active Endpoint,对于 此位一直为 1,表示 control OUT 一直处于活跃的状态。 |
| 14:2 | - | - | - |
| 1:0 | R/W | 0x0 | MPS Maximum Packet SizeOUT 的最大 Packet Size
|
0x264+(n-1)*0x4 (n=1~4) OUT_EPn_CFG
| 默认值:0x00008000 | OUT EP0 配置寄存器 (OUT EP0 Configure) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31 | R/WAC | 0x0 | EN_EP Enable Endpoint,使能 OUT ,将此位置 1,使能 接收数据。在 OUT 的 SETUP_DONE_INT 中断、DIS_EP_INT 中断或 RX_COMP_INT 中断出现之前,此位会自清 0。 |
| 30 | R | 0x0 | DIS_EP Disable Endpoint,关闭 OUT ,软件无法对此位进行写操作,无法关闭 OUT 。 |
| 29:28 | - | - | - |
| 27 | W | 0x0 | S_NACK Set NACK,此位置 1,设置 OUT 发送 NACK
|
| 26 | W | 0x0 | C_NACK Clear NACK,此位置 1,清除 NACK 握手信号
|
| 25:22 | - | - | - |
| 21 | R/WAC | 0x0 | EN_STALL Enable STALL Handshake,此位置 1 发送 Stall
握手信号
|
| 20 | R/W | 0x0 | EN_SNOOP Enable Snoop Mode,配置此位可以使得 进入 Snoop mode。在 Snoop 模式下,USB Device
不会检查接收的 OUT packet 是否正确
|
| 19:18 | R | 0x0 | _TYPE Endpoint0 Type, 一直为 Control 类型,此 bit 不需配置。 |
| 17 | R | 0x0 | OUT__NACK_STS OUT
Endpoint0 NACK Status,OUT 当前的回复 NACK
的状态
注: 不管此状态位如何,对于 SETUP
数据包,Device 总是回复 ACK 握手信号。 |
| 16 | - | - | - |
| 15 | R | 0x1 | ACT_EP Active Endpoint,对于 此位一直为 1,表示 control OUT 一直处于活跃的状态。 |
| 14:2 | - | - | - |
| 1:0 | R/W | 0x0 | MPS Maximum Packet SizeOUT 的最大 Packet Size
|
0x2A0+n*0x4 (n=0~4) IN_EPn_INT
| 默认值:0x00000080 | IN EPn 中断状态寄存器 (IN EPn INT Interrupt Status) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31:14 | - | - | - |
| 13 | R/W1C | 0x0 | NACK_INT NACK Interrupt,NACK 中断,当 NACK 信号发送出去,此位置 1。另外,如果 Isochronous IN EP 由于 TxFIFO 数据空间不足发送了 0 长度包,同样会产生此中断。 |
| 12 | R/W1C | 0x0 | BABBLE_ERR_INT Babble Error Interrupt,Babble 错误中断,当 接收到 BabbleError,此位置 1。 |
| 11:8 | - | - | - |
| 7 | R/W1C | 0x0 | TXFIFO_EMP_INT TXFIFO Empty Interrupt, 对应的 TXFIFO 空中断。此中断位在 TxFIFO 出现半空或全空时置 1。TXFIFO 空中断的阈值由 NP_TFTH 决定。 |
| 6 | R/W1C | 0x0 | IN_NACK_EFF_INT IN Endpoint NACK Effective Interrupt,此位只适用 IN EP。在对 C_NACK 置位前,此位需要先进行写 1 清 0。此中断位表示 IN EP 的 S_NACK 设置生效。此中断位不能保证 NACK 握手信号已发送到 USB 上。STALL 位的优先级会比 NACK 的优先级高。 |
| 5 | R/W1C | 0x0 | INTOKEN_MIS_INT IN Token Received with EP Mismatch,只适用于采用 Non-periodicFIFO 的 IN Eps。指示 Non-periodic TxFIFO 的数据与 EP 端点不匹配。 |
| 4 | R/W1C | 0x0 | RX_INTOKEN_EMPTY_INT IN Token Received when TxFIFO is Empty,此中断位表示 EP 在收到 IN Token 的时候,对应的 TxFIFO 为空。 |
| 3 | R/W1C | 0x0 | TIME_OUT_INT Timeout Interrupt,只适用于控制 IN EP。此位用于指示 EP 收到上次 IN Token 后,USB 检测到超时的状态出现。 |
| 2 | R/W1C | 0x0 | AHB_RW_ERR_INT AHB Read/ Write Error Interrupt,AHB 总线上的读写错误引起的中断,此中断只有在 DMA 的模式下有效。 |
| 1 | R/W1C | 0x0 | DIS_EP_INT Endpoint Disabled Interrupt,EP 被禁止后产生的中断。 |
| 0 | R/W1C | 0x0 | TX_COMP_INT TX Transfer Completed Interrupt,该中断用于指示 TX Transfer 完成。 |
0x2E0+n*0x4(n=0~4) OUT_EPn_INT
| 默认值:0x00000000 | OUT EPn 中断状态寄存器 (OUT EPn INT Status) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31:16 | - | - | - |
| 15 | R/W1C | 0x0 | SETUP_PKT_RX_INT Setup Packet Received Interrupt,只适用于 Control OUT EP。用于指示 buffer 收到了 8 Byte 的 setup 数据。OUT 存在此 bit,其它的 EP 无此 bit。 |
| 14 | R/W1C | 0x0 | NYET_INT NYET interrupt,在非 isochronous OUT EP 发出 NYET 相应信号时,此位将置 1,产生中断信号。 |
| 13 | R/W1C | 0x0 | NACK_INT NACK Interrupt,NACK 中断,当 NACK 信号发送出去,此位置 1。 |
| 12 | R/W1C | 0x0 | BABBLE_ERR_INT Babble Error interrupt,当 EP 收到 babble 信号,此位将置 1,产生中断信号。 |
| 11 | R/W1C | 0x0 | PKT_DROP_STS_INT Packet Dropped Status Interrupt,此位置 1 用于指示存在 Isochronous OUT packet 丢失。此位无相应的 mask 位并且不会产生中断。 |
| 10:7 | - | - | - |
| 6 | R/W1C | 0x0 | B2B_SETUP_INT Back-to-Back SETUP Packets Received,此位只适用 Control OUTEP。此位用于指示 device core 的 Control EP 收到了超过 3 个连续的 SETUP packets。 |
| 5 | R/W1C | 0x0 | STS_PHASE_RX_INT Status Phase Received For Control Write,此中断位只适用于 Control OUT EP。此位用于指示进入 Control EP 的 Status Phase。 |
| 4 | R/W1C | 0x0 | OUT_TOKEN_EP_DIS_INT OUT Token Received when Endpoint Disabled,此中断位表示 EP 在收到 OUT Token 的时候,相应的 EP 没有使能。 |
| 3 | R/W1C | 0x0 | SETUP_DONE_INT SetUP Phase Done,只适用于 Control OUT EP。此位用于指示 Control EP 的 SETUP 阶段完成,可以对 SETUP 数据包进行解析。 |
| 2 | R/W1C | 0x0 | AHB_RW_ERR_INT AHB Read/ Write Error Interrupt,AHB 总线上的读写错误引起的中断,此中断只有在 DMA 的模式下有效。 |
| 1 | R/W1C | 0x0 | DIS_EP_INT Endpoint Disabled Interrupt,EP 被禁止后产生的中断。 |
| 0 | R/W1C | 0x0 | RX_COMP_INT RX Transfer Completed Interrupt,该位用于表示 RX Transfer 完成。 |
0x320 IN_EP0_TSF_SIZ
| 默认值:0x00000000 | IN EP0 传输 Size 寄存器 (IN EP0 Transfer Size) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31:21 | - | - | - |
| 20:19 | R/W | 0x0 | TX_PKT_CNT Transmit Packet Count,表示 EP 的 Tansfer 包含的数据包的数量,此域会在每次读取 TxFIFO 的情况下,逐次递减。 |
| 18:7 | - | - | - |
| 6:0 | R/W | 0x0 | XFR_SIZ Transfer Size,表示 EP 的 Transfer 的大小 (以 Byte 为单位)。此域会在每次 packet 从外部存储写入 TxFIFO 的情况下,逐次递减。发送数据时,配置 XferSize,相当于配置需要发送的数据长度。若需要发送 N+1 个 Packet,配置如下:
|
0x324+(n-1)*0x4 (n=1~4) IN_EPn_TSF_SIZ
| 默认值:0x00000000 | IN EPn 传输 Size 寄存器 (IN EPn Transfer Size) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31 | - | - | - |
| 30:29 | R/W | 0x0 | TX_MUTI_PKT Transmit Multiply Packet for IN EP,针对 Period-IN-EP,配置每微帧 (micro frame)必须发送的 packet 数目。
|
| R | 0x0 | TX_PKT_BF_SWITCH Transmit Packet number Before Switch EP,在切换 EP 之前,DMA 需要发送的 Packet 数目。此域只有在 DMA 使能的情况下有效。 |
|
| 28:19 | R/W | 0x0 | PKT_CNT Packet Count,此域指示 EP 组成 Transfer 的 data packet 的数量,PktCnt = XferSize/MPS。此字段每次从 TxFIFO 读取一个数据包 (最大大小或短数据包)时递减。 |
| 18:0 | R/W | 0x0 | XFR_SIZ Transfer Size,表示 EP 的 Transfer 的大小。发送数据时,配置
XferSize,相当于配置需要发送的数据长度。若需要发送 N+1 个 Packet,配置如下:
|
0x360 OUT_EP0_TSF_SIZ
| 默认值:0x00000000 | OUT EP0 传输 Size 寄存器 (OUT EP0 Transfer Size) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31 | - | - | - |
| 30:29 | R/W | 0x0 | SUP_PKT_CNT Setup Packet Count,表示能够接收连续的 SETUP 数据包数量
|
| 28:20 | - | - | - |
| 19 | R/W | 0x0 | PKT_CNT Packet Count,表示 EP0 的数据包的数量,此域会在每次写入 RxFIFO 的情况下,逐次递减。 |
| 18:7 | - | - | - |
| 6:0 | R/W | 0x0 | XFR_SIZ Transfer Size,表示 EP 的 Transfer 的大小,一般配置为 MPS (Max Packet Size) 即可。通过此域可以了解接收到数据包的大小。假设配置 PktCnt = 1,XferSize = MPS = 64 bytes,若接收到一个 8-byte 数据包,XferSize = 64 - 8 = 56 bytes,PktCnt = 1 - 1 = 0,此时产生 Xfer Complete 中断。 |
0x364+(n-1)*0x4 (n=1~4) OUT_EPn_TSF_SIZ
| 默认值:0x00000000 | OUT EPn 传输 Size 寄存器 (OUT EPn Transfer Size) | ||
|---|---|---|---|
| 位域 | 类型 | 默认值 | 描述 |
| 31 | - | - | - |
| 30:29 | R | 0x0 | RX_DTA_PID Received Data PID,只适用于 isochronous OUT EP,表示当前 EP
接收的 PID data 类型:
|
| R/W | 0x0 | SUP_PKT_CNT SETUP Packet Count,只适用于 control OUT EP,表示可以连续接收 SETUP Packe t 的数目:
|
|
| 28:19 | R/W | 0x0 | PKT_CNT Packet Count,指示 EP 的组成 Transfer 的 data packet 的大小,PktCnt = XferSize / MPS。 |
| 18:0 | R/W | 0x0 | XFR_SIZ Transfer Size,表示 EP 的 Transfer 的大小,一般配置为 MPS (Max Packet Size) 即可。通过此域可以了解接收到数据包的大小。假设配置 PktCnt = 1,XferSize = MPS = 64 bytes,若接收到一个 8-byte 数据包,XferSize = 64 - 8 = 56 bytes,PktCnt = 1 - 1 =0,此时产生 Xfer Complete 中断。 |
0x3A0+n*0x4 (n=0~4) IN_EPn_DMA
|
默认值:0xXXXXXXXX (不定态) |
IN EPn DMA 地址配置寄存器(In Endpoint DMA Address Setup) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:0 |
R/W |
0xXXXXXXXX |
IN_DMA_ADDR 此寄存器用于保存 IN EPn 的外部存储 Buffer 的起始地址。 |
0x3E0+n*0x4 (n=0~4) OUT_EPn_DMA
|
默认值:0xXXXXXXXX(不定态) |
OUT EPn DMA 地址配置寄存器(Out Endpoint DMA Address Setup) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:0 |
R/W |
0xXXXXXXXX |
OUT_DMA_ADDR 此寄存器用于保存 OUT EPn 的外部存储 Buffer 的起始地址。 |
0x420+n*0x4 (n=0~4) IN_EPn_TXFIFO_STA
|
默认值:0x00000000 |
IN EPn TX FIFO 状态寄存器(In EPn Txfifo Status) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:16 |
- |
- |
- |
|
15:0 |
RO |
0x0 |
IN_EP_TXFIFO_STS |
0xFFC USB_DEV_VERSION
|
默认值:0x00000300 |
USB Device 版本寄存器(USB Version) |
||
|---|---|---|---|
|
位域 |
类型 |
默认值 |
描述 |
|
31:0 |
RO |
0x00000300 | VERSION 版本,V3.0 |
