⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch374inc.inc

📁 CH374EVT.ZIP
💻 INC
📖 第 1 页 / 共 2 页
字号:
;#define	M_SET_EP0_TRAN_NAK( old )		( (old) & ~ BIT_EP0_TRAN_RESP | 0x0E )		; 仅USB设备方式: 端点0发送响应/应答NAK */
;#define	M_SET_EP0_TRAN_STA( old )		( (old) & ~ BIT_EP0_TRAN_RESP | 0x0F )		; 仅USB设备方式: 端点0发送响应/应答STALL */
BIT_EP0_RECV_RESP	EQU     030H		; 仅USB设备方式: 端点0接收响应: 00-应答ACK, 01-禁用, 10-应答NAK, 11-应答STALL */
;#define	M_SET_EP0_RECV_ACK( old )		( (old) & ~ BIT_EP0_RECV_RESP | 0x00 )		; 仅USB设备方式: 端点0接收响应/应答ACK */
;#define	M_SET_EP0_RECV_NAK( old )		( (old) & ~ BIT_EP0_RECV_RESP | 0x20 )		; 仅USB设备方式: 端点0接收响应/应答NAK */
;#define	M_SET_EP0_RECV_STA( old )		( (old) & ~ BIT_EP0_RECV_RESP | 0x30 )		; 仅USB设备方式: 端点0接收响应/应答STALL */
BIT_EP0_TRAN_TOG	EQU     040H		; 仅USB设备方式: 端点0发送同步标志: 0-DATA0, 1-DATA1 */
BIT_EP0_RECV_TOG	EQU     080H		; 仅USB设备方式: 端点0接收同步标志: 0-DATA0, 1-DATA1 */

BIT_EP1_TRAN_RESP	EQU     00FH		; 仅USB设备方式: 端点1发送响应: 0000~1000-应答数据长度0~8, 1110-应答NAK, 1111-应答STALL,其它值-禁用 */
;#define	M_SET_EP1_TRAN_ACK( old, len )	( (old) & ~ BIT_EP1_TRAN_RESP | (len) & 0x0F )	; 仅USB设备方式: 端点1发送响应/应答ACK */
;#define	M_SET_EP1_TRAN_NAK( old )		( (old) & ~ BIT_EP1_TRAN_RESP | 0x0E )		; 仅USB设备方式: 端点1发送响应/应答NAK */
;#define	M_SET_EP1_TRAN_STA( old )		( (old) & ~ BIT_EP1_TRAN_RESP | 0x0F )		; 仅USB设备方式: 端点1发送响应/应答STALL */
BIT_EP1_RECV_RESP	EQU     030H		; 仅USB设备方式: 端点1接收响应: 00-应答ACK, 01-禁用, 10-应答NAK, 11-应答STALL */
;#define	M_SET_EP1_RECV_ACK( old )		( (old) & ~ BIT_EP1_RECV_RESP | 0x00 )		; 仅USB设备方式: 端点1接收响应/应答ACK */
;#define	M_SET_EP1_RECV_NAK( old )		( (old) & ~ BIT_EP1_RECV_RESP | 0x20 )		; 仅USB设备方式: 端点1接收响应/应答NAK */
;#define	M_SET_EP1_RECV_STA( old )		( (old) & ~ BIT_EP1_RECV_RESP | 0x30 )		; 仅USB设备方式: 端点1接收响应/应答STALL */
BIT_EP1_TRAN_TOG	EQU     040H		; 仅USB设备方式: 端点1发送同步标志: 0-DATA0, 1-DATA1 */
BIT_EP1_RECV_TOG	EQU     080H		; 仅USB设备方式: 端点1接收同步标志: 0-DATA0, 1-DATA1 */

BIT_HOST_PID_ENDP	EQU     00FH		; 仅USB主机方式: 目的端点号: 0000~1111-端点号0~15 */
BIT_HOST_PID_TOKEN	EQU     0F0H		; 仅USB主机方式: 指定事务/令牌PID: 1101-SETUP事务, 0001-OUT事务, 1001-IN事务, 0101-SOF包,其它值-禁用 */
;M_MK_HOST_PID_ENDP( pid, endp )	( (pid) << 4 | (endp) & BIT_HOST_PID_ENDP )		; 用事务/令牌PID和目的端点号生成USB主机令牌数据 */

