Edit online

寄存器描述

3 Mar 2025
Read time: 76 minute(s)

0x000 OTG_CTL

默认值:0x040D0000

OTG 基本配置寄存器 (OTG Contrl)

位域

类型

默认值

描述

31

R/W

0x0

保持默认值,不要改动

30

R/W

0x0

保持默认值,不要改动

29

R/W

0x0

保持默认值,不要改动

28

R/W

0x0

ASSB

AHB Support Single Burst,AHB 支持 Single Burst

0x0:不支持,数据传输采用 INCR Burst 传输

0x1:支持,数据传输采用 Single Burst 传输

27

R/W

0x0

保持默认值,不要改动

26

R

0x1

AHB Master Idle,指示 AHB Master State Machine 处于 Idle 状态。

25

R

0x0

DMA Request Signal,用于 debug。

24:22

-

-

-

21

R

0x0

当前工作模式

0x0:Device 模式

0x1:Host 模式

20

R/W

0x0

OTG 版本

0x0:OTG 版本为 1.3

0x1:OTG 版本为 2.0

19

R

0x1

B-Session 有效标志,只用于 Device 模式,可用于判断 Device 是否连接

0x0:B-Session 无效

0x1:B-Session 有效

18

R

0x1

A-Session 有效标志,只用于 Host 模式

0x0:A-Session 无效

0x1:A-Session 有效

17

R

0x0

防抖时间设置,只用于 Host 模式

0x0:长防抖时间,用于物理连接(100 ms + 2.5 µs)

0x1:短防抖时间,用于软连接(2.5 µs)

16

R

0x1

连接线 ID 状态,表示模块工作模式

0x0:A-Device 模式,作为 Host

0x1:B-Device 模式,作为 Deivce

15

R/W

0x0

Bypass 防抖滤波器

0x0:关闭

0x1:使能

14:8

-

-

-

7

R/W

0x0

当 Bvalid 覆盖使能时 Bvalid 的值,只用于 Device 模式

0x0:Bvalid = 0

0x1:Bvalid = 1

6

R/W

0x0

Bvalid 覆盖使能,只用于 Device 模式

0x0:关闭

0x1:使能

5

R/W

0x0

当 Avalid 覆盖使能时 Avalid 的值,只用于 Host 模式

0x0:Avalid = 0

0x1:Avalid = 1

4

R/W

0x0

Avalid 覆盖使能,只用于 Host 模式

0x0:关闭

0x1:使能

3

R/W

0x0

当 VBUS valid 覆盖使能时 VBUS valid 的值,只用于 Host 模式

0x0:VBUS valid = 0

0x1:VBUS valid = 1

2

R/W

0x0

VBUS valid 覆盖使能,只用于 Host 模式

0x0:关闭

0x1:使能

1:0

-

-

-

0x004 USB_GLB_INIT

默认值:0x00000000

USB Global 初始化寄存器 (USB Global Initial)

位域

类型

默认值

描述

31:20

-

-

-

19

R/W1C

0x0

Host Frame Counter Reset Host 帧计数器重置

写入此位以重置核心内的(微)帧编号计数器。当(微)帧计数器被重置时,

随后由核心发送的 SOF 具有 0 的(微)帧编号。

如果将 1 写入该位,可能无法读取回该值,因为它会在几个时钟周期内被核心清除。

18

R/W

0x0

强制选择 Device 模式

0x0:正常模式

0x1:强制选择 Device 模式

17

R/W

0x0

强制选择 Host 模式

0x0:正常模式

0x1:强制选择 Host 模式

16

R/W

0x0

PER_TFTH

Periodic TxFIFO Threshold,周期的 TXFIFO 的阈值指示控制,只用于 Host 模式

0x0:周期 TXFIFO 半空则 PTXFIFO 空中断位生效

0x1:周期 TXFIFO 全空则 PTXFIFO 空中断位生效

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

10

R/W

0x0

NP_TFTH

Non-Periodic TxFIFO Threshold,非周期的 TXFIFO 的阈值指示控制

0x0:非周期 TXFIFO 半空则 NPTXFIFO 空中断位生效

0x1:非周期 TXFIFO 全空则 NPTXFIFO 空中断位生效

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:Non-periodic TXFIFO flush

0x1:Periodic TXFIFO 1 flush

0x2:Periodic TXFIFO 2 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_RST

Soft Reset,USB Device 软复位,此位写 1 进行软复位,复位完成

自清 0。

0x008 USB_PHY_IF

默认值:0x00001400

USB PHY 接口寄存器 (USB PHY Interface)

位域

类型

默认值

描述

31:6

-

-

-

5

R/W

0x0

选择单向或双向的 USB 1.1 全速串行收发器接口

0x0:6 引脚单向全速串行接口

0x1:3 引脚双向全速串行接口

4:3

-

-

-

2:0

R/W

0x0

TIMEOUT_CAL

Timeout Calibration,USB Timeout 校准

0x010 USB_INT_STS

默认值:0x04000020

USB 中断状态寄存器 (USB Interrupt Status)

位域

类型

默认值

描述

31

R/W1C

0x0

WAKEUP_INT

Wake up Interrupt,唤醒产生中断,在 Suspend 状态下,Host 发出

Resume 进行唤醒。

0x0:无唤醒中断

0x1:发生唤醒中断

30

-

-

-

29

R/W1C

0x0

DisconnInt

指示一个设备断开连接,只用于 Host 模式

28

R/W1C

0x0

ConIDStsChng

指示一个设备连接 ID 状态发生变化

27

-

-

-

26

R

0x1

PER_TXFIFO_EMP

periodic TXFIFO Empty,此位用于指示 periodic TxFIFO

半空或者全空(这里通过 PER_TFTH 决定)

0x0:PER TXFIFO 仍有数据需要传输

0x1:PER TXFIFO 全空或半空

25

R

0x0

HOST_CHAN_INT

Host Channels Interrupt,指示存在 Channel 中断。此中断为 Channel 的

总中断,需将各个 Channel 的中断清除才可以清除该中断。

24

R

0x0

HOST_PORT_INT

指示 Host 的端口发生变化,读取端口控制和状态 (HPRT) 寄存器以确定导致

此中断的确切事件。须在端口控制和状态寄存器中清除相应的状态位以清除此位。

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 NAK Effective,此中断用于指示寄存器 SET_OUT_NACK

配置生效。此位清 0 可以通过设置 CLR_OUT_NACK。

6

R

0x0

IN_NACK_EFF

IN Endpoint NAK Effective,此状态位用于指示寄存器

SET_NP_IN_NACK 配置生效。此位清 0 可以通过设置 CLR_NP_IN_NACK。

5

R

0x1

NP_TXFIFO_EMP

Non-periodic TXFIFO Empty,此位用于指示 Non-periodic TxFIFO

半空或者全空(这里通过 NP_TFTH 决定)

0x0:NP TXFIFO 仍有数据需要传输

0x1:NP TXFIFO 全空或半空

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 接收到 SOF

Token。

0x0:未接收到 SOF Token

0x1:接收到 SOF Token

2

R/W1C

0x0

A-Device 超时中断

表示 Host 等待 Device 连接超时

1

R/W1C

0x0

