16. USB控制器

16.USB控制器

16.1 USB控制器简介

CH559内嵌USB控制器和双USB收发器,特性如下:

  1. 支持USBHost主机功能和USBDevice设备功能;
  2. 支持USB2.0全速12Mbps或者低速1.5Mbps;
  3. 支持USB控制传输、批量传输、中断传输、同步/实时传输;
  4. USB主机模式下提供双端口Root-HUB,可以同时管理两个USB设备;
  5. 支持最大64字节的数据包,内置FIFO,支持中断和DMA。

CH559的USB相关寄存器分为3个部分,部分寄存器是在主机和设备模式下进行复用的。

  1. USB全局寄存器;
  2. USB设备控制器寄存器;
  3. USB主机控制器寄存器。

16.2 全局寄存器

表16.2.1 USB全局寄存器列表
名称地址描述复位值
USB_RX_LEND1hUSB接收长度寄存器(只读) 0xxx xxxxb
USB_INT_FGD8hUSB中断标志寄存器 0010 0000b
USB_INT_STD9hUSB中断状态寄存器(只读) 00xx xxxxb
USB_MIS_STDAhUSB杂项状态寄存器(只读) xx10 1000b
USB_INT_ENE1hUSB中断使能寄存器0000 0000b
USB_CTRL E2hUSB控制寄存器0000 0110b
USB_DEV_ADE3hUSB设备地址寄存器0000 0000b
USB_DMA_AHE7hDMA当前缓冲区地址高字节(只读) 000x xxxxb
USB_DMA_ALE6hDMA当前缓冲区地址低字节(只读) xxxx xxx0b
USB_DMA E6hUSB_DMA_AL和USB_DMA_AH组成16位SFR xxxxh

USB接收长度寄存器(USB_RX_LEN):

名称访问描述复位值
[7:0]bUSB_RX_LENRO当前USB端点接收到的数据的字节数 xxh

USB中断标志寄存器(USB_INT_FG):

名称 访问 描述 复位值
7U_IS_NAKROUSB设备模式下,该位为1表示当前USB传输过程中接收到NAK忙响应;该位为0表示接收到非NAK响应0
6U_TOG_OKRO当前USB传输DATA0/1同步标志匹配状态,该位为1表示同步,数据有效;该位为0表示不同步,数据可能无效0
5U_SIE_FREEROUSB协议处理器的空闲状态位,该位为0表示忙,正在进行USB传输;该位为1表示USB空闲1
4UIF_FIFO_OVRWUSBFIFO溢出中断标志位,该位为1表示FIFO溢出中断;该位为0无中断。直接位写0清零或寄存器对应位写1清零 0
3UIF_HST_SOFRWUSB主机模式下SOF定时中断标志位,该位为1表示SOF定时中断,该中断由SOF包传输完成触发;该位为0表示无中断。直接位写0清零或寄存器对应位写1清零 0
2UIF_SUSPENDRWUSB总线挂起或唤醒事件中断标志位,该位为1表示有中断,该中断由USB挂起事件或唤醒事件触发;该位为0表示无中断。直接位写0清零或寄存器对应位写1清零 0
1UIF_TRANSFERRWUSB传输完成中断标志位,该位为1表示有中断,该中断由一个USB传输完成触发;该位为0表示无中断。直接位写0清零或寄存器对应位写1清零 0
0UIF_DETECTRWUSB主机模式下USB设备连接或断开事件中断标志位,该位为1表示有中断,该中断由检测到USB设备连接或断开触发;该位为0表示无中断。直接位写0清零或寄存器对应位写1清零 0
0UIF_BUS_RSTRWUSB设备模式下USB总线复位事件中断标志位,该位为1表示有中断,该中断由USB总线复位事件触发;该位为0表示无中断。直接位写0清零或寄存器对应位写1清零 0

USB中断状态寄存器(USB_INT_ST):

名称 访问 描述 复位值
7bUIS_IS_NAKROUSB设备模式下,该位为1表示当前USB传输过程中接收到NAK忙响应。同U_IS_NAK 0
6bUIS_TOG_OKRO当前USB传输DATA0/1同步标志匹配状态,该位为1表示同步;该位为0表示不同步。同U_TOG_OK 0
5bUIS_TOKEN1RO设备模式下当前USB传输事务的令牌PID标识高位x
4bUIS_TOKEN0RO设备模式下当前USB传输事务的令牌PID标识低位x
[3:0]MASK_UIS_ENDPROUSB设备模式下当前USB传输事务的端点号,0000表示端点0;…;1111表示端点15xxxxb
[3:0]MASK_UIS_H_RESROUSB主机模式下当前USB传输事务的应答PID标识,0000表示设备无应答或超时;其它值表示应答PIDxxxxb

bUIS_TOKEN1和bUIS_TOKEN0组成MASK_UIS_TOKEN,用于USB设备模式下标识当前USB传输事务的令牌PID:00表示OUT包;01表示SOF包;10表示IN包;11表示SETUP包。

USB杂项状态寄存器(USB_MIS_ST):

名称 访问 描述 复位值
7bUMS_SOF_PRESROUSB主机模式下SOF包预示状态位,该位为1表示将要发送SOF包,此时如有其它USB数据包将被自动延后 x
6bUMS_SOF_ACT ROUSB主机模式下SOF包传输状态,该位为1表示正在发出SOF包;该位为0表示发送完成或者空闲 x
5bUMS_SIE_FREEROUSB协议处理器的空闲状态位,该位为0表示忙,正在进行USB传输;该位为1表示USB空闲。同U_SIE_FREE 1
4bUMS_R_FIFO_RDYROUSB接收FIFO数据就绪状态位,该位为0表示接收FIFO为空;该位为1表示接收FIFO非空 0
3bUMS_BUS_RESETROUSB总线复位状态位,该位为0表示当前没有USB总线复位;该位为1表示当前正在USB总线复位 1
2bUMS_SUSPENDROUSB挂起状态位,该位为0表示当前有USB活动;该位为1表示已经有一段时间没有USB活动,请求挂起 0
1bUMS_H1_ATTACHROUSB主机模式下HUB1端口的USB设备连接状态位,该位为1表示HUB1已经连接USB设备;该位为0表示没有 0
0bUMS_H0_ATTACHROUSB主机模式下HUB0端口的USB设备连接状态位,该位为1表示HUB0已经连接USB设备;该位为0表示没有 0

USB中断使能寄存器(USB_INT_EN):

名称 访问 描述 复位值
7bUIE_DEV_SOFRW该位为1使能USB设备模式接收SOF包中断;为0禁止0
6bUIE_DEV_NAKRW该位为1使能USB设备模式接收到NAK中断;为0禁止0
5保留RO保留0
4bUIE_FIFO_OVRW该位为1使能FIFO溢出中断;该位为0关闭使能0
3bUIE_HST_SOFRW该位为1使能USB主机模式SOF定时中断;为0禁止0
2bUIE_SUSPENDRW该位为1使能USB总线挂起或唤醒事件中断;为0禁止0
1bUIE_TRANSFERRW该位为1使能USB传输完成中断;该位为0禁止0
0bUIE_DETECTRW该位为1使能USB主机模式下USB设备连接或断开事件中断;该位为0禁止0
0bUIE_BUS_RSTRW该位为1使能USB设备模式下USB总线复位事件中断;该位为0禁止0

USB控制寄存器(USB_CTRL):

名称 访问 描述 复位值
7bUC_HOST_MODERWUSB工作模式选择位,该位为0选择USB设备模式(DEVICE);该位为1选择USB主机模式(HOST)0
6bUC_LOW_SPEEDRWUSB总线信号传输速率选择位,该位为0选择全速12Mbps;该位为1选择低速1.5Mbps0
5bUC_DEV_PU_ENRWUSB设备模式下USB设备使能和内部上拉电阻控制位,该位为1则使能USB设备传输并且启用内部上拉电阻0
5bUC_SYS_CTRL1RWUSB系统控制高位0
4bUC_SYS_CTRL0RWUSB系统控制低位0
3bUC_INT_BUSY RWUSB传输完成中断标志未清零前自动暂停使能位,该位为1则在中断标志UIF_TRANSFER未清零前自动暂停,对于设备模式将自动应答忙NAK,对于主机模式将自动暂停后续传输;该位为0则不暂停0
2bUC_RESET_SIERWUSB协议处理器软件复位控制位,该位为1则强制复位USB协议处理器,需要软件清零1
1bUC_CLR_ALL RW该位为1清空USB中断标志和FIFO,需要软件清零1
0bUC_DMA_EN RW该位为1使能USB的DMA和DMA中断;为0关闭使能0