BIT_EP2_TRAN_RESP	EQU     003H		; 仅USB设备方式: 端点2发送响应: 00-应答数据, 01-同步/等时传输, 10-应答NAK, 11-应答STALL */
;#define	M_SET_EP2_TRAN_ACK( old )		( (old) & ~ BIT_EP2_TRAN_RESP | 0x00 )		; 仅USB设备方式: 端点2发送响应/应答ACK */
;#define	M_SET_EP2_TRAN_ISO( old )		( (old) & ~ BIT_EP2_TRAN_RESP | 0x01 )		; 仅USB设备方式: 端点2发送响应/同步/等时传输/无需应答 */
;#define	M_SET_EP2_TRAN_NAK( old )		( (old) & ~ BIT_EP2_TRAN_RESP | 0x02 )		; 仅USB设备方式: 端点2发送响应/应答NAK */
;#define	M_SET_EP2_TRAN_STA( old )		( (old) & ~ BIT_EP2_TRAN_RESP | 0x03 )		; 仅USB设备方式: 端点2发送响应/应答STALL */
BIT_EP2_RECV_RESP	EQU     030H		; 仅USB设备方式: 端点2接收响应: 00-应答ACK, 01-同步/等时传输, 10-应答NAK, 11-应答STALL */
;#define	M_SET_EP2_RECV_ACK( old )		( (old) & ~ BIT_EP2_RECV_RESP | 0x00 )		; 仅USB设备方式: 端点2接收响应/应答ACK */
;#define	M_SET_EP2_RECV_ISO( old )		( (old) & ~ BIT_EP2_RECV_RESP | 0x10 )		; 仅USB设备方式: 端点2接收响应/同步/等时传输/不作应答 */
;#define	M_SET_EP2_RECV_NAK( old )		( (old) & ~ BIT_EP2_RECV_RESP | 0x20 )		; 仅USB设备方式: 端点2接收响应/应答NAK */
;#define	M_SET_EP2_RECV_STA( old )		( (old) & ~ BIT_EP2_RECV_RESP | 0x30 )		; 仅USB设备方式: 端点2接收响应/应答STALL */
BIT_EP2_TRAN_TOG	EQU     040H		; 仅USB设备方式: 端点2发送同步标志: 0-DATA0, 1-DATA1 */
BIT_EP2_RECV_TOG	EQU     080H		; 仅USB设备方式: 端点2接收同步标志: 0-DATA0, 1-DATA1 */

BIT_HOST_TRAN_ISO	EQU     001H		; 仅USB主机方式: 主机发送的传输类型: 0-控制/批量/中断传输, 1-同步/等时传输 */
BIT_HOST_NAK_RETRY	EQU		004H		; 仅USB主机方式: 收到NAK应答自动重试直到非NAK应答或者达到4S超时时间 */
BIT_HOST_START		EQU     008H		; 仅USB主机方式: 主机传输启动控制: 0-暂停, 1-启动传输,完成后自动清0 */
BIT_HOST_RECV_ISO	EQU     010H		; 仅USB主机方式: 主机接收的传输类型: 0-控制/批量/中断传输, 1-同步/等时传输 */
BIT_HOST_TRAN_TOG	EQU     040H		; 仅USB主机方式: 主机发送同步标志: 0-DATA0, 1-DATA1 */
BIT_HOST_RECV_TOG	EQU     080H		; 仅USB主机方式: 主机接收同步标志: 0-DATA0, 1-DATA1 */

; 状态及命令等常量 */

CMD_SPI_374READ		EQU     0C0H		; SPI读操作命令 */
CMD_SPI_374WRITE	EQU     080H		; SPI写操作命令 */

; ********************************************************************************************************************* */
; USB状态 */

; 以下状态代码用于USB设备方式 */
;   位4指示当前接收的数据包是否同步, 0=不同步, 1-同步 */
;   位3-位2指示当前事务, 00=OUT, 10=IN, 11=SETUP */
;   位1-位0指示当前端点, 00=端点0, 01=端点1, 10=端点2 */
USB_INT_EP0_SETUP	EQU     0CH							;USB端点0的SETUP
USB_INT_EP0_OUT		EQU     00H							;USB端点0的OUT
USB_INT_EP0_IN		EQU     08H							;USB端点0的IN
USB_INT_EP1_OUT		EQU     01H							;USB端点1的OUT
USB_INT_EP1_IN		EQU     09H							;USB端点1的IN
USB_INT_EP2_OUT		EQU     02H							;USB端点2的OUT
USB_INT_EP2_IN		EQU     0AH							;USB端点2的IN