模式冲突中断

指示 Host 模式下操作 Device 寄存器或 Device 模式下操作 Host 寄存器

0

R

0x0

表示当前工作模式

0x0:Device 模式

0x1:Host 模式

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

-

-

-

29

R/W

0x0

DisconnInt_MSK

指示一个设备断开连接,只用于 Host 模式

0x0:屏蔽中断

0x1:不屏蔽中断

28

R/W

0x0

ConIDStsChng_MSK

指示一个设备连接 ID 状态发生变化

0x0:屏蔽中断

0x1:不屏蔽中断

27

-

-

-

26

R/W

0x0

PER_TXFIFO_EMP_MSK

periodic TXFIFO Empty,此位用于指示 periodic TxFIFO

半空或者全空(这里通过 PER_TFTH 决定)

0x0:屏蔽中断

0x1:不屏蔽中断

25

R/W

0x0

HOST_CHAN_INT_MSK

Host Channels Interrupt,指示存在 Channel 中断。此中断为 Channel 的

总中断,需将各个 Channel 的中断清除才可以清除该中断。

0x0:屏蔽中断

0x1:不屏蔽中断

24

R/W

0x0

HOST_PORT_INT_MSK

指示 Host 的端口发生变化,读取端口控制和状态 (HPRT) 寄存器以确定导致

此中断的确切事件。须在端口控制和状态寄存器中清除相应的状态位以清除此位。

0x0:屏蔽中断

0x1:不屏蔽中断

23

-

-

-

22

R/W

0x0

DATA_FET_STOP_INT_MSK

ata 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 NAK Effective,此中断用于指示寄存器 SET_OUT_NACK 配置生效。

0x0:屏蔽中断

0x1:不屏蔽中断

6

R/W

0x0

IN_NACK_EFF_MSK

IN Endpoint NAK Effective,此状态位用于指示寄存器 SET_NP_IN_NACK 配置生效。

0x0:屏蔽中断

0x1:不屏蔽中断

5

R/W

0x0

NP_TXFIFO_EMP_MSK

Non-periodic TXFIFO Empty,此位用于指示 Non-periodic TxFIFO

半空或者全空

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 接收到 SOF

Token。

0x0:屏蔽中断

0x1:不屏蔽中断

2

-

-

-

1

R/W

0x0

模式冲突中断

指示 Host 模式下操作 Device 寄存器或 Device 模式下操作 Host 寄存器

0x0:屏蔽中断

0x1:不屏蔽中断

0

-

-

-

0x018 RXFIFO_SIZ

默认值:0x00000200

RXFIFO SIZE 寄存器 (RXFIFO SIZE)

位域

类型

默认值

描述

31:16

-

-

-

15:0

R/W

0x200

RXFIFO_SIZ

RXFIFO Size,RxFIFO 空间大小,最小值 16,最大值 512

0x01C RXFIFO_STS_POP

  • Host 模式下

默认值:0x00000000

RXFIFO 状态寄存器 (RXFIFO Status Pop)

位域

类型

默认值

描述

31:21

-

-

-

20:17

R

0x0

PKT_STS

Received Packet Status ,此域用于指示接收的 packet 的状态。

0x2:收到 IN data packet

0x3:IN 传输完成(触发中断)

0x5:数据切换错误(触发中断)

0x7:通道停止(触发中断)

Others:Reserved

16:15

R

0x0

DAT_PID

Data PID,此域指示接收到的 packet 的 DATA PID 类型。

0x0:DATA0

0x1:DATA2

0x2:DATA1

0x3:MDATA

14:4

R

0x0

BYTE_CNT

Byte Count,此域用于指示接收到的 data packet 的 Byte 计数

3:0

R

0x0

CHAN_NUM

Channel Number,此域指示当前接收的 packet 的 Endpoint Number。

  • Device 模式下

默认值: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。

0x020 NPTXFIFO_SIZ

默认值:0x02000200

非周期性的 TXFIFO Size 寄存器 (NPTXFIFO SIZE)

位域

类型

默认值

描述

31:16

R/W

0x200

NPTXFIFO_SIZ

Non-periodic TXFIFO Size,最小值 16,最大值 512

15:0

R/W

0x200

NPTXFIFO_START

Non-periodic TXFIFO Start Address,非周期的 TxFIFO 的起始地址。

0x024 NPTXFIFO_STS

默认值:0x00080200

非周期性的 TXFIFO 状态寄存器 (NPTXFIFO Status)

位域

类型

默认值

描述

31:24

R

0x0

NPTxQTop

NPTXFIFO_QUE

Non-periodic TXFIFO Request Queue,指示非周期发送请求队列的

顶端位置,也就是正在处理的队列位置。

Bits [30:27]:

端点号/通道号

Bits [26:25]:

- 0x0: IN/OUT token

- 0x1: Zero-length transmit packet

- 0x2/0x3: Reserved

Bit [24]:

Terminate (last Entry for selected Endpoint)

23:20

-

-

-

19:16

R

0x8

NP_QUE_LOC_AVA

Non-periodic Transmit Request Queue Location Available,

指示目前非周期发送请求队列的可用位置

0x0:没有空闲位置

0x1:1 个位置空闲

0x8:8 个位置空闲

others:reserved

15:0

R

0x200

NP_TXFIFO_AVA

Non-periodic TxFIFO Space Available,指示 Non-periodic

TxFIFO 空间可用情况。

0x0:Non-periodic TxFIFO 满

0x1:1 word 空闲

0x400:1024 words 空闲

others:reserved

0x028 DEV_TXFIFO_SIZ

默认值:0x02000400

DEV TXFIFO SIZE 寄存器 (TXFIFO1 Size)

位域

类型

默认值

描述

31:16

R/W

0x200

PTXFIFO_SIZ

Periodic TxFIFO Size,周期性的 TXFIFO 大小,最小值 4。

15:0

R/W

0x400

PTXFIFO_START

Periodic TxFIFO Start Address,周期性的 TXFIFO 的起始地址。

0x02C HOST_TXFIFO_SIZ

默认值:0x03000B00

HOST TXFIFO SIZE 寄存器 (TXFIFO Size)

位域

类型

默认值

描述

31:16

R/W

0x300

PTXFIFO_SIZ

Periodic TxFIFO Size,周期性的 TXFIFO 深度,最小值 4。

15:0

R/W

0xB00

PTXFIFO_START

Periodic TxFIFO RAM Start Address,周期性的 TXFIFO 的起始

地址。

0x030 RXFIFO_STS

  • Host 模式下

默认值:0x00000000

RXFIFO 状态寄存器 (RXFIFO Status Pop)

位域

类型

默认值

描述

31:21

-

-

-

20:17

R

0x0

PKT_STS

Received Packet Status ,此域用于指示接收的 packet 的状态。

0x2:收到 IN data packet

0x3:IN 传输完成(触发中断)

0x5:数据切换错误(触发中断)

0x7:通道停止(触发中断)

Others:Reserved

16:15

R

0x0

DAT_PID

Data PID,此域指示接收到的 packet 的 DATA PID 类型。

0x0:DATA0

0x1:DATA2

0x2:DATA1

0x3:MDATA

14:4

R

0x0

