2410usb.h
上传用户:hank9955
上传日期:2022-08-05
资源大小:14k
文件大小:4k
源码类别:

USB编程

开发平台:

C/C++

  1. /*********************************************
  2.   NAME: 2410usb.h
  3.   DESC: 
  4.   HISTORY:
  5.   03.23.2002:purnnamu: first release for 2410
  6.  *********************************************/
  7. #ifndef __24XUSB_H__
  8. #define __24XUSB_H__
  9. #include "2410addr.h"
  10. //*************************************************************************
  11. // USB definitons
  12. //*************************************************************************
  13. /* Power Management Register */
  14. #define DISABLE_SUSPEND          0x00   
  15. #define ENABLE_SUSPEND           0x01
  16. #define SUSPEND_MODE  0x02
  17. #define MCU_RESUME               0x04
  18. #define ISO_UPDATE  (1<<7)
  19. /* MAXP Register */
  20. #define FIFO_SIZE_0              0x00  /* 0x00 * 8 = 0  */
  21. #define FIFO_SIZE_8              0x01  /* 0x01 * 8 = 8  */
  22. #define FIFO_SIZE_16             0x02  /* 0x02 * 8 = 16 */
  23. #define FIFO_SIZE_32             0x04  /* 0x04 * 8 = 32 */
  24. #define FIFO_SIZE_64             0x08  /* 0x08 * 8 = 64 */
  25. /* ENDPOINT0 CSR (Control Status Register) : Mapped to IN CSR1 */
  26. #define EP0_OUT_PKT_READY        0x01  /* USB sets, MCU clears by setting SERVICED_OUT_PKT_RDY */
  27. #define EP0_IN_PKT_READY         0x02  /* MCU sets, USB clears after sending FIFO */
  28. #define EP0_SENT_STALL           0x04  /* USB sets */       
  29. #define EP0_DATA_END             0x08  /* MCU sets */
  30. #define EP0_SETUP_END            0x10  /* USB sets, MCU clears by setting SERVICED_SETUP_END */
  31. #define EP0_SEND_STALL           0x20  /* MCU sets */
  32. #define EP0_SERVICED_OUT_PKT_RDY 0x40  /* MCU writes 1 to clear OUT_PKT_READY */
  33. #define EP0_SERVICED_SETUP_END   0x80  /* MCU writes 1 to clear SETUP_END        */
  34. #define EP0_WR_BITS              0xc0  
  35. //EP_INT_REG / EP_INT_EN_REG
  36. #define EP0_INT                  0x01  // Endpoint 0, Control   
  37. #define EP1_INT                  0x02  // Endpoint 1, (Bulk-In) 
  38. #define EP2_INT                  0x04  // Endpoint 2 
  39. #define EP3_INT  0x08  // Endpoint 3, (Bulk-Out)   
  40. #define EP4_INT  0x10  // Endpoint 4
  41. //USB_INT_REG / USB_INT_EN_REG
  42. #define SUSPEND_INT              0x01  
  43. #define RESUME_INT               0x02  
  44. #define RESET_INT                0x04  
  45. //IN_CSR1
  46. #define EPI_IN_PKT_READY         0x01  
  47. #define EPI_UNDER_RUN  0x04
  48. #define EPI_FIFO_FLUSH  0x08
  49. #define EPI_SEND_STALL           0x10  
  50. #define EPI_SENT_STALL           0x20  
  51. #define EPI_CDT  0x40
  52. #define EPI_WR_BITS              (EPI_FIFO_FLUSH|EPI_IN_PKT_READY|EPI_CDT) 
  53. //(EPI_FIFO_FLUSH) is preferred  (???)
  54. //IN_CSR2
  55. #define EPI_IN_DMA_INT_MASK (1<<4)
  56. #define EPI_MODE_IN (1<<5)
  57. #define EPI_MODE_OUT (0<<5)
  58. #define EPI_ISO (1<<6)
  59. #define EPI_BULK (0<<6)
  60. #define EPI_AUTO_SET (1<<7)
  61. //OUT_CSR1
  62. #define EPO_OUT_PKT_READY        0x01  
  63. #define EPO_OVER_RUN  0x04  
  64. #define EPO_DATA_ERROR  0x08  
  65. #define EPO_FIFO_FLUSH  0x10
  66. #define EPO_SEND_STALL           0x20  
  67. #define EPO_SENT_STALL           0x40
  68. #define EPO_CDT  0x80
  69. #define EPO_WR_BITS              (EPO_FIFO_FLUSH|EPO_SEND_STALL|EPO_CDT)
  70. //(EPO_FIFO_FLUSH) is preferred (???)
  71. //OUT_CSR2
  72. #define EPO_OUT_DMA_INT_MASK (1<<5)
  73. #define EPO_ISO   (1<<6)
  74. #define EPO_BULK   (0<<6)
  75. #define EPO_AUTO_CLR (1<<7)
  76. //USB DMA control register
  77. #define UDMA_IN_RUN_OB (1<<7)
  78. #define UDMA_IGNORE_TTC (1<<7)
  79. #define UDMA_DEMAND_MODE (1<<3)
  80. #define UDMA_OUT_RUN_OB (1<<2)
  81. #define UDMA_OUT_DMA_RUN (1<<2)
  82. #define UDMA_IN_DMA_RUN (1<<1)
  83. #define UDMA_DMA_MODE_EN (1<<0)
  84. #define rEP1_DMA_TTC (rEP1_DMA_TTC_L+(rEP1_DMA_TTC_M<<8)+(rEP1_DMA_TTC_H<<16))
  85. #define rEP2_DMA_TTC (rEP2_DMA_TTC_L+(rEP2_DMA_TTC_M<<8)+(rEP2_DMA_TTC_H<<16))
  86. #define rEP3_DMA_TTC (rEP3_DMA_TTC_L+(rEP3_DMA_TTC_M<<8)+(rEP3_DMA_TTC_H<<16))
  87. #define rEP4_DMA_TTC (rEP4_DMA_TTC_L+(rEP4_DMA_TTC_M<<8)+(rEP4_DMA_TTC_H<<16))
  88. #define ADDR_EP0_FIFO  (0x520001c0) //Endpoint 0 FIFO
  89. #define ADDR_EP1_FIFO (0x520001c4) //Endpoint 1 FIFO
  90. #define ADDR_EP2_FIFO (0x520001c8) //Endpoint 2 FIFO
  91. #define ADDR_EP3_FIFO (0x520001cc) //Endpoint 3 FIFO
  92. #define ADDR_EP4_FIFO (0x520001d0) //Endpoint 4 FIFO
  93. //If you chane the packet size, the source code should be changed!!!
  94. #define EP0_PKT_SIZE             8
  95. #define EP1_PKT_SIZE             BULK_PKT_SIZE
  96. #define EP3_PKT_SIZE             BULK_PKT_SIZE
  97. #endif //__24XUSB_H__