; 以下状态代码用于USB主机方式 */
;   位4指示当前接收的数据包是否同步, 0=不同步, 1-同步 */
;   位3-位0指示USB设备的应答: 0010=ACK, 1010=NAK, 1110=STALL, 0011=DATA0, 1011=DATA1, XX00=应答错误或者超时无应答 */
USB_INT_RET_ACK		EQU     DEF_USB_PID_ACK		; 错误:对于OUT/SETUP事务返回ACK */
USB_INT_RET_NAK		EQU     DEF_USB_PID_NAK		; 错误:返回NAK */
USB_INT_RET_STALL	EQU     DEF_USB_PID_STALL	; 错误:返回STALL */
USB_INT_RET_DATA0	EQU     DEF_USB_PID_DATA0	; 错误:对于IN事务返回DATA0 */
USB_INT_RET_DATA1	EQU     DEF_USB_PID_DATA1	; 错误:对于IN事务返回DATA1 */
USB_INT_RET_TOUT	EQU     000H		; 错误:应答错误或者超时无应答 */
USB_INT_RET_TOUT1	EQU     004H		; 错误:应答错误或者超时无应答 */
USB_INT_RET_TOUT2	EQU     008H		; 错误:应答错误或者超时无应答 */
USB_INT_RET_TOUT3	EQU     00CH		; 错误:应答错误或者超时无应答 */


; 以下状态代码1XH用于USB主机方式的操作状态代码, 可以自行定义任意值, 下面的定义仅为了兼容CH375 */
USB_INT_SUCCESS		EQU     14H							;USB事务或者传输操作成功
USB_INT_CONNECT		EQU     15H							;检测到USB设备连接事件
USB_INT_DISCONNECT	EQU     16H							;检测到USB设备断开事件
USB_INT_BUF_OVER	EQU     17H							;USB控制传输的数据太多, 缓冲区溢出
USB_INT_DISK_READ	EQU     1DH							;USB存储器读数据块, 请求数据读出
USB_INT_DISK_WRITE	EQU     1EH							;USB存储器写数据块, 请求数据写入
USB_INT_DISK_ERR	EQU     1FH							;USB存储器操作失败

; ********************************************************************************************************************* */
; 常用USB结构和相关常量 */

; USB请求类型 */
DEF_USB_REQ_READ	EQU     80H							;控制读操作
DEF_USB_REQ_WRITE	EQU     00H							;控制写操作
DEF_USB_REQ_TYPE	EQU     60H							;控制请求类型
DEF_USB_REQ_STAND	EQU     00H							;标准请求
DEF_USB_REQ_CLASS	EQU     20H							;设备类请求
DEF_USB_REQ_VENDOR	EQU     40H							;厂商请求
DEF_USB_REQ_RESERVE	EQU     60H							;保留请求

; USB标准设备请求, RequestType的位6位5=00(Standard) */
DEF_USB_CLR_FEATURE	EQU    01H
DEF_USB_SET_FEATURE	EQU    03H
DEF_USB_GET_STATUS	EQU    00H
DEF_USB_SET_ADDRESS	EQU    05H
DEF_USB_GET_DESCR	EQU    06H
DEF_USB_SET_DESCR	EQU    07H
DEF_USB_GET_CONFIG	EQU    08H
DEF_USB_SET_CONFIG	EQU    09H
DEF_USB_GET_INTERF	EQU    0AH
DEF_USB_SET_INTERF	EQU    0BH
DEF_USB_SYNC_FRAME	EQU    0CH

; 描述符类型 */
USB_DEVICE_DESCR_TYPE		EQU     001H
USB_CONFIG_DESCR_TYPE		EQU     002H
USB_STRING_DESCR_TYPE		EQU     003H
USB_INTERF_DESCR_TYPE		EQU     004H
USB_ENDP_DESCR_TYPE			EQU     005H
USB_POWER_DESCR_TYPE		EQU     006H
USB_HID_DESCR_TYPE			EQU     021H
USB_REPORT_DESCR_TYPE		EQU     022H
USB_PHYSIC_DESCR_TYPE		EQU     023H

; 端点类型和属性 */
USB_ENDP_DIR_MASK			EQU     080H
USB_ENDP_TYPE_MASK			EQU     003H
USB_ENDP_TYPE_CTRL			EQU     000H
USB_ENDP_TYPE_ISOCH			EQU     001H
USB_ENDP_TYPE_BULK			EQU     002H
USB_ENDP_TYPE_INTER			EQU     003H

; 设备类别 */
USB_DEV_CLASS_RESERVED		EQU     000H
USB_DEV_CLASS_AUDIO			EQU     001H
USB_DEV_CLASS_COMMUNIC		EQU     002H
USB_DEV_CLASS_HUMAN_IF		EQU     003H
USB_DEV_CLASS_MONITOR		EQU     004H
USB_DEV_CLASS_PHYSIC_IF		EQU     005H
USB_DEV_CLASS_POWER			EQU     006H
USB_DEV_CLASS_PRINTER		EQU     007H
USB_DEV_CLASS_STORAGE		EQU     008H
USB_DEV_CLASS_HUB			EQU     009H
USB_DEV_CLASS_VEN_SPEC		EQU     0FFH

DEFAULT_ENDP0_SIZE			EQU		08H				; 默认的端点0最大包长度 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -