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

📄 reg9604.h

📁 USBN9604的初始化函数(C51),以及寄存器头文件,USB接口开发技术[西安电子科技大学出版社] 这本书上有更详细的电路以及代码介绍
💻 H
字号:
/*--------------------------------------------------------------------------*/
/*-----------------------  USBN9604 寄存器定义        ----------------------*/
/*--------------------------------------------------------------------------*/
#define MCNTRL     0x00                 /* 主控寄存器     Main control register   */
#define CCONF      0x01                 /* 时钟配置寄存器 Clk. config. register   */    
#define RID        0x03                 /* 版本号寄存器   Rev. ID      register   */  
#define FAR        0x04                 /* 设备地址寄存器 Func address register   */  
#define NFSR       0x05                 /* 设备状态寄存器  Node func st register   */   
#define MAEV       0x06                 /* 主事件寄存器Main event   register   */  
#define MAMSK      0x07                 /* 主事件屏蔽寄存器Main mask    register   */  
#define ALTEV      0x08                 /* 候补事件寄存器Alt. event   register   */  
#define ALTMSK     0x09                 /* 候补事件屏蔽寄存器ALT  mask    register   */  
#define TXEV       0x0A                 /* 发送事件寄存器TX   event   register   */ 
#define TXMSK      0x0B                 /* 发送事件屏蔽寄存器TX   mask    register   */   
#define RXEV       0x0C                 /* 接收事件寄存器 RX   event   register   */ 
#define RXMSK      0x0D                 /* 接收事件屏蔽寄存器RX   mask    register   */   
#define NAKEV      0x0E                 /* NAK事件寄存器NAK  event   register   */  
#define NAKMSK     0x0F                 /* NAK事件屏蔽寄存器NAK  mask    register   */  
#define FWEV       0x10                 /* FIFO报警寄存器FIFO warning register   */   
#define FWMSK      0x11                 /* FIFO报警屏蔽寄存器FIFO warning mask       */  
#define FNH        0x12                 /* 帧号寄存器高字节Frame nbr hi register   */   
#define FNL        0x13                 /* 帧号寄存器低字节Frame nbr lo register   */  
#define DMACNTRL   0x14                 /* DMA控制寄存器 DMA  control register   */ 

 
#define EPC0       0x20                 /*Endpoint0 控制寄存器  register   */   
#define TXD0       0x21                 /*Endpoint0 发送数据寄存器TX   data    register 0 */ 
#define TXS0       0x22                 /*Endpoint0 发送状态寄存器TX   status  register 0 */ 
#define TXC0       0x23                 /*Endpoint0 发送命令寄存器TX   command register 0 */ 
 
#define RXD0       0x25                 /*Endpoint0 接收数据寄存器RX   data    register 0 */ 
#define RXS0       0x26                 /*Endpoint0 接收状态寄存器RX   status  register 0 */
#define RXC0       0x27                 /*Endpoint0 接收命令寄存器RX   command register 0 */
 
#define EPC1       0x28                 /*Endpoint1 控制寄存器 Endpoint1    register   */   
#define TXD1       0x29                 /*Endpoint1 发送数据寄存器TX   data    register 1 */ 
#define TXS1       0x2A                 /*TX   status  register 1 */ 
#define TXC1       0x2B                 /*TX   command register 1 */  
 
#define EPC2       0x2C                 /*Endpoint2 控制寄存器Endpoint2    register   */   
#define RXD1       0x2D                 /*Endpoint2 接收数据寄存器RX   data    register 1 */ 
#define RXS1       0x2E                 /*RX   status  register 1 */   
#define RXC1       0x2F                 /*RX   command register 1 */   
 
#define EPC3       0x30                 /*Endpoint3控制寄存器    register   */   
#define TXD2       0x31                 /* 发送数据寄存器TX   data    register 2 */  
#define TXS2       0x32                 /*TX   status  register 2 */ 
#define TXC2       0x33                 /*TX   command register 2 */  
 
#define EPC4       0x34                 /*Endpoint4  控制寄存器  register   */   
#define RXD2       0x35                 /*接收数据寄存器RX   data    register 2 */   
#define RXS2       0x36                 /*RX   status  register 2 */   
#define RXC2       0x37                 /*RX   command register 2 */   
 
#define EPC5       0x38                 /*Endpoint5 控制寄存器   register   */   
#define TXD3       0x39                 /*发送数据寄存器TX   data    register 3 */  
#define TXS3       0x3A                 /*TX   status  register 3 */ 
#define TXC3       0x3B                 /*TX   command register 3 */  
 
#define EPC6       0x3C                 /*Endpoint6 控制寄存器   register   */   
#define RXD3       0x3D                 /*接收数据寄存器RX   data    register 3 */   
#define RXS3       0x3E                 /*RX   status  register 3 */   
#define RXC3       0x3F                 /*RX   command register 3 */   
 
/*--------------------------------------------------------------------*/
/*-------------------   主控制寄存器定义                 -------------*/
/*--------------------------------------------------------------------*/

/*-------------------------------- MCNTRL ------------------------*/
#define SRST       0x01                 /*software reset          */   
#define DBG        0x02                 /*debug mode              */  
#define VGE        0x04                 /*voltage regulator enable*/    
#define NAT        0x08                 /*node attached           */  
#define INT_DIS    0x00                 /*interrupts disabled     */  
#define INT_L_O    0x40                 /*act lo ints, open drain */  
#define INT_H_P    0x80                 /*act hi in	ts, push pull  */  
#define INT_L_P    0xC0                 /*act lo ints, push pull  */ 
/*----------时钟配置寄存器定义----------*/ 
#define  CODIS 0x80    /*禁止时钟输出*/
 
/*--------------------- 设备地址寄存器定义 -------------------------*/
#define AD_EN      0x80                 /*地址使能address enable    */   
 
/*--------------------------------- 端点EPCX位定义---------------------*/
#define DEF        0x40                 /*设置缺省地址force def. adr (0 only) */   
#define STALL      0x80                 /*发送stall握手包force stall handshakes  */  
#define ISO        0x20                 /*设为等时端点(1~3)set for isochr. (1-3)   */ 
#define EP_EN      0x10                 /*使能端点(1~3)enables endpt.  (1-3)   */  
 
/*--------------------------------- 设备状态位定义 -------------------------*/
#define RST_ST     0x00                 /*reset状态      state       */   
#define RSM_ST     0x01                 /*resume状态      state       */  
#define OPR_ST     0x02                 /*operational状态 state       */  
#define SUS_ST     0x03                 /*suspend状态     state       */  
 
/*---------------------------- 主事件寄存器定义 -----------------------*/
#define WARN       0x01                 /*FIFO报警warning bit has been set*/   
#define ALT        0x02                 /*候补事件alternate event         */  
#define TX_EV      0x04                 /*传输事件transmit event        */  
#define FRAME      0x08                 /*收到SOF包SOF packet received     */  
#define NAK        0x10                 /*NAK事件 event               */  
#define ULD        0x20                 /*unlock locked detected  */   
#define RX_EV      0x40                 /*receive event           */   
#define INTR_E     0x80                 /*master interrupt enable */  
 
/*----------------------------候补事件寄存器定义---------------------*/
#define EOP 0x00  /*包阶数*/
#define SD3 0x10  /*3ms挂起*/
#define SD5 0x20  /*5ms挂起*/
#define RESET_A 0x40 /*复位事件*/
#define RESUME_A 0x80 /*恢复事件*/
#define ALT_DMA	   0x04		/*DMA event*/
 
/*---------------------------- 发送事件寄存器位定义 -----------------------*/
#define TXFIFO0    0x01                 /*TX_DONE, FIFO 0         */   
#define TXFIFO1    0x02                 /*TX_DONE, FIFO 1         */   
#define TXFIFO2    0x04                 /*TX_DONE, FIFO 2         */   
#define TXFIFO3    0x08                 /*TX_DONE, FIFO 3         */   
#define TXUDRN0    0x10                 /*TX_URUN, FIFO 0         */   
#define TXUDRN1    0x20                 /*TX_URUN, FIFO 1         */  
#define TXUDRN2    0x40                 /*TX_URUN, FIFO 2         */  
#define TXUDRN3    0x80                 /*TX_URUN, FIFO 3         */  
 
/*----------------------------接收事件寄存器位定义-----------------------*/
#define RXFIFO0    0x01                 /*RX_DONE, FIFO 0         */   
#define RXFIFO1    0x02                 /*RX_DONE, FIFO 1         */   
#define RXFIFO2    0x04                 /*RX_DONE, FIFO 2         */   
#define RXFIFO3    0x08                 /*RX_DONE, FIFO 3         */   
#define RXOVRN0    0x10                 /*RX_OVRN, FIFO 0         */   
#define RXOVRN1    0x20                 /*RX_OVRN, FIFO 1         */  
#define RXOVRN2    0x40                 /*RX_OVRN, FIFO 2         */  
#define RXOVRN3    0x80                 /*RX_OVRN, FIFO 3         */  
 
/*-------------------------- NAK寄存器定义 -----------------------*/
#define NAK_I0    0x01                 /*IN  NAK, FIFO 0         */   
#define NAK_I1    0x02                 /*IN  NAK, FIFO 1         */  
#define NAK_I2    0x04                 /*IN  NAK, FIFO 2         */  
#define NAK_I3    0x08                 /*IN  NAK, FIFO 3         */  
#define NAK_O0    0x10                 /*OUT NAK, FIFO 0         */  
#define NAK_O1    0x20                 /*OUT NAK, FIFO 1         */ 
#define NAK_O2    0x40                 /*OUT NAK, FIFO 2         */ 
#define NAK_O3    0x80                 /*OUT NAK, FIFO 3         */ 

/*------------------------------- 发送命令寄存器位定义---------------------------*/
#define TX_EN      0x01                 /*使能传输transmit enable */
#define TX_LAST    0x02                 /*一个完整的数据包已写入FIFO*/   
#define TX_TOGL    0x04                 /*DATA0/1交替 specifies PID used */ 
#define FLUSH      0x08                 /*清空FIFO flushes all FIFO data   */ 

/*------------------------------- 发送状态寄存器位定义 ---------------------------*/
#define TX_DONE    0x20                 /*传输阶数transmit done           */   
#define ACK_STAT   0x40                 /*ACK握手包到达ack status of xmission  */
 
/*-------------------------------接收命令寄存器定义---------------------------*/
#define RX_EN      0x01                 /*使能接收receive  enable         */   
#define IGN_OUT    0x02                 /*忽略OUT标记包ignore out tokens       */   
#define IGN_SETUP  0x04                 /*忽略SETUP标记包ignore setup tokens     */  

/*------------------------------- 接收状态寄存器位定义 ---------------------------*/
#define RX_LAST    0x10                 /*完成一个ACK数据包接收indicates RCOUNT valid  */   
#define RX_TOGL    0x20                 /*成功的接收DATA0/1数据包last pkt was DATA1 PID  */
#define SETUP_R    0x40                 /*收到setup包 setup packet received   */  
#define RX_ERR     0x80                 /*接收包中有错 last packet had an error*/

⌨️ 快捷键说明

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