Edit online

寄存器描述

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。
  • 0x0:不支持,数据传输采用 INCR Burst 传输。
  • 0x1:支持,数据传输采用 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 长度。
  • 0x0:Single
  • 0x1:INCR
  • 0x3:INCR4
  • 0x5:INCR8
  • 0x7:INCR16
  • Others: Reserved

11

R/W

0x0

EN_DMA
Enable DMA,DMA 使能
  • 0x0:工作在 Slave Mode,通过 AHB 总线传输数据。
  • 0x1:工作在 DMA Mode。

9

R/W

0x0

GIE
Global Interrupt Enable,全局中断使能位,使能 USB IP 的中断。
  • 0x0:未使能
  • 0x1:使能全局中断

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 之前,此域不能及进行更改。
  • 0x0:TXFIFO flush
  • 0x1:TXFIFO 1 flush
  • 0x2:TXFIFO 2 flush
  • 0x3:TXFIFO 3 flush
  • 0x4:TXFIFO 4 flush
  • 0x10:Flush all TXFIFO
  • Others:无效

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,无需配置,保持默认值即可。
  • 0x0:在 Suspend 状态 PHY 停止向内部时钟模块供电
  • 0x1:PHY 不会停止向内部时钟模块供电

18

R/W

0x0

ULPI_AUTO_RES
ULPI Auto Resume,配置 ULPI PHY 的寄存器的 AutoResume 功能。采用内部 PHY,无需配置,保持默认值即可。
  • 0x0:PHY 不采用 AutoResume 功能
  • 0x1:PHY 采用 AutoResume 功能

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,这里无需配置,保持默认值即可。
  • 0x0:480 MHz 的内部 PLL 时钟
  • 0x1:48 MHz 的外部时钟

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,无需配置,保持默认值即可。
  • 0x0:单沿触发,8-bit 数据总线
  • 0x1:双沿触发,4-bit 数据总线

4

R/W

0x0

SEL_PHY_IF
Select PHY Interface,选择 PHY 的接口类型。采用内部 PHY,无需配置,保持默认值即可。
  • 0x0:UTMI+ Interface
  • 0x1:ULPI Interface

3

R/W

0x0

PHY_IF_WIDTH,PHY Interface Width,UTMI + PHY 选择 8-bit 或 16-bit 接口,ULPI 必须选择 8-bit 接口,采用内部 PHY,无需配置,保持默认值即可。
  • 0x0:8 bits
  • 0x1:16 bits

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 信号后进行唤醒。
  • 0x0:无唤醒中断
  • 0x1:发生唤醒中断

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 不一致
  • 0x0:无中断产生
  • 0x1:中断产生

16

-

-

-

15

R/W1C

0x0

EOP_FR_INT
End of Periodic Frame Interrupt,此中断指示当前 Frame 达到 SET_PER_FR_INT 所设置的时间点
  • 0x0:无中断产生
  • 0x1:中断产生

14

R/W1C

0x0

ISO_OUT_DROP_INT
Isochronous OUT Packet Dropped Interrupt,此中断表示由于 RXFIFO 无足够空间存放 isochronous OUT EP 的一个 Maximum size 的数据包,拒绝接收 isochronous OUT packet
  • 0x0:无中断产生
  • 0x1:中断产生

13

R/W1C

0x0

Enum_DONE
Enumeration Done,此中断用于指示完成 USB 的速率枚举
  • 0x0:未完成速率枚举
  • 0x1:完成速率枚举

12

R/W1C

0x0

USB_REST
USB Reset,此中断用于指示 USB BUS 出现了 RESET 信号
  • 0x0:未出现 RESET
  • 0x1:出现 RESET

11

R/W1C

0x0

USB_SUS
USB Suspend,此中断用于指示 USB 进入 Suspend 状态
  • 0x0:未出现 Suspend
  • 0x1:出现 Suspend

10

R/W1C

0x0

EARLY_SUS
Early Suspend,此中断用于指示 USB 进入 idle 状态超过 3 ms
  • 0x0:未出现 Early Suspend
  • 0x1:出现 Early Suspend

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 需要读取
  • 0x0:RXFIFO 空
  • 0x1:RXFIFO 非空

3

R/W1C

0x0

RX_SOF
Receive Start of (micro) Frame Token,此位指示 USB 接收到 SOFToken
  • 0x0:未接收到 SOF Token
  • 0x1:接收到 SOF Token

2:0

-

-

-

0x014 USB_INT_MSK

默认值:0x00000000

USB 中断屏蔽寄存器 (USB Interrupt Mask)

位域

类型

默认值

描述

31

R/W

0x0

WAKEUP_INT_MSK
Wake up Interrupt,唤醒产生中断,在 Suspend 状态下,收到 Host 发出的 Resume 信号后进行唤醒。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

30:23

-

-

-

22

R/W

0x0

DATA_FET_STOP_INT_MSK
Data Fetch Stop Interrupt,此中断表示在 DMA 模式下,IN EP 取数据出现停止,原因是 TXFIFO 或请求队列的空间不够。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

21

R/W

0x0

INCOMP_ISO_OUT_INT_MSK
Incomplete Isochronous OUT Transfer Interrupt,此位中断用于指示至少一个 Isochronous OUT EP 当前帧里的 Transfer 不完整。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

20

R/W

0x0

INCOMP_ISO_IN_INT_MSK
Incomplete Isochronous IN Transfer Interrupt,此位中断用于指示至少一个 Isochronous IN EP 当前帧里的 Transfer 不完整。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

19

R/W

0x0

OUT_EP_INT_MSK
OUT Endpoints Interrupt,指示存在 OUT EP 中断。此中断为 OUT EP 的总中断。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

18

R/W

0x0

IN_EP_INT_MSK
IN Endpoints Interrupt,指示存在 IN EP 中断。此中断为 IN EP 的总中断。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

17

R/W

0x0

EP_MIS_INT_MSK
Endpoint Mismatch Interrupt,指示 Non-periodic TxFIFO 的数据与 IN Endpoint 不一致。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

16

-

-

-

15

R/W

0x0

EOP_FR_INT_MSK
End of Periodic Frame Interrupt,此中断指示当前 Frame 达到 SET_PER_FR_INT 所设置的时间点:
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

14

R/W

0x0

ISO_OUT_DROP_INT_MSK
Isochronous OUT Packet Dropped Interrupt,此中断表示由于 RXFIFO 无足够空间存放 isochronous OUT EP 的一个 Maximum size 的数据包,拒绝接收 isochronous OUT packet。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

13

R/W

0x0

Enum_DONE_MSK
Enumeration Done,此中断用于指示完成 USB 的速率枚举。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

12

R/W

0x0

USB_REST_MSK
USB Reset,此中断用于指示 USB BUS 出现了 RESET 信号。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

11

R/W

0x0

USB_SUS_MSK
USB Suspend,此中断用于指示 USB 进入 Suspend 状态。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

10

R/W

0x0

EARLY_SUS_MSK
Early Suspend,此中断用于指示 USB 进入 idle 状态超过 3 ms。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

9:8

-

-

-

7

R/W

0x0

OUT_NACK_EFF_MSK
OUT Endpoint NACK Effective,此中断用于指示寄存器SET_OUT_NACK 配置生效。
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

4

R/W

0x0

RXFIFO_NO_EMP_MSK
RXFIFO Non-Empty,指示 RxFIFO 里至少有一个 packet 需要读取
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

3

R/W

0x0

RX_SOF_MSK
Receive Start of (micro) Frame Token,指示 USB 接收到 SOFToken
  • 0x0:屏蔽中断
  • 0x1:不屏蔽中断

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 的状态。
  • 0x1:OUT Token 回复 NACK(触发中断)
  • 0x2:OUT Token 接收到数据包,软件可读取 RXFIFO 数据
  • 0x3:OUT Token 传输完成(触发 OUT_TX_COMP_INT 中断)
  • 0x4:SETUP Token 传输完成(触发 SETUP_TX_COMP _INT 中断)
  • 0x6:SETUP Token 接收到数据包,软件可读取 RXFIFO 数据
  • Others:Reserved

16:15

R

0x0

OUT_DAT_PID
Data PID,指示接收到的 OUT data packet 的 DATA PID 类型:
  • 0x0:DATA0
  • 0x1:DATA2
  • 0x2:DATA1
  • 0x3:MDATA

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。
  • 0x0:关闭
  • 0x1:使能

26

-

-

-

25:17

R/W

0x8

RxThrLen

Receive Threshlod Length,接收阈值长度指示在 AHB 开始传输之前,USB 接收的数据量。阈值长度单位为 Dwords,最小值为 8 Dwords。

16

R/W

0x0

RxThren

Receive Threshlod Enable,接收阈值使能

正常不建议使能接收阈值,因为可能导致 Rxfifo 出现问题,特别是当接收出错的时候。
  • 0x0:关闭
  • 0x1:使能

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 周转时间需求。
  • 0x0:AHB 阈值=MAC 阈值
  • 0x1:AHB 阈值=MAC 阈值/2
  • 0x2:AHB 阈值=MAC 阈值/4
  • 0x3:AHB 阈值=MAC 阈值/8

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 端点阈值使能

  • 0x0:关闭
  • 0x1:使能

0

R/W

0x0

NonISOThrEn

Non-ISO IN Endpoints Threshlod Enable,非实时 IN 端点阈值使能

  • 0x0:关闭
  • 0x1:使能

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 的状态。
  • 0x1:OUT Token 回复 NACK (触发中断)
  • 0x2:OUT Token 接收到数据包,软件可读取 RXFIFO 数据
  • 0x3:OUT Token 传输完成(触发 OUT_TX_COMP_INT 中断)
  • 0x4:SETUP Token 传输完成(触发 SETUP_TX_COMP _INT 中断)
  • 0x6:SETUP Token 接收到数据包,软件可读取 RXFIFO 数据
  • Others:Reserved

16:15

R

0x0

OUT_DAT_PID
Data PID,指示接收到的 OUT data packet 的 DATA PID 类型
  • 0x0:DATA0
  • 0x1:DATA2
  • 0x2:DATA1
  • 0x3:MDATA

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 的功耗。
  • 0x0:无操作
  • 0x1:停止 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 中断
  • 0x0:Early suspend 中断可以触发 erratic error
  • 0x1:Early suspend 中断不触发 erratic error

14

R/W

0x0

EN_DLY_XCVR
设备 chirp 期间 xcvr_sel 和 txvalid 之间的延迟使能。
  • 0x0:xcvr_sel 和 txvalid 之间没有延迟
  • 0x1:使能 xcvr_sel 和 txvalid 之间的延迟

13

-

-

-

12:11

R/W

0x0

SET_PER_FR_INT
SET Periodic Frame Interval,设置 Periodic Frame 结束的时间点
  • 0x0:80%
  • 0x1:85%
  • 0x2:90%
  • 0x3:95%

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 数据包时的处理方式
  • 0x0:发送接收到的 OUT packet 到应用层,同时根据 NACK 和 Bit 的配置发送握手信号
  • 0x1:发送 STALL 握手信号,并且不会发送接收到的 OUT packet 给应用层

1:0

R/W

0x0

USB_DEV_SPD_SET
USB Device Speed Set,设置 USB Device 进行枚举的 USB 速度
  • 0x0:High speed,高速设备
  • 0x1:Full speed,全速设备
  • Others:Reserved

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
  • 0x0:未使能
  • 0x1:使能

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
  • 0x0:无状态指示
  • 0x1:指示 CSR 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,测试模式选择
  • 0x0:Test mode disabled
  • 0x1:Test_J mode
  • 0x2:Test_K mode
  • 0x3:Test_SE0_NACK mode
  • 0x4:Test_Packet mode
  • 0x5:Test_Force_Enable
  • Others:reserved

3

R

0x0

GLB_OUT_NACK_STS
Global OUT NACK Status
  • 0x0:根据 FIFO 状态和 NAK 和 STALL 位设置发送握手信号。
  • 0x1:无论空间是否可用,都不会将数据写入 RxFIFO,对所有数据包(除了 SETUP 事务)发送 NAK 握手信号,并丢弃所有同步 OUT 数据包。

2

R

0x0

GLB_IN_NACK_STS
Global IN Non-periodic NACK Status
  • 0x0:根据 TXFIFO 的数据使用情况,发送握手信号
  • 0x1:不管 TXFIFO 的数据使用情况,Non-periodic IN Eps 发送 NACK 握手信号

1

R/W

0x1

SET_DEV_DISCON
Set USB Device Disconnect,设置 Device 进行 disconnect 操作
  • 0x0:正常工作
  • 0x1:进行 disconnect 操作

0

R/W

0x0

EN_REM_WAKUP
Enable Remot Wakeup,使能 USB Devcie 唤醒 USB Host
  • 0x0:未使能
  • 0x1:使能

0x208 USB_LINE_STS

默认值:0x00000002

USB Line 状态寄存器 (USB Line Status)

位域

类型

默认值

描述

31:24

-

-

-

23:22

R

0x0

DAT_LINE_STS
Data Line Status,指示目前 USB 数据线的逻辑电平
  • 1 指示高电平
  • 0 指示低电平
  • bit23:D+ 线上的逻辑电平
  • bit22:D- 线上的逻辑电平

21:8

R

0x0

RX_FR_NUM
Number of the Received SOF
  • 在 high speed 时,此域表示 micro Frame number。
  • 在 full or low speed 时,此域表示 Frame number。

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 得出的速率
  • 0x0:枚举为高速设备
  • 0x1:枚举为全速设备
  • Others:Reserved

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
  • 0x0:屏蔽
  • 0x1:不屏蔽

12:7

-

-

-

6

R/W

0x0

IN_NACK_EFF_INT_MSK
IN Endpoint NACK Effective Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

5

R/W

0x0

INTOKEN_MIS_INT_MSK
IN Token received with EP Mismatch Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

4

R/W

0x0

RX_INTOKEN_EMPTY_INT_MSK
IN Token Received When TxFIFO Empty Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

3

R/W

0x0

TIME_OUT_INT_MSK
Timeout Interrupt Mask (Non-isochronous endpoints)
  • 0x0:屏蔽
  • 0x1:不屏蔽

2

R/W

0x0

AHB_RW_ERR_INT_MSK
AHB Read/Write Error Interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

1

R/W

0x0

DIS_EP_INT_MSK
Endpoint Disabled Interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

0

R/W

0x0

TX_COMP_INT_MSK
TX Transfer Completed Interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

0x210 OUTEP_INT_MSK

默认值:0x00000000

输出端点中断屏蔽寄存器 (OUT EP Interrupt Mask)

位域

类型

默认值

描述

31:15

-

-

-

14

R/W

0x0

NYET_INT_MSK
NYET interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

13

R/W

0x0

NACK_INT_MSK
NACK interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

12

R/W

0x0

BABBLE_ERR_INT_MSK
Babble Error Interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

11:7

-

-

-

6

R/W

0x0

B2B_SETUP_INT_MSK
Back-to-Back SETUP Packets Received Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

5

R/W

0x0

STS_PHASE_RX_INT_MSK
Status Phase Received Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

4

R/W

0x0

OUT_TOKEN_EP_DIS_INT_MSK
OUT Token Received when Endpoint Disabled Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

3

R/W

0x0

SETUP_DONE_INT_MSK
SETUP Phase Done Mask. Applies to control endpoints only.
  • 0x0:屏蔽
  • 0x1:不屏蔽

2

R/W

0x0

AHB_RW_ERR_INT_MSK
AHB Error Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

1

R/W

0x0

DIS_EP_INT_MSK
Endpoint Disabled Interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

0

R/W

0x0

RX_COMP_INT_MSK
Transfer Completed Interrupt Mask
  • 0x0:屏蔽
  • 0x1:不屏蔽

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 16 for OUT Endpoint 0
  • Bit 17 for OUT Endpoint 1
  • Bit 18 for OUT Endpoint 2
  • Bit 19 for OUT Endpoint 3
  • Bit 20 for OUT Endpoint 4

其它 bit 无效

15:0

R

0x0

IN_EP_INT
IN Endpoint Interrupt BIT,每位对应一个 IN EP 的中断状态此中断为该 IN EP 的总中断,需将该 IN EP 的所有中断清除才可以清除该中断。
  • Bit 0 for IN Endpoint 0
  • Bit 1 for IN Endpoint 1
  • Bit 2 for IN Endpoint 2
  • Bit 3 for IN Endpoint 3
  • Bit 4 for IN Endpoint 4

其它 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 16 for OUT Endpoint 0
  • Bit 17 for OUT Endpoint 1
  • Bit 18 for OUT Endpoint 2
  • Bit 19 for OUT Endpoint 3
  • Bit 20 for OUT Endpoint 4

其它 bit 无效

15:0

R/W

0x0

IN_EP_INT_MSK
IN Endpoint Interrupt Mask,每位对应一个 IN EP 的中断屏蔽位,1b'0 表示屏蔽,1b'1 表示不屏蔽。
  • Bit 0 for IN Endpoint 0Bit 1 for IN Endpoint 1
  • Bit 2 for IN Endpoint 2
  • Bit 3 for IN Endpoint 3
  • Bit 4 for IN Endpoint 4

其它 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
  • 0x0:无操作
  • 0x1:Control EP0 发送 NACK 握手信号

26

W

0x0

C_NACK
Clear NACK,清除 NACK,此位置 1,清除 EP0 的 NACK 位
  • 0x0:无操作
  • 0x1:清除 Control 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 握手信号的优先级更高。
  • 0x0:无操作
  • 0x1:发送 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 的状态
  • 0x0:根据 FIFO 的状态,EP0 发送非 NACK 握手信号
  • 0x1: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 模式下适用:
  • 0x0:IN EP0
  • 0x1:IN EP1
  • 0x2:IN EP2
  • 0x3:IN EP3
  • 0x4:IN EP4
  • Others:Reserved

10:2

-

-

-

1:0

R/W

0x0

MPS
Maximum Packet Size,IN EP0 的最大 Packet Size
  • 0x0:64 bytes
  • 0x1:32 bytes
  • 0x2:16 bytes
  • 0x3:8 bytes

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
  • 0x0:无操作
  • 0x1:PID 域选择 DATA1
S_ISO_ODD_FR

Set Isochronous Odd (micro) frame,只适用 isochronous INEPs,此位置 1,EO_FrNum 域选择奇数帧

  • 0x0:无操作
  • 0x1:EO_FrNum 域选择奇数帧
28 W 0x0 S_DATA0

Set DATA0 PID,只适用 interrupt/ bulk 类型的 IN EPs,此位置 1,PID 域选择 DATA0

  • 0x0:无操作
  • 0x1:PID 域选择 DATA0
SS_ISO_EVEN_FR

Set Isochronous Even (micro) frame,只适用 isochronous INEPs,此位置 1,EO_FrNum 域选择偶数帧

  • 0x0:无操作
  • 0x1:EO_FrNum 域选择偶数帧
27 W 0x0 S_NACK

Set NACK,配置 NACK,此位置 1 设置 的 NACK

  • 0x0:无操作
  • 0x1: 发送 NACK 握手信号
26 W 0x0 C_NACK

Clear NACK,此位置 1,清除 的 NACK 握手信号

  • 0x0:无操作
  • 0x1:清除 IN 的 NACK 握手信号
25:22 R/W 0x0 TXFIFO_NUM

TXFIFO Number,IN EP 所对应采用的 TXFIFO

  • 0x0:TxFIFO0
  • 0x1:TxFIFO1
  • 0x2:TxFIFO2
  • 0x3:TxFIFO3
  • 0x4:TxFIFO4
  • Others:Reserved
21 R/W 0x0 EN_STALL

Enable STALL Handshake,此位置 1 发送 Stall 握手信号,不适用 Isochronous 类型 Endpoint。Device core 会在收到 SETUP Token 后会将此位清 0。另外如果 NACK 与 Stall 同时置位,发送 Stall 握手信号的优先级更高

  • 0x0:无操作
  • 0x1:发送 Stall 握手信号
20 - - -
19:18 R/W 0x0 EP_TYPE_SEL

Endpoint Type Select,EP 类型选择

  • 0x0:Control
  • 0x1:Isochronous
  • 0x2:Bulk
  • 0x3:Interrupt
17 R 0x0 IN_EP_NACK_STS

IN Endpoint NACK Status,IN EP 当前的回复 NACK 的状态

  • 0x0:根据 FIFO 的状态,EP 发送非 NACK 握手信号
  • 0x1:EP 回复 NACK 握手信号
注:
不管此状态位如何,对于 SETUP 数据包,Device 总是回复 ACK 握手信号。
16 R 0x0 DATA_PID_STS

Endpoint Data PID Status,适用 interrupt/ bulk IN EPs

  • 0x0:DATA0
  • 0x1:DATA1
EO_FRNUM_STS

Even/ Odd Frame Number Status,适用 isochronous IN EPs

  • 0x0:偶数帧
  • 0x1:奇数帧
15 R/WAC 0x0 ACT_EP