由bUC_HOST_MODE、bUC_SYS_CTRL1和bUC_SYS_CTRL0组成USB系统控制组合:

bUC_HOST_MODEbUC_SYS_CTRL1bUC_SYS_CTRL0USB系统控制描述
000禁止USB设备功能,关闭内部上拉电阻
001使能USB设备功能,关闭内部上拉,需加外部上拉
010使能USB设备功能,启用内部上拉电阻
011使能USB设备功能,启用内部弱上拉电阻
100选择USB主机模式,正常工作状态
101选择USB主机模式,强制DP/DM输出SE0状态
110选择USB主机模式,强制DP/DM输出J状态
111选择USB主机模式,强制DP/DM输出K状态/唤醒

USB设备地址寄存器(USB_DEV_AD):

名称 访问描述复位值
7bUDA_GP_BITRWUSB通用标志位:使用者可自定义,可软件清零或置位0
[6:0]MASK_USB_ADDRRW主机模式下是当前操作的USB设备的地址;设备模式下是该USB设备的地址00h

DMA当前缓冲区地址寄存器(USB_DMA):

名称 访问描述复位值
[7:0]USB_DMA_AHRODMA当前缓冲区地址高字节,仅低5位有效,高3位固定为0xxh
[7:0]USB_DMA_ALRODMA当前缓冲区地址低字节xxh

16.3 设备寄存器

在USB设备模式下CH559提供了端点0、1、2、3、4共5组双向端点,所有端点的最大数据包长度都是64字节。

端点0是默认端点,支持控制传输,发送和接收共用一个64字节数据缓冲区。

端点1、端点2、端点3各包括一个发送端点IN和一个接收端点OUT,发送和接收各有一个独立的64字节或者双64字节数据缓冲区,支持控制传输、批量传输、中断传输和实时/同步传输。

端点4包括一个发送端点IN和一个接收端点OUT,发送和接收各有一个独立的64字节数据缓冲区,支持控制传输、批量传输、中断传输和实时/同步传输。

每组端点都具有一个控制寄存器UEPn_CTRL和发送长度寄存器UEPn_T_LEN(n=0/1/2/3/4),用于设定该端点的同步触发位、对OUT事务和IN事务的响应以及发送数据的长度等。

作为USB设备所必要的USB总线上拉电阻可以由软件随时设置是否启用,当USB控制寄存器USB_CTRL中的bUC_DEV_PU_EN置1时,CH559根据bUD_LOW_SPEED在内部为USB总线的DP引脚或者DM引脚连接上拉电阻,并启用USB设备功能。

当检测到USB总线复位、USB总线挂起或唤醒事件,或者当USB成功处理完数据发送或者数据接收后,USB协议处理器都将设置相应的中断标志并产生中断请求。应用程序可以直接查询或在USB中断服务程序中查询并分析中断标志寄存器USB_INT_FG,根据UIF_BUS_RST和UIF_SUSPEND进行相应的处理;并且,如果UIF_TRANSFER有效,那么还需要继续分析USB中断状态寄存器USB_INT_ST,根据当前端点号MASK_UIS_ENDP和当前事务令牌PID标识MASK_UIS_TOKEN进行相应的处理。如果事先设定了各个端点的OUT事务的同步触发位bUEP_R_TOG,那么可以通过U_TOG_OK或bUIS_TOG_OK判断当前所接收到的数据包的同步触发位是否与该端点的同步触发位匹配,如果数据同步,则数据有效;如果数据不同步,则数据应该被丢弃。每次处理完USB发送或者接收中断后,都应该正确修改相应端点的同步触发位,用于同步下次所发送的数据包和检测下次所接收的数据包是否同步;另外,通过设置bUEP_AUTO_TOG可以实现在发送成功或者接收成功后自动翻转相应的同步触发位。

各个端点准备发送的数据在各自的缓冲区中,准备发送的数据长度是独立设定在UEPn_T_LEN中;各个端点接收到的数据在各自的缓冲区中,但是接收到的数据长度都在USB接收长度寄存器USB_RX_LEN中,可以在USB接收中断时根据当前端点号区分。

表16.3.1 USB设备相关寄存器列表
名称地址描述复位值
UEP1_CTRL D2h端点1控制寄存器0000 0000b
UEP1_T_LEND3h端点1发送长度寄存器 0xxx xxxxb
UEP2_CTRLD4h端点2控制寄存器 0000 0000b
UEP2_T_LEND5h端点2发送长度寄存器0000 0000b
UEP3_CTRLD6h端点3控制寄存器0000 0000b
UEP3_T_LEND7h端点3发送长度寄存器0xxx xxxxb
UEP0_CTRLDCh端点0控制寄存器0000 0000b
UEP0_T_LENDDh端点0发送长度寄存器0xxx xxxxb
UEP4_CTRLDEh端点4控制寄存器0000 0000b
UEP4_T_LENDFh端点4发送长度寄存器0xxx xxxxb
UDEV_CTRLE4hUSB设备物理端口控制寄存器0100 x000b
UEP4_1_MOD2446h端点1、4模式控制寄存器0000 0000b
UEP2_3_MOD2447h端点2、3模式控制寄存器0000 0000b
UEP0_DMA_H2448h端点0和4缓冲区起始地址高字节000x xxxxb
UEP0_DMA_L2449h端点0和4缓冲区起始地址低字节xxxx xxx0b
UEP0_DMA2448hUEP0_DMA_L和UEP0_DMA_H组成16位SFRxxxxb
UEP1_DMA_H244Ah端点1缓冲区起始地址高字节000x xxxxb
UEP1_DMA_L244Bh端点1缓冲区起始地址低字节xxxx xxxxb
UEP1_DMA244AhUEP1_DMA_L和UEP1_DMA_H组成16位SFRxxxxb
UEP2_DMA_H244Ch端点2缓冲区起始地址高字节000x xxxxb
UEP2_DMA_L244Dh端点2缓冲区起始地址低字节xxxx xxx0b
UEP2_DMA244ChUEP2_DMA_L和UEP2_DMA_H组成16位SFRxxxxb
UEP3_DMA_H244Eh端点3缓冲区起始地址高字节000x xxxxb
UEP3_DMA_L244Fh端点3缓冲区起始地址低字节xxxx xxx0b
UEP3_DMA244EhUEP3_DMA_L和UEP3_DMA_H组成16位SFRxxxxb
pUEP*254*h在bXIR_XSFR置1后,该名称用于以pdata类型寻址上述xSFR,比xdata类型寻址更快捷

端点n控制寄存器(UEPn_CTRL):

名称 访问 描述 复位值
7bUEP_R_TOG RWUSB端点n的接收器(处理SETUP/OUT事务)期望的同步触发位,该位为0表示期望DATA0;为1表示期望DATA10
6bUEP_T_TOG RWUSB端点n的发送器(处理IN事务)准备的同步触发位,该位为0表示发送DATA0;为1表示发送DATA10
5保留 RO保留0
4bUEP_AUTO_TOGRW同步触发位自动翻转使能控制位,该位为1表示在发送成功或接收成功后自动翻转相应的同步触发位;为0表示不自动翻转,但可以手动切换。只支持端点1/2/30
3bUEP_R_RES1 RW端点n的接收器对SETUP/OUT事务的响应控制高位0
2bUEP_R_RES0 RW端点n的接收器对SETUP/OUT事务的响应控制低位0
1bUEP_T_RES1 RW端点n的发送器对IN事务的响应控制高位0
0bUEP_T_RES0 RW端点n的发送器对IN事务的响应控制低位0

由bUEP_R_RES1和bUEP_R_RES0组成的MASK_UEP_R_RES用于控制端点n的接收器对SETUP/OUT事务的响应方式:00表示应答ACK或就绪;01表示超时/无响应,用于实现非端点0的实时/同步传输;10表示应答NAK或忙;11表示应答STALL或错误。

由bUEP_T_RES1和bUEP_T_RES0组成的MASK_UEP_T_RES用于控制端点n的发送器对IN事务的响应方式:00表示应答DATA0/DATA1或数据就绪并期望ACK;01表示应答DATA0/DATA1并期望无响应,用于实现非端点0的实时/同步传输;10表示应答NAK或忙;11表示应答STALL或错误。

端点n发送长度寄存器(UEPn_T_LEN):

名称 访问 描述 复位值
[7:0]bUEPn_T_LENRW设置USB端点n准备发送的数据字节数(n=0/1/3/4)xxh
bUEP2_T_LEN 设置USB端点2准备发送的数据字节数 00h

USB设备物理端口控制寄存器(UDEV_CTRL):

名称 访问 描述 复位值
7保留RO保留0
6bUD_RECV_DISRWUSB设备物理端口接收器禁用位,该位为1禁用接收器,没有静态功耗;该位为0使能接收器,产生静态功耗1
5bUD_DP_PD_DISRWUSB设备端口DP引脚内部下拉电阻禁用位,该位为1禁用内部下拉电阻;该位为0使能DP内部下拉电阻0
4bUD_DM_PD_DISRWUSB设备端口DM引脚内部下拉电阻禁用位,该位为1禁用内部下拉电阻;该位为0使能DM内部下拉电阻0
3bUD_DIFF_IN R0当前DP和DM引脚之间的差分输入状态x
2bUD_LOW_SPEEDRWUSB设备物理端口低速模式使能位,该位为1选择1.5Mbps低速模式;该位为0选择12Mbps全速模式0
1bUD_GP_BITRWUSB设备模式通用标志位:使用者可自己定义,可软件清零或置位0
0bUD_PORT_ENRWUSB设备物理端口使能位,该位为1使能物理端口;该位为0禁用物理端口0

USB端点1、4模式控制寄存器(UEP4_1_MOD):

名称 访问 描述 复位值
7bUEP1_RX_EN RW该位为0禁止端点1接收;为1使能端点1接收(OUT)0
6bUEP1_TX_EN RW该位为0禁止端点1发送;为1使能端点1发送(IN)0
5保留 RO保留0
4bUEP1_BUF_MODRW端点1数据缓冲区模式控制位0
3bUEP4_RX_EN RO该位为0禁止端点4接收;为1使能端点4接收(OUT)0
2bUEP4_TX_EN RW该位为0禁止端点4发送;为1使能端点4发送(IN)0
[1:0]保留 RO保留00b

由bUEP4_RX_EN和bUEP4_TX_EN组合控制USB端点0和4的数据缓冲区模式,参考下表。

表16.3.2 端点0和4缓冲区模式
bUEP4_RX_ENbUEP4_TX_EN结构描述:以UEP0_DMA为起始地址由低向高排列
00端点0单64字节收发共用缓冲区(IN和OUT)
10端点0单64字节收发共用缓冲区;端点4单64字节接收缓冲区(OUT)
01端点0单64字节收发共用缓冲区;端点4单64字节发送缓冲区(IN)
11端点0单64字节收发共用缓冲区;端点4单64字节接收缓冲区(OUT);端点4单64字节发送缓冲区(IN)。全部192字节排列如下:
UEP0_DMA+0地址:端点0收发共用;
UEP0_DMA+64地址:端点4接收;
UEP0_DMA+128地址:端点4发送

USB端点2、3模式控制寄存器(UEP2_3_MOD):

名称 访问 描述 复位值
7bUEP3_RX_EN RW该位为0禁止端点3接收;为1使能端点3接收(OUT)0
6bUEP3_TX_EN RW该位为0禁止端点3发送;为1使能端点3发送(IN)0
5保留 RO保留0
4bUEP3_BUF_MODRW端点3数据缓冲区模式控制位0
3bUEP2_RX_EN RO该位为0禁止端点2接收;为1使能端点2接收(OUT)0
2bUEP2_TX_EN RW该位为0禁止端点2发送;为1使能端点2发送(IN)0
1保留 RO保留0
0bUEP2_BUF_MODRW端点2数据缓冲区模式控制位0

由bUEPn_RX_EN和bUEPn_TX_EN以及bUEPn_BUF_MOD(n=1/2/3)组合分别控制USB端点1、2、3的数据缓冲区模式,参考下表。其中的双64字节缓冲区模式,USB数据传输时将根据bUEP_*_TOG=0选择前64字节缓冲区,根据bUEP_*_TOG=1选择后64字节缓冲区,实现自动切换。