BYTE_CNT

Byte Count,此域用于指示接收到的 data packet 的 Byte 计数

3:0

R

0x0

CHAN_NUM

Channel Number,此域指示当前接收的 packet 的 Endpoint Number。

  • Device 模式下

默认值: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。

0x040 PHY_CLK_CTL

默认值:0x00000000

PHY 时钟控制寄存器 (PHY Clock Control)

位域

类型

默认值

描述

31:1

-

-

-

0

R/W

0x0

STP_PHY_CLK

STOP PHY CLOCK,停止 PHY Clock,在 USB Suspend 状态下可以配置

此位,停止 PHY 的时钟,能够降低 USB PHY 的功耗。

0x0:无操作

0x1:停止 PHY 的时钟

0x100 USB_HOST_CONF

默认值:0x00000000

USB Host 配置寄存器 (USB Host Configure)

位域

类型

默认值

描述

31

R/W

0x0

模式改变就绪计时器使能 (ModeChTimEn)

该位用于控制器在暂停或 LPM 后是否等待 200 个 PHY 时钟周期,再将 opmode 信号更改为 2’b00。

0x0:Host 恢复结束时等待 200 个 PHY 时钟周期或 SE0 线路状态,将 opmode 从 2’b10 更改为 2’b00

0x1:Host 在需恢复结束时等待 SE0 线路状态后,将 opmode 从 2’b10 更改为 2’b00。

30:16

-

-

-

15:8

R/W

0x0

唤醒检测 (ResValid)

当 HCFG.Ena32kHzS 使能时,会计算 ResValid 数量的时钟周期以检测有效的恢复

7

R/W

0x0

32kHz 休眠模式使能 (HCFG.Ena32kHzS)

系统会在挂起期间将 PHY 时钟从 48 MHz 切换到 32 kHz。

6:3

-

-

-

2

R/W

0x0

只支持 FS/LS 使能 (FSLSSupp)

0x0:支持 HS/FS/LS,取决于设备的最高速度

0x1:只支持 FS/LS,即使连接的设备支持 HS

1:0

R/W

0x0

FS/LS PHY 时钟选择(FSLSPclkSel)

当处于 FS 主机模式时:

0x0:PHY 时钟运行在 30/60 MHz

0x1:PHY 时钟运行在 48 MHz

其它:保留

当处于 LS 主机模式时:

0x0:PHY 时钟运行在 30/60 MHz。当 UTMI+/ULPI PHY 低功耗模式未被选中时,使用 30/60 MHz。

0x1:PHY 时钟运行在 48 MHz。当 UTMI+ PHY 低功耗模式被选中时,使用 48 MHz

(如果 PHY 在 LS 模式下提供 48 MHz 时钟)。

0x2:PHY 时钟运行在 6 MHz。

在 USB 1.1 FS 模式下,当 UTMI+ PHY 低功耗模式被选中且 PHY 在 LS 模式下提供 6 MHz 时钟时,

使用 6 MHz。如果您在 LS 模式下选择了 6 MHz 时钟,必须进行软复位。

其它:保留

0x104 HOST_FRAME

默认值:0x000017d7

USB Host 帧间隔寄存器 (USB Host Frame Interval)

位域

类型

默认值

描述

31:17

-

-

-

16

R/W

0x0

动态重新加载控制 (HFIRRldCtrl)

0x0:HFIR 不能动态重新加载

0x1:HFIR 可以在运行时动态重新加载

在初始配置期间需要对该位进行编程,且在运行时其值不能更改。

15:0

R/W

0x17d7

帧间隔设置 (FrInt)

如果没有编程值,会根据主机配置寄存器 (FSLSPclkSel) 中指定的 PHY 时钟计算值。

在初始配置之后,请勿更改此字段的值。

0x108 HOST_FRAME_NUM

默认值:0x00000000

USB Host 帧号寄存器 (USB Host Frame Number)

位域

类型

默认值

描述

31:16

R

0x0

当前帧剩余时间(FrRem)

以 PHY 时钟 (PHY clocks) 为单位。该字段在每个 PHY 时钟上递减。

当它达到零时,该字段将重新加载帧间隔寄存器中的值,并在 USB 上发送新的 SOF。

15:0

R

0x0

帧号(FrNum)

字段在 USB 上发送新的 SOF 时递增,当它达到 0x3FFF 时重置为 0。

0x110 HOST_PER_TXFIFO_STA

默认值:0x00080200

USB Host 周期 TXFIFO 状态寄存器 (USB Host Periodic Transmit FIFO/Queue Status)

位域

类型

默认值

描述

31

R

0x0

奇偶(微)帧 (PTxQTop)

0x0:在偶数(微)帧中发送

0x1:在奇数(微)帧中发送

30:27

R

0x0

通道/端点号

26:25

R

0x0

类型

0x0:IN/OUT

0x1:零长度数据包

0x2:CSPLIT

0x3:禁用通道命令

24

R

0x0

终止(选定通道或端点的最后一个条目)

23:16

R

0x8

周期传输请求队列可用空间 (PTxQSpcAvail)

表示可以在周期传输请求队列中写入的空闲位置数量。此队列包含 IN 和 OUT 请求。

0x0:周期传输请求队列已满

0x1:有 1 个可用位置

0x2:有 2 个可用位置

n:有 n 个可用位置 (0 ≤n ≤16)

其它:保留

15:0

R

0x200

周期传输数据 FIFO 可用空间 (PTxFSpcAvail)

表示可以在周期 TxFIFO 中写入的空闲位置数量。值以 32 位为单位。

0x0:周期 TxFIFO 已满

0x1:有 1 个可用位置

0x2:有 2 个可用位置

0xn:有 n 个可用位置 (其中 0≤n≤32,768)

0x8000:有 32,768 个可用位置

0x114 HOST_ALLCHAN_INT

默认值:0x00000000

USB 通道中断寄存器 (USB Channels Interrupt)

位域

类型

默认值

描述

31:16

-

-

-

15:0

R

0x0

HOST_CHAN_INT(HAINT)

Host Channels Interrupt BIT,每位对应一个 Channel 的中断状态

此中断为该 Channel 的总中断,需将该 Channel 的所有中断清除才可以清除该中断。

Bit 0 for Channel 0

Bit 1 for Channel 1

Bit 2 for Channel 2

Bit 3 for Channel 3

其它 bit 无效

0x118 HOST_ALLCHAN_INT_MSK

默认值:0x00000000

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

位域

类型

默认值

描述

31:16

-

-

-

15:0

R/W

0x0

HOST_CHAN_INT_MSK(HAINTMsk)

Host Channels Interrupt Mask BIT,每位对应一个 OUT EP 的中断屏蔽位

,0 表示屏蔽,1 表示不屏蔽。

Bit 0 for Channel 0

Bit 1 for Channel 1

Bit 2 for Channel 2

Bit 3 for Channel 3

其它 bit 无效

0x120 HOST_PORT_CTL

默认值:0x00000000

Host 端口控制和状态寄存器 (Host Port Control and Status)

位域

类型

默认值

描述

31:19

-

-

-

18:17

R

0x0

端口速度(PrtSpd)

0x0:HS

0x1:FS

0x2:LS