Active Endpoint,EP 是否处于活跃工作状态,在 USB Data Line 出现 USB RESET 命令后,此位会自动清 0

  • 0x0:未活跃
  • 0x1:活跃
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
  • 0x0:无操作
  • 0x1:Control 发送 NACK 握手信号
26 W 0x0 C_NACK
Clear NACK,此位置 1,清除 NACK 握手信号
  • 0x0:无操作

  • 0x1:清除 Control 的 NACK 握手信号

25:22 - - -
21 R/WAC 0x0 EN_STALL
Enable STALL Handshake,此位置 1 发送 Stall 握手信号
  • 0x0:无操作
  • 0x1:发送 Stall 握手信号
Device core 会在收到 SETUP Token 后会将此位清 0。如果 NACK 与 Stall 信号同时设置,发送 Stall 握手信号的优先级更高。另外,不管此位的设置情况,Device core 只要收到 SETUP 数据包,就会回复 ACK 握手信号。
20 R/W 0x0 EN_SNOOP
Enable Snoop Mode,配置此位可以使得 进入 Snoop mode。在 Snoop 模式下,USB Device 不会检查接收的 OUT packet 是否正确
  • 0x0:未进入 Snoop mode
  • 0x1:进入 Snoop mode
19:18 R 0x0 _TYPE

Endpoint0 Type, 一直为 Control 类型,此 bit 不需配置。

17 R 0x0 OUT__NACK_STS
OUT Endpoint0 NACK Status,OUT 当前的回复 NACK 的状态
  • 0x0:根据 FIFO 的状态, 发送非 NACK 握手信号
  • 0x1: 回复 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
  • 0x0:64 bytes
  • 0x1:32 bytes
  • 0x2:16 bytes
  • 0x3:8 bytes

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
  • 0x0:无操作
  • 0x1:Control 发送 NACK 握手信号
26 W 0x0 C_NACK
Clear NACK,此位置 1,清除 NACK 握手信号
  • 0x0:无操作

  • 0x1:清除 Control 的 NACK 握手信号

25:22 - - -
21 R/WAC 0x0 EN_STALL
Enable STALL Handshake,此位置 1 发送 Stall 握手信号
  • 0x0:无操作
  • 0x1:发送 Stall 握手信号
Device core 会在收到 SETUP Token 后会将此位清 0。如果 NACK 与 Stall 信号同时设置,发送 Stall 握手信号的优先级更高。另外,不管此位的设置情况,Device core 只要收到 SETUP 数据包,就会回复 ACK 握手信号。
20 R/W 0x0 EN_SNOOP
Enable Snoop Mode,配置此位可以使得 进入 Snoop mode。在 Snoop 模式下,USB Device 不会检查接收的 OUT packet 是否正确
  • 0x0:未进入 Snoop mode
  • 0x1:进入 Snoop mode
19:18 R 0x0 _TYPE

Endpoint0 Type, 一直为 Control 类型,此 bit 不需配置。

17 R 0x0 OUT__NACK_STS
OUT Endpoint0 NACK Status,OUT 当前的回复 NACK 的状态
  • 0x0:根据 FIFO 的状态, 发送非 NACK 握手信号
  • 0x1: 回复 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
  • 0x0:64 bytes
  • 0x1:32 bytes
  • 0x2:16 bytes
  • 0x3:8 bytes

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,配置如下:

  • XferSize 配置:N * MPS(Max packet size) + Short packet size
  • PKT_CNT 配置:N + 1(N 个长包 + 1 个短包)

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 数目。

  • 0x1:1 packet
  • 0x2:2 packet
  • 0x3:3 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,配置如下:
  • XferSize 配置:N * MPS (Max packet size) + Short packet size
  • PKT_CNT 配置:N + 1(N 个长包 + 1 个短包)
在 XferSize 递减到 0 后,表示数据已写入 TxFIFO,硬件自动完成发送,此时产生 XferComplete 中断。

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 数据包数量
  • 0x1:1 个数据包
  • 0x2:2 个数据包
  • 0x3:3 个数据包
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 类型:
  • 0x0:DATA0
  • 0x1:DATA2
  • 0x2:DATA1
  • 0x3:MDATA
R/W 0x0 SUP_PKT_CNT

SETUP Packet Count,只适用于 control OUT EP,表示可以连续接收 SETUP Packe t 的数目:

  • 0x1: 1 packet
  • 0x2: 2 packets
  • 0x3:3 packets
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