表16.3.3 端点n缓冲区模式(n=1/2/3)
bUEPn_RX_ENbUEPn_TX_ENbUEPn_BUF_MOD结构描述:以UEPn_DMA为起始地址由低向高排列
00x端点被禁用,未用到UEPn_DMA缓冲区
100单64字节接收缓冲区(OUT)
101双64字节接收缓冲区,通过bUEP_R_TOG选择
010单64字节发送缓冲区(IN)
011双64字节发送缓冲区,通过bUEP_T_TOG选择
110单64字节接收缓冲区;单64字节发送缓冲区
111双64字节接收缓冲区,通过bUEP_R_TOG选择;双64字节发送缓冲区,通过bUEP_T_TOG选择。
全部256字节排列如下:
UEPn_DMA+0地址:bUEP_R_TOG=0时端点接收;
UEPn_DMA+64地址:bUEP_R_TOG=1时端点接收;
UEPn_DMA+128地址:bUEP_T_TOG=0时端点发送;
UEPn_DMA+192地址:bUEP_T_TOG=1时端点发送

USB端点n缓冲区起始地址(UEPn_DMA)(n=0/1/2/3):

名称 访问 描述 复位值
[7:0]UEPn_DMA_HRW端点n缓冲区起始地址高字节,仅低5位有效,高3位固定为0xxh
[7:0]UEPn_DMA_LRW端点n缓冲区起始地址低字节,仅高7位有效,最低位固定为0,仅支持偶地址xxh

注:接收数据的缓冲区的长度>=min(可能接收到的最大数据包长度+2字节,64字节)

16.4 主机寄存器

在USB主机模式下CH559提供了一组双向主机端点,包括一个发送端点OUT和一个接收端点IN,数据包的最大长度是64字节,支持控制传输、批量传输、中断传输和实时/同步传输。

由主机端点发起的每一个USB事务,在处理结束后总是自动设置中断标志UIF_TRANSFER。应用程序可以直接查询或在USB中断服务程序中查询并分析中断标志寄存器USB_INT_FG,根据各中断标志分别进行相应的处理;并且,如果UIF_TRANSFER有效,那么还需要继续分析USB中断状态寄存器USB_INT_ST,根据当前USB传输事务的应答PID标识MASK_UIS_H_RES进行相应的处理。

如果事先设定了主机接收端点的IN事务的同步触发位bUH_R_TOG,那么可以通过U_TOG_OK或bUIS_TOG_OK判断当前所接收到的数据包的同步触发位是否与主机接收端点的同步触发位匹配,如果数据同步,则数据有效;如果数据不同步,则数据应该被丢弃。每次处理完USB发送或者接收中断后,都应该正确修改相应主机端点的同步触发位,用于同步下次所发送的数据包和检测下次所接收的数据包是否同步;另外,通过设置bUEP_AUTO_TOG可以实现在发送成功或者接收成功后自动翻转相应的同步触发位。

USB主机令牌设置寄存器UH_EP_PID是对USB设备模式下的USB端点1控制寄存器的复用,用于设置被操作的目标设备的端点号和本次USB传输事务的令牌PID包标识。SETUP令牌和OUT令牌所对应的数据由主机发送端点提供,准备发送的数据在UH_TX_DMA缓冲区中,准备发送的数据长度设置在UH_TX_LEN中;IN令牌所对应的数据由目标设备返回给主机接收端点,接收到的数据存放在UH_RX_DMA缓冲区中,接收到的数据长度存放在USB_RX_LEN中。

表16.4.1 USB主机相关寄存器列表
名称 地址 描述 复位值
UH_SETUP D2hUSB主机辅助设置寄存器0000 0000b
UH_RX_CTRLD4hUSB主机接收端点控制寄存器0000 0000b
UH_EP_PID D5hUSB主机令牌设置寄存器0000 0000b
UH_TX_CTRLD6hUSB主机发送端点控制寄存器0000 0000b
UH_TX_LEN D7hUSB主机发送长度寄存器0xxx xxxxb
USB_HUB_STDBhUSB主机HUB端口状态寄存器(只读)0000 0000b
UHUB0_CTRLE4hUSB主机HUB0端口控制寄存器0100 x000b
UHUB1_CTRLE5hUSB主机HUB1端口控制寄存器1100 x000b
UH_EP_MOD 2447hUSB主机端点模式控制寄存器0000 0000b
UH_RX_DMA_H244ChUSB主机接收缓冲区起始地址高字节000x xxxxb
UH_RX_DMA_L244DhUSB主机接收缓冲区起始地址低字节xxxx xxx0b
UH_RX_DMA 244ChUH_RX_DMA_L和UH_RX_DMA_H组成16位SFRxxxxh
UH_TX_DMA_H244EhUSB主机发送缓冲区起始地址高字节000x xxxxb
UH_TX_DMA_L244FhUSB主机发送缓冲区起始地址低字节xxxx xxx0b
UH_TX_DMA 244EhUH_TX_DMA_L和UH_TX_DMA_H组成16位SFRxxxxh
pUH_* 254*h在bXIR_XSFR置1后,该名称用于以pdata类型寻址上述xSFR,比xdata类型寻址更快捷

USB主机辅助设置寄存器(UH_SETUP):

名称 访问 描述 复位值
7bUH_PRE_PID_ENRW低速前导包PREPID使能位,该位为1使能USB主机通过外部HUB与低速USB设备通讯;为0禁用低速前导包,USB主机与低速USB设备之间不能有HUB0
6bUH_SOF_ENRW自动产生SOF包使能位,该位为1由USB主机自动产生SOF包;为0不自动产生,但可以手工产生0
[5:0]保留RO保留00h

USB主机接收端点控制寄存器(UH_RX_CTRL):

名称 访问 描述 复位值
7bUH_R_TOGRWUSB主机接收器(处理IN事务)期望的同步触发位,该位为0表示期望DATA0;为1表示期望DATA10
[6:5]保留RO保留00b
4bUH_R_AUTO_TOGRW自动翻转bUH_R_TOG使能控制位,该位为1表示在USB主机接收成功后自动翻转bUH_R_TOG标志;为0表示不自动翻转,但可以手动切换0
3保留RO保留0
2bUH_R_RESRWUSB主机接收器对IN事务的响应控制位,为0表示应答ACK或就绪;为1表示无响应,用于与目标设备的非端点0进行实时/同步传输0
[1:0]保留RO保留00b

USB主机令牌设置寄存器(UH_EP_PID):

名称 访问 描述 复位值
[7:4]MASK_UH_TOKENRW设置本次USB传输事务的令牌PID包标识0000b
[3:0]MASK_UH_ENDP RW设置本次被0000b

USB主机发送端点控制寄存器(UH_TX_CTRL):

名称 访问 描述 复位值
7保留 RO保留0
6bUH_T_TOGRWUSB主机发送器(处理SETUP/OUT事务)准备的同步触发位,该位为0表示发送DATA0;为1表示发送DATA10
5保留RO保留0
4bUH_T_AUTO_TOGRW自动翻转bUH_T_TOG使能控制位,该位为1表示在USB主机发送成功后自动翻转bUH_T_TOG标志;为0表示不自动翻转,但可以手动切换0
[3:1]保留RO保留000b
0bUH_T_RESRWUSB主机发送器对SETUP/OUT事务的响应控制位,为0表示期望应答ACK或就绪;为1表示期望无响应,用于与目标设备的非端点0进行实时/同步传输0

USB主机发送长度寄存器(UH_TX_LEN):

名称 访问 描述 复位值
[7:0]UH_TX_LENRW设置USB主机发送端点准备发送的数据字节数xxh

USB主机HUB端口状态寄存器(USB_HUB_ST):

名称 访问 描述 复位值
7bUHS_H1_ATTACHROHUB1端口的USB设备连接状态位,该位为1表示HUB1已经连接USB设备;该位为0表示没有。同bUMS_H1_ATTACH0
6bUHS_HM_LEVEL RO记录USB设备刚连接到HUB1端口时的HM引脚的状态,为0表示低电平;为1表示高电平。用于判断全速或低速0
5bUHS_HP_PIN RO当前HP引脚状态,为0表示低电平;为1表示高电平0
4bUHS_HM_PIN RO当前HM引脚状态,为0表示低电平;为1表示高电平0
3bUHS_H0_ATTACHROHUB0端口的USB设备连接状态位,该位为1表示HUB0已经连接USB设备;该位为0表示没有。同bUMS_H0_ATTACH0
2bUHS_DM_LEVEL RO记录USB设备刚连接到HUB0端口时的DM引脚的状态,为0表示低电平;为1表示高电平。用于判断全速或低速0
1bUHS_DP_PIN RO当前DP引脚状态,为0表示低电平;为1表示高电平0
0bUHS_DM_PIN RO当前DM引脚状态,为0表示低电平;为1表示高电平0

USB主机HUBn端口控制寄存器(UHUBn_CTRL)(n=0、1):

名称 访问 描述 复位值
7保留 RO对于UHUB0_CTRL是保留1
7bUH1_DISABLE RW对于UHUB1_CTRL是USB主机HUB1端口引脚禁用位,该位为1禁用HP/HM引脚,释放P5.5/P5.4将用于其它功能;该位为0使能P5.5/P5.4作为HP/HM用于HUB1端口1
6bUH_RECV_DIS RWUSB主机HUBn端口接收器禁用位,该位为1禁用接收器,没有静态功耗;该位为0使能接收器,产生静态功耗1
5bUH_DP_PD_DISRWUSB主机HUBn端口DP/HP引脚内部下拉电阻禁用位,该位为1禁用内部下拉电阻;该位为0使能内部下拉电阻0
4bUH_DM_PD_DISRWUSB主机HUBn端口DM/HM引脚内部下拉电阻禁用位,该位为1禁用内部下拉电阻;该位为0使能内部下拉电阻0
3bUH_DIFF_IN R0对于UHUB0_CTRL是当前DP和DM引脚之间的差分输入状态对于UHUB1_CTRL是当前HP和HM引脚之间的差分输入状态x
2bUH_LOW_SPEEDRWUSB主机HUBn端口低速模式使能位,该位为1选择1.5Mbps低速模式;该位为0选择12Mbps全速模式0
1bUH_BUS_RESETRWUSB主机HUBn端口总线复位控制位,该位为1强制HUBn端口输出USB总线复位;该位为0结束输出0
0bUH_PORT_EN RWUSB主机HUBn端口使能位,该位为0禁用HUBn端口;该位为1使能HUBn端口。当USB设备断开连接时该位自动清零0

USB主机端点模式控制寄存器(UH_EP_MOD):

名称 访问 描述 复位值
7保留RO保留0
6bUH_EP_TX_ENRW该位为0禁止USB主机发送端点发送数据;该位为1使能USB主机发送端点发送数据(SETUP/OUT)0
5保留RO保留0
4bUH_EP_TBUF_MODRWUSB主机发送端点数据缓冲区模式控制位0
3bUH_EP_RX_ENRO该位为0禁止USB主机接收端点接收数据;该位为1使能USB主机接收端点接收数据(IN)0
[2:1]保留RO保留00b
0bUH_EP_RBUF_MODRWUSB主机接收端点数据缓冲区模式控制位0

由bUH_EP_TX_EN和bUH_EP_TBUF_MOD组合控制USB主机发送端点数据缓冲区模式,参考下表。

表16.4.2 主机发送缓冲区模式
bUH_EP_TX_ENbUH_EP_TBUF_MOD结构描述:以UH_TX_DMA为起始地址
0x端点被禁用,未用到UH_TX_DMA缓冲区
10单64字节发送缓冲区(SETUP/OUT)
11双64字节发送缓冲区,通过bUH_T_TOG选择:当bUH_T_TOG=0时选择前64字节缓冲区;当bUH_T_TOG=1时选择后64字节缓冲区

由bUH_EP_RX_EN和bUH_EP_RBUF_MOD组合控制USB主机接收端点数据缓冲区模式,参考下表。

表16.4.3 主机接收缓冲区模式
bUH_EP_RX_ENbUH_EP_RBUF_MOD结构描述:以UH_RX_DMA为起始地址
0x端点被禁用,未用到UH_RX_DMA缓冲区
10单64字节接收缓冲区(IN)
11双64字节接收缓冲区,通过bUH_R_TOG选择:当bUH_R_TOG=0时选择前64字节缓冲区;当bUH_R_TOG=1时选择后64字节缓冲区

USB主机接收缓冲区起始地址(UH_RX_DMA):

名称 访问 描述 复位值
[7:0]UH_TX_DMA_HRWUSB主机接收缓冲区起始地址高字节,仅低5位有效,高3位固定为0xxh
[7:0]UH_TX_DMA_LRWUSB主机接收缓冲区起始地址低字节,仅高7位有效,最低位固定为0,仅支持偶地址xxh

USB主机接发送冲区起始地址(UH_TX_DMA):

名称 访问 描述 复位值
[7:0]UH_TX_DMA_HRWUSB主机发送缓冲区起始地址高字节,仅低5位有效,高3位固定为0xxh
[7:0]UH_TX_DMA_LRWUSB主机发送缓冲区起始地址低字节,仅高7位有效,最低位固定为0,仅支持偶地址xxh