0x3:Reserved

16:13

R

0x0

端口测试控制(PrtTstCtl)

0x0:Test mode 关闭

0x1: Test_J mode

0x2: Test_K mode

0x3: Test_SE0_NAK mode

0x4: Test_Packet mode

0x5: Test_Force_Enable

其它 bit 无效

12

R/W

0x0

端口电源控制 (PrtPwr)

0x0:电源关闭

0x1:电源打开

11:10

R

0x0

端口 line status(PrtLnSts)

指示当前 USB 数据线上的逻辑状态

Bit 10 for D+

Bit 11 for D-

9

-

-

-

8

R/W

0x0

端口复位控制 (PrtRst)

使能复位后需等待规定时间后软件上将此位清除,FS/LS 下至少需要 10 ms

0x0:未处于复位状态

0x1:处于复位状态

7

-

-

-

6

R/W

0x0

端口恢复控制(PrtSusp)

0x0:端口未驱动恢复信号

0x1:端口驱动恢复信号

5

R/W1C

0x0

端口过流变化 (PrtOvrCurrChng)

表示 bit4 有变化,该 bit 可以写 1 清零

4

R

0x0

端口过流状态(PrtOvrCurrAct)

0x0:没有过流

0x1:过流

3

R/W1C

0x0

端口开关变化 (PrtEnChng)

表示 bit2 有变化,该 bit 可以写 1 清零

2

R/WA1C

0x0

端口开关控制 (PrtEna)

指示当遇到过流、断开连接或软件写 1 清除该 bit 时,port 会关闭

无法通过写该寄存器使能端口

0x0:端口关闭

0x1:端口使能

1

R/W1C

0x0

端口连接检测 (PrtConnDet)

指示检测到设备连接

0

R

0x0

端口连接状态 (PrtConnSts)

0x0:端口上没有连接设备

0x1:端口上有连接设备

0x130 HOST_CHAN_CHARn(n=0~3)

默认值:0x00000000

Host 通道 n 特征寄存器 (Host Channel-n Characteristics Register )

位域

类型

默认值

描述

31

R/WAC

0x0

通道使能 (ChEna)

30

R/WAC

0x0

通道关闭 (ChDis)

29

R/W

0x0

奇数帧 (OddFrm)

该字段由软件设置(重置)以指示 OTG 主机必须执行奇数(微)帧中的传输。

此字段仅适用于周期性(等时和中断)事务。

0x0:偶数(微)帧

0x1:奇数(微)帧

28:22

R/W

0x0

Device 地址(DevAddr)

这个字段选择作为数据源或接收器的具体设备。

21:20

R/W

0x0

Multi Count (MC) / Error Count (EC)

这个字段表示每个微帧中必须执行的事务数量

当 HCSPLTn.SpltEna 被设置(1’b1)时,此字段表示在事务错误上要执行的立即重试次数。

此字段必须设置为至少 2’b01。

0x0: 保留

0x1: 1 个事务

0x2: 每微帧为该端点发出 2 个事务

0x3: 每微帧为该端点发出 3 个事务

19:18

R/W

0x0

EP 类型选择 (EPType)

0x0: Control

0x1: Isochronous

0x2: Bulk

0x3: Interrupt

17

R/W

0x0

低速设备 (LSpdDev)

当与低速设备通信时,软件需将该位置 1

16

-

-

-

15

R/W

0x0

EP 方向 (EPDir)

0x0:OUT

0x1:IN

14:11

R/W

0x0

EP 号 (EPNum)

10:0

R/W

0x0

最大包长度 Maximum Packet Size (MPS)

0x150 HOST_CHANn_INT(n=0~3)

默认值:0x00000000

Host 通道中断寄存器 (Host Channel-n Interrupt Register)

位域

类型

默认值

描述

31:11

-

-

-

10

R/W1C

0x0

数据切换错误 (DataTglErr)

9

R/W1C

0x0

帧 Overrun (FrmOvrun)

8

R/W1C

0x0

乱码错误 (BblErr)

7

R/W1C

0x0

传输事务错误 (XactErr)

表示在 USB 传输过程中发生了以下错误之一:

■ CRC 校验失败

■ 超时

■ 位填充错误

■ 错误的 EOP (End of Packet)

6

R/W1C

0x0

NYET 响应接收中断 (NYET)

5

R/W1C

0x0

ACK 响应接收/发送中断 (ACK)

4

R/W1C

0x0

NAK 响应接收中断 (NAK)

3

R/W1C

0x0

STALL 响应接收中断 (STALL)

2

-

-

-

1

R/W1C

0x0

通道暂停 (ChHltd)

指示传输异常,原因可能是任何 USB 事务错误、应用程序的禁用请求或是由于已完成的传输。

0

R/W1C

0x0

传输完成 (XferCompl)

表示在没有任何错误的情况下正常完成传输。

0x160 HOST_CHANn_INT_MSK(n=0~3)

默认值:0x00000000

Host 通道中断屏蔽寄存器 (Host Channel-n Interrupt Mask Register)

位域

类型

默认值

描述(0 表示屏蔽,1 表示不屏蔽)

31:11

-

-

-

10

R/W

0x0

数据切换错误 (DataTglErrMsk)

9

R/W

0x0

帧 Overrun (FrmOvrunMsk)

8

R/W

0x0

乱码错误 (BblErrMsk)

7

R/W

0x0

传输事务错误 (XactErrMsk)

表示在 USB 传输过程中发生了以下错误之一:

■ CRC 校验失败

■ 超时

■ 位填充错误

■ 错误的 EOP (End of Packet)

6

R/W

0x0

NYET 响应接收中断 (NYETMsk)

5

R/W

0x0

ACK 响应接收/发送中断 (ACKMsk)

4

R/W

0x0

NAK 响应接收中断 (NAKMsk)

3

R/W

0x0

STALL 响应接收中断 (STALLMsk)

2

-

-

-

1

R/W

0x0

通道暂停 (ChHltdMsk)

指示传输异常,原因可能是任何 USB 事务错误、应用程序的禁用请求或是由于已完成的传输。

0

R/W

0x0

传输完成 (XferComplMsk)

表示在没有任何错误的情况下正常完成传输。

0x170 HOST_CHANn_TXSIZ(n=0~3)

默认值:0x00000000

Host 通道大小控制寄存器 (Host Channel-n Transfer Size Register)

位域

类型

默认值

描述

31

R/W

0x0

Ping 传输 (DoPng)

仅用于输出传输。将此字段设置为 1,指示主机执行 PING 协议。

不要为输入传输设置此位。如果为此位设置了输入传输,它将禁用通道。

30:29

R/W

0x0

PID(Pid)

设置为初始事务要使用的 PID 类型

0x0: DATA0

0x1: DATA2

0x2: DATA1

0x3: MDATA(非控制)/ SETUP (控制)

28:19

R/W

0x0

Packet Count (PktCnt)

设置要发送 (OUT) 或接收 (IN) 的预期数据包数量。

主机在每次成功传输或接收一个 OUT/IN 数据包时递减此计数器。

一旦此计数器达到零,软件将被中断以指示正常完成

18:0

R/W

0x0

Transfer Size (XferSize)

对于 OUT 传输,它表示主机在传输过程中发送的数据字节数。

对于 IN 传输,它表示应用程序为传输预留的缓冲区大小。

软件应将此字段设置为 IN 事务 (周期性和非周期性)的最大数据包大小的整数倍。

0x200 USB_DEV_CONF

默认值:0x08200000

USB Device 配置寄存器 (USB Device Configure)

位域

类型

默认值

描述

31:23

-

-

-

22:18

R/W

0x8

IN_EP_MIS_TH

IN 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

Enables or disables delay between xcvr_sel and txvalid

during device chirp

0x0:No delay between xcvr_sel and txvalid during Device chirp

0x1:Enable delay between xcvr_sel and txvalid during Device

chirp

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,软件在 SetAddress command 时设置的 Device 地址。

3

-

-

-

2

R/W

0x0

OUT_RX_NZL_DATA_HDL

OUT Transaction Recieve None-zero-length DATA Handle,设置在

OUT transaction 的 Status 阶段,接收到 non zero length 数据包时的处

理方式。

0x0:发送接收到的 OUT packet 到应用层,同时根据 NAK 和 STALL 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、Status

Register 已经 Ready。

0x0:无状态指示

0x1:指示 CSR Ready

10

W

0x0

CLR_OUT_NACK

Cleare OUT Endpoint NACK,此位写 1 清除 OUT Endpoints NACK。

9

W

0x0

SET_OUT_NACK

Set OUT Endpoint NACK,此位写 1 设置 OUT NACK。软件层通过此位设置

,让所用的 OUT Endpoints 发送 NACK 握手信号。此位只有在 GOUTNakEFff

清 0 后才可以置 1。

8

W

0x0

CLR_NP_IN_NACK

Clear Non-periodic IN Endpoint NACK,此位写 1 清除 Non-Periodic

IN NACK。

7

W

0x0

SET_NP_IN_NACK

Set Non-periodic IN Endpoint NACK,此位写 1 设置 Non-periodic

IN NACK。软件通过此位设置,让所用的 Non periodic IN Endpoints

发送 NACK 握手信号。此位只有在 GINNakEFff 清 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_NAK mode

0x4:Test_Packet mode

0x5:Test_Force_Enable

others:reserved

3

R

0x0

GLB_OUT_NACK_STS

Global OUT NACK Status

0x0:根据 FIFO 的状态和 NACK、STALL bit 的设置发送了握手信号

0x1:不管空间情况,不进行 RxFIFO 的数据写入。除了 SETUP transaction,

发送了 NAK 握手信号。所有的 Isochronous OUT packet 都丢弃。

2

R

0x0

GLB_IN_NACK_STS

Global IN Non-periodic NAK Status

0x0:根据 TXFIFO 的数据使用情况,发送了握手信号

0x1:不管 TXFIFO 的数据使用情况,Non-periodic IN Eps 发送了 NAK 握手

信号

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_ENUM_SPEED

USB 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 NAK 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

-

-

-

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

NAK 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

-

-

-

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 无效

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 无效

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 无效

15:0

R/W

0x0

IN_EP_INT_MSK

IN Endpoint Interrupt Mask,每位对应一个 IN EP 的中断屏蔽位

,1b’0 表示屏蔽,1b’1 表示不屏蔽。

Bit 0 for IN endpoint 0

Bit 1 for IN endpoint 1

Bit 2 for IN endpoint 2

其它 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 的 NAK 位

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。另外如果 NAK 与 Stall 同时置位,

发送 Stall 握手信号的优先级更高。

0x0:无操作

0x1:发送 Stall 握手信号

20

-

-

-

19:18

R

0x0

EP0_TYPE

Endpoint0 Type,EP0 的类型,这里为只读位,EP0 总是为 Control 类型的

端点。

017

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:2

-

-

-

1:0

R/W

0x0

MPS

Maximum Packet Size,IN EP0 的最大 Packet Size

0x0:64bytes

0x1:32bytes

0x2:16bytes

0x3:8bytes

0x0224 IN_EP1_CFG

默认值:0x00000000

IN EP1 配置寄存器 (IN EP1 Configure)

位域

类型

默认值

描述

31

R/WAC

0x0

EN_EP

Enable Endpoint,使能 IN EP1,将此位置 1,使能 EP1 发送数据。在

EP1 的 DIS_EP_INT 中断或 TX_COMP_INT 中断出现之前,此位会自清 0。

30

R/WAC

0x0

DIS_EP

Disable Endpoint,关闭 IN EP1,需要在 EN_EP=1 的情况下,才可以

对此位置 1。将此位置 1,EP1 停止发送数据,尽管 EP1 的 transfer 没有

完成。

需要接收到 EP1 的 DIS_EP_INT 中断,才可以认为 EP1 Disable。在 EP1

disabled 中断出现之前,此位会自清 0。

29

W

0x0

S_DATA1

Set DATA1 PID,只适用 interrupt/bulk 类型的 IN EPs,此位置 1,

PID 域选择 DATA1。

0x0:无操作

0x1:PID 域选择 DATA1

29

W

0x0

S_ISO_ODD_FR

Set Isochronous Odd (micro) frame,只适用 isochronous IN

EPs,此位置 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

28

W

0x0

SS_ISO_EVEN_FR

Set Isochronous Even (micro) frame,只适用 isochronous IN

EPs,此位置 1,EO_FrNum 域选择偶数帧。

0x0:无操作

0x1:EO_FrNum 域选择偶数帧

27

W

0x0

S_NACK

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

0x0:无操作

0x1:EP1 发送 NACK 握手信号

26

W

0x0

C_NACK

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

0x0:无操作

0x1:清除 IN EP1 的 NACK 握手信号

25:22

R/W

0x0

TXFIFO_NUM

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

0x0:Non-periodic TxFIFO

0x1:Specified Periodic TxFIFO number 1

0x3:Specified Periodic TxFIFO number 2

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 发送非 NAK 握手信号

0x1:EP 回复 NACK 握手信号

另外需注意,不管此状态位如何,对于 SETUP 数据包,Device 总是

回复 ACK 握手信号。

16

R

0x0

DATA_PID_STS

Endpoint Data PID Status,当 EP 类型为 interrupt/bulk EP。

0x0:DATA0

0x1:DATA1

EO_FRNUM_STS

Even/Odd Frame Number Status,当 EP 类型为 isochronous EP。

0x0:偶数帧

0x1:奇数帧

15

R/WAC

0x0

ACT_EP

Active Endpoint,EP 是否处于活跃工作状态,在 USB Data Line

出现 USB RESET 命令后,此位会自动清 0。

0x0:未活跃

0x1:活跃

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:0

R/W

0x0

MPS

Maximum Packet Size,IN EP1 的最大 Packet Size,单位是 Byte。

0x0228 IN_EP2_CFG

默认值:0x00000000

IN EP2 配置寄存器 (IN EP2 Configure)

位域

类型

默认值

描述

31

R/WAC

0x0

EN_EP

Enable Endpoint,使能 IN EP2,将此位置 1,使能 EP2 发送数据。在

EP2 的 DIS_EP_INT 中断或 TX_COMP_INT 中断出现之前,此位会自清 0。

30

R/WAC

0x0

DIS_EP

Disable Endpoint,关闭 IN EP2,需要在 EN_EP=1 的情况下,才可以

对此位置 1。将此位置 1,EP2 停止发送数据,尽管 EP2 的 transfer 没有

完成。

需要接收到 EP2 的 DIS_EP_INT 中断,才可以认为 EP2 Disable。在 EP2

disabled 中断出现之前,此位会自清 0。

29

W

0x0

S_DATA1

Set DATA1 PID,只适用 interrupt/bulk 类型的 IN EPs,此位置 1,

PID 域选择 DATA1。

0x0:无操作

0x1:PID 域选择 DATA1

29

W

0x0

S_ISO_ODD_FR

Set Isochronous Odd (micro) frame,只适用 isochronous IN

EPs,此位置 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

28

W

0x0

SS_ISO_EVEN_FR

Set Isochronous Even (micro) frame,只适用 isochronous IN

EPs,此位置 1,EO_FrNum 域选择偶数帧。

0x0:无操作

0x1:EO_FrNum 域选择偶数帧

27

W

0x0

S_NACK

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

0x0:无操作

0x1:EP2 发送 NACK 握手信号

26

W

0x0

C_NACK

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

0x0:无操作

0x1:清除 IN EP2 的 NACK 握手信号

25:22

R/W

0x0

TXFIFO_NUM

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

0x0:Non-periodic TxFIFO

0x1:Specified Periodic TxFIFO number 1

0x3:Specified Periodic TxFIFO number 2

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 发送非 NAK 握手信号

0x1:EP 回复 NACK 握手信号

另外需注意,不管此状态位如何,对于 SETUP 数据包,Device 总是

回复 ACK 握手信号。

16

R

0x0

DATA_PID_STS

Endpoint Data PID Status,当 EP 类型为 interrupt/bulk EP。

0x0:DATA0

0x1:DATA1

EO_FRNUM_STS

Even/Odd Frame Number Status,当 EP 类型为 isochronous EP。

0x0:偶数帧

0x1:奇数帧

15

R/WAC

0x0

ACT_EP

Active Endpoint,EP 是否处于活跃工作状态,在 USB Data Line

出现 USB RESET 命令后,此位会自动清 0。

0x0:未活跃

0x1:活跃

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:0

R/W

0x0

MPS

Maximum Packet Size,IN EP2 的最大 Packet Size,单位是 Byte。

0x240 OUT_EP0_CFG

默认值:0x00008000

OUT EP0 配置寄存器 (OUT EP0 Configure)

位域

类型

默认值

描述

31

R/WAC

0x0

EN_EP

Enable Endpoint,使能 OUT EP0,将此位置 1,使能 EP0 接收数据。

在 OUT EP0 的 SETUP_DONE_INT 中断、DIS_EP_INT 中断或 RX_COMP_INT

中断出现之前,此位会自清 0。

30

R

0x0

DIS_EP

Disable Endpoint Disable,关闭 OUT EP0,软件无法对此位进行写

操作,无法关闭 OUT EP0。

29:28

-

-

-

27

W

0x0

S_NACK

Set NACK,此位置 1,设置 OUT EP0 发送 NACK

0x0:无操作

0x1:Control EP0 发送 NACK 握手信号

26

W

0x0

C_NACK

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

0x0:无操作

0x1:清除 Control EP0 的 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,配置此位可以使得 EP0 进入 Snoop mode。在 Snoop

模式下,USB Device 不会检查接收的 OUT packet 是否正确。

0x0:未进入 Snoop mode

0x1:进入 Snoop mode

19:18

R

0x0

EP0_TYPE

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

17

R

0x0

OUT_EP0_NACK_STS

OUT Endpoint0 NACK Status,OUT EP0 当前的回复 NACK 的状态

0x0:根据 FIFO 的状态,EP0 发送非 NACK 握手信号

0x1:EP0 回复 NACK 握手信号

另外需注意,不管此状态位如何,对于 SETUP 数据包,Device 总是回复 ACK

握手信号。

16

-

-

-

15

R

0x1

ACT_EP

Active Endpoint,对于 EP0 此位一直为 1,表示 control OUT EP0 一直

处于活跃的状态。

14:2

-

-

-

1:0

R/W

0x0

MPS

Maximum Packet Size,OUT EP0 的最大 Packet Size

0x0:64bytes

0x1:32bytes

0x2:16bytes

0x3:8bytes

0x244 OUT_EP1_CFG

默认值:0x00000000

OUT EP1 配置寄存器 (OUT EP1 Configure)

位域

类型

默认值

描述

31

R/WAC

0x0

EN_EP

Enable Endpoint,使能 OUT EP1,将此位置 1,使能 EP1 接收数据。在

OUT EP1 的 SETUP_DONE_INT 中断、DIS_EP_INT 中断或 RX_COMP_INT 中

断出现之前,此位会自清 0。

30

R/WAC

0x0

DIS_EP

Disable Endpoint Disable,关闭 OUT EP0,软件无法对此位进行写

操作,无法关闭 OUT EP0。

29

W

0x0

S_DATA1

Set DATA1 PID,只适用 interrupt/bulk 类型的 OUT EPs,此位置 1,

PID 域选择 DATA1。

0x0:无操作

0x1:PID 域选择 DATA1

29

W

0x0

S_ISO_ODD_FR

Set Isochronous Odd (micro) frame,只适用 isochronous OUT

EPs,此位置 1,EO_FrNum 域选择奇数帧。

0x0:无操作

0x1:EO_FrNum 域选择奇数帧

28

W

0x0

S_DATA0

Set DATA0 PID,只适用 interrupt/bulk 类型的 OUT EPs,此位置 1

,PID 域选择 DATA0

0x0:无操作

0x1:PID 域选择 DATA0

28

W

0x0

S_ISO_EVEN_FR

Set Isochronous Even (micro) frame,只适用 isochronous OUT

EPs,此位置 1,EO_FrNum 域选择偶数帧。

0x0:无操作

0x1:EO_FrNum 域选择偶数帧

27

W

0x0

S_NACK

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

0x0:无操作

0x1:EP1 发送 NACK 握手信号

26

W

0x0

C_NACK

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

0x0:无操作

0x1:清除 IN EP1 的 NACK 握手信号

25:22

-

-

-

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

R/W

0x0

EN_SNOOP

Enable Snoop Mode,配置此位可以使得 EP1 进入 Snoop mode。在

Snoop 模式下,USB Device 不会检查接收的 OUT packet 是否正确。

0x0:未进入 Snoop mode

0x1:进入 Snoop mode

19:18

R/W

0x0

EP_TYPE_SEL

Endpoint Type Select,EP 类型选择

0x0:Control

0x1:Isochronous

0x2:Bulk

0x3:Interrupt

17

R

0x0

OUT_EP_NACK_STS

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

0x0:根据 FIFO 的状态,EP 发送非 NAK 握手信号

0x1:EP 回复 NACK 握手信号

另外需注意,不管此状态位如何,对于 SETUP 数据包,Device 总是回复

ACK 握手信号。

16

R

0x0

DATA_PID_STS

Endpoint Data PID Status,适用 interrupt/bulk OUT EPs。

0x0:DATA0

0x1:DATA1

16

R

0x0

EO_FRNUM_STS

Even/Odd Frame Number Status,适用 isochronous OUT 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,OUT EP1 的最大 Packet Size,单位是 Byte。

0x248 OUT_EP2_CFG

默认值:0x00000000

OUT EP2 配置寄存器 (OUT EP2 Configure)

位域

类型

默认值

描述

31

R/WAC

0x0

EN_EP

Enable Endpoint,使能 OUT EP2,将此位置 1,使能 EP2 接收数据。在

OUT EP2 的 SETUP_DONE_INT 中断、DIS_EP_INT 中断或 RX_COMP_INT 中

断出现之前,此位会自清 0。

30

R/WAC

0x0

DIS_EP

Disable Endpoint Disable,关闭 OUT EP0,软件无法对此位进行写

操作,无法关闭 OUT EP0。

29

W

0x0

S_DATA1

Set DATA1 PID,只适用 interrupt/bulk 类型的 OUT EPs,此位置 1,

PID 域选择 DATA1。

0x0:无操作

0x1:PID 域选择 DATA1

29

W

0x0

S_ISO_ODD_FR

Set Isochronous Odd (micro) frame,只适用 isochronous OUT

EPs,此位置 1,EO_FrNum 域选择奇数帧。

0x0:无操作

0x1:EO_FrNum 域选择奇数帧

28

W

0x0

S_DATA0

Set DATA0 PID,只适用 interrupt/bulk 类型的 OUT EPs,此位置 1

,PID 域选择 DATA0

0x0:无操作

0x1:PID 域选择 DATA0

28

W

0x0

S_ISO_EVEN_FR

Set Isochronous Even (micro) frame,只适用 isochronous OUT

EPs,此位置 1,EO_FrNum 域选择偶数帧。

0x0:无操作

0x1:EO_FrNum 域选择偶数帧

27

W

0x0

S_NACK

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

0x0:无操作

0x1:EP2 发送 NACK 握手信号

26

W

0x0

C_NACK

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

0x0:无操作

0x1:清除 IN EP2 的 NACK 握手信号

25:22

-

-

-

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

R/W

0x0

EN_SNOOP

Enable Snoop Mode,配置此位可以使得 EP2 进入 Snoop mode。在

Snoop 模式下,USB Device 不会检查接收的 OUT packet 是否正确。

0x0:未进入 Snoop mode

0x1:进入 Snoop mode

19:18

R/W

0x0

EP_TYPE_SEL

Endpoint Type Select,EP 类型选择

0x0:Control

0x1:Isochronous

0x2:Bulk

0x3:Interrupt

17

R

0x0

OUT_EP_NACK_STS

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

0x0:根据 FIFO 的状态,EP 发送非 NAK 握手信号

0x1:EP 回复 NACK 握手信号

另外需注意,不管此状态位如何,对于 SETUP 数据包,Device 总是回复

ACK 握手信号。

16

R

0x0

DATA_PID_STS

Endpoint Data PID Status,适用 interrupt/bulk OUT EPs。

0x0:DATA0

0x1:DATA1

16

R

0x0

EO_FRNUM_STS

Even/Odd Frame Number Status,适用 isochronous OUT 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,OUT EP2 的最大 Packet Size,单位是 Byte。

0x260 IN_EP0_INT

默认值:0x00000080

IN EP0 中断状态寄存器 (IN EP0 Interrupt Status)

位域

类型

默认值

描述

31:14

-

-

-

13

R/W1C

0x0

NACK_INT

NACK Interrupt,NACK 中断,当 NAK 信号发送出去,此位置 1。另外,

如果 Isochronous IN EP 由于 TxFIFO 数据空间不足发送了 0 长度包,同

样会产生此中断。

12

R/W1C

0x0

BABBLE_ERR_INT

Babble Error Interrupt,Babble 错误中断,当 EP0 接收到 Babble

Error,此位置 1。

11:8

-

-

-

7

R/W1C

0x1

TXFIFO_EMP_INT

TXFIFO Empty Interrupt,EP0 对应的 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-periodic

FIFO 的 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,只适用于 non-isochronous 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

完成。

0x264 IN_EP1_INT

默认值:0x00000080

IN EP1 中断状态寄存器 (IN EP1 Interrupt Status)

位域

类型

默认值

描述

31:14

-

-

-

13

R/W1C

0x0

NACK_INT

NACK Interrupt,NACK 中断,当 NAK 信号发送出去,此位置 1。另外,

如果 Isochronous IN EP 由于 TxFIFO 数据空间不足发送了 0 长度包,同

样会产生此中断。

12

R/W1C

0x0

BABBLE_ERR_INT

Babble Error Interrupt,Babble 错误中断,当 EP1 接收到 Babble

Error,此位置 1。

11:8

-

-

-

7

R/W1C

0x1

TXFIFO_EMP_INT

TXFIFO Empty Interrupt,EP1 对应的 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-periodic

FIFO 的 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,只适用于 non-isochronous 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

完成。

0x268 IN_EP2_INT

默认值:0x00000080

IN EP2 中断状态寄存器 (IN EP2 Interrupt Status)

位域

类型

默认值

描述

31:14

-

-

-

13

R/W1C

0x0

NACK_INT

NACK Interrupt,NACK 中断,当 NAK 信号发送出去,此位置 1。另外,

如果 Isochronous IN EP 由于 TxFIFO 数据空间不足发送了 0 长度包,同

样会产生此中断。

12

R/W1C

0x0

BABBLE_ERR_INT

Babble Error Interrupt,Babble 错误中断,当 EP2 接收到 Babble

Error,此位置 1。

11:8

-

-

-

7

R/W1C

0x1

TXFIFO_EMP_INT

TXFIFO Empty Interrupt,EP2 对应的 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-periodic

FIFO 的 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,只适用于 non-isochronous 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

完成。

0x280 OUT_EP0_INT

默认值:0x00000000

OUT EP0 中断状态寄存器 (OUT EP0 Interrupt Status)

位域

类型

默认值

描述

31:16

-

-

-

15

R/W1C

0x0

SETUP_PKT_RX_INT

Setup Packet Received Interrupt,只适用于 Control OUT EP。

用于指示 buffer 收到了 8byte 的 setup 数据。OUT EP0 存在此 bit,其它

的 OUT EP 无此 bit。

14

R/W1C

0x0

NYET_INT

NYET interrupt,在非 isochronous OUT EP 发出 NYET 相应信号时,

此位将置 1,产生中断信号。

13

R/W1C

0x0

NACK_INT

NACK Interrupt,NACK 中断,当 NAK 信号发送出去,此位置 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 OUT

EP。此位用于指示 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 完成。

0x284 OUT_EP1_INT

默认值:0x00000000

OUT EP1 中断状态寄存器 (OUT EP1 Interrupt Status)

位域

类型

默认值

描述

31:16

-

-

-

15

R/W1C

0x0

SETUP_PKT_RX_INT

Setup Packet Received Interrupt,只适用于 Control OUT EP。

用于指示 buffer 收到了 8byte 的 setup 数据。OUT EP0 存在此 bit,其它

的 OUT EP 无此 bit。

14

R/W1C

0x0

NYET_INT

NYET interrupt,在非 isochronous OUT EP 发出 NYET 相应信号时,

此位将置 1,产生中断信号。

13

R/W1C

0x0

NACK_INT

NACK Interrupt,NACK 中断,当 NAK 信号发送出去,此位置 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 OUT

EP。此位用于指示 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 完成。

0x288 OUT_EP2_INT

默认值:0x00000000

OUT EP2 中断状态寄存器 (OUT EP2 Interrupt Status)

位域

类型

默认值

描述

31:16

-

-

-

15

R/W1C

0x0

SETUP_PKT_RX_INT

Setup Packet Received Interrupt,只适用于 Control OUT EP。

用于指示 buffer 收到了 8byte 的 setup 数据。OUT EP0 存在此 bit,其它

的 OUT EP 无此 bit。

14

R/W1C

0x0

NYET_INT

NYET interrupt,在非 isochronous OUT EP 发出 NYET 相应信号时,

此位将置 1,产生中断信号。

13

R/W1C

0x0

NACK_INT

NACK Interrupt,NACK 中断,当 NAK 信号发送出去,此位置 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 OUT

EP。此位用于指示 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 完成。

0x2A0 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,表示 EP0 的 Tansfer 包含的数据包的数量,

此域会在每次读取 TxFIFO 的情况下,逐次递减。

18:7

-

-

-

6:0

R/W

0x0

XFR_SIZ

Transfer Size,表示 EP0 的 Transfer 的大小(以 Byte 为单位)。

此域会在每次 packet 从外部存储写入 TxFIFO 的情况下,逐次递减。

在发送数据的时候,配置 XferSize,相当于配置需要发送的数据长度。

若需要发送 N+1 个 Packet,那么 XferSize 配置为

N * MPS(Max packet size) + Short packet size

TX_PKT_CNT 配置为

N + 1(N 个长包 + 1 个短包)

0x2A4 IN_EP1_TSF_SIZ

默认值:0x00000000

IN EP1 传输 Size 寄存器 (IN EP1 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

30:29

R

0x0

TX_PKT_BF_SWITH

Transmit Packet number Before Swich EP,在切换 EP 之前,DMA

需要发送的 Packet 数目。此域只有在 DMA 使能的情况下有效。

28:19

R/W

0x0

PKT_CNT

Packet Count,此域指示 EP 的组成 Transfer 的 data packet 的大小,

PktCnt=XferSize/MPS。

This field is decremented every time a packet (maximum

size or short packet) is read from the 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

TX_PKT_CNT 配置为

N + 1(N 个长包 + 1 个短包)

在 XferSize 递减到 0 后,表示数据已写入 TxFIFO,硬件自动完成发送,

此时产生 XferComplete 中断。

0x2A8 IN_EP2_TSF_SIZ

默认值:0x00000000

IN EP2 传输 Size 寄存器 (IN EP2 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

30:29

R

0x0

TX_PKT_BF_SWITH

Transmit Packet number Before Swich EP,在切换 EP 之前,DMA

需要发送的 Packet 数目。此域只有在 DMA 使能的情况下有效。

28:19

R/W

0x0

PKT_CNT

Packet Count,此域指示 EP 的组成 Transfer 的 data packet 的大小,

PktCnt=XferSize/MPS。

This field is decremented every time a packet (maximum

size or short packet) is read from the 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

TX_PKT_CNT 配置为

N + 1(N 个长包 + 1 个短包)

在 XferSize 递减到 0 后,表示数据已写入 TxFIFO,硬件自动完成发送,

此时产生 XferComplete 中断。

0x2C0 OUT_EP0_TSF_SIZ

默认值:0x00000000

OUT EP0 传输 Size 寄存器 (OUT EP0 Transfer Size)

位域

类型

默认值

描述

31

-

-

-

30:29

R/W

0x0

STUP_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,表示 EP0 的 Transfer 的大小(以 Byte 为单位)。此域

会在每次 packet 从 RxFIFO 读取数据包的情况下,逐次递减。

这里一般配置为 MPS (Max Packet Size) 即可,通过此域可以了解接

收到数据包的大小。

假设配置 PktCnt = 1,XferSize = MPS = 64byte,若接收到一个

8byte 的数据包,XferSize = 64 -8 = 56byte,PktCnt = 1 -1 =0

,此时产生 Xfer Complete 中断。

0x2C4 OUT_EP1_TSF_SIZ

默认值:0x00000000

OUT EP1 传输 Size 寄存器(OUT EP1 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

30:29

R/W

0x0

SUP_PKT_CNT

SETUP Packet Count,此域只适用于 control OUT EP,表示

可以连续接收 SETUP Packet 的数目

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 = 64byte,若接收到一个

8byte 的数据包,XferSize = 64 -8 = 56byte,PktCnt = 1 -1 =0

,此时产生 Xfer Complete 中断。

0x2C8 OUT_EP2_TSF_SIZ

默认值:0x00000000

OUT EP2 传输 Size 寄存器 (OUT EP2 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

30:29

R/W

0x0

SUP_PKT_CNT

SETUP Packet Count,此域只适用于 control OUT EP,表示

可以连续接收 SETUP Packet 的数目

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 = 64byte,若接收到一个

8byte 的数据包,XferSize = 64 -8 = 56byte,PktCnt = 1 -1 =0

,此时产生 Xfer Complete 中断。

0x340+n*0x4(n=1~2) IN_EPn_TXFIFO_STA

默认值:0x00000000

IN EPn TXFIFO 状态寄存器 (In EPn Txfifo Status)

位域

类型

默认值

描述

31:16

-

-

-

15:0

RO

0

IN_EP_TXFIFO_STS

0x360+(n-1)*0x4(n=1~2) TKN_QUEUEn

默认值:0x00000000

TKN_QUEUEn 寄存器

位域

类型

默认值

描述

31:0

RO

0

用于 Debug

0xffc USB_VERSION

默认值:0x0000_0100

USB FSOTG 版本寄存器 (USB FSOTG Version)

位域

类型

默认值

描述

31:0

RO

0x0000_0100

版本寄存器 V1.0

0x8000 USB_PHY_CTL

默认值:0x8000_0000

USB PHY 控制寄存器 (USB PHY Control)

位域

类型

默认值

描述

31

R/W

0x1

OTG ID PIN 选择

0x0: IDDIG 为低,用于 Host 模式

div

0x1: IDDIG 为高,用于 Device 模式

30

-

-

-

29

R/W

0x0

DP/DM 线下拉电阻使能,作 Host 时需使能

0x0: 下拉电阻断开

0x1: 下拉电阻使能

28:1

-

-

-

0

R/W

0x0

DP/DM 线上拉电阻使能

使能后控制器可根据配置的速度完成相应的电阻配置,作 Device 时需使能

0x0: 上拉电阻断开

0x1: 上拉电阻使能

0x8004 DMA_COUNT

默认值:0x00000000

DMA 数据长度 (DMA Count)

位域

类型

默认值

描述

31:11

-

-

-

10:0

RO

0

当前 DRQ 的数据长度,接收时可读取该寄存器或 FIFO 内的数据量,单位为 Byte。