DSP281x_Spi.h
上传用户:qingfan3
上传日期:2014-10-27
资源大小:31439k
文件大小:6k
源码类别:

DSP编程

开发平台:

C/C++

  1. //###########################################################################
  2. //
  3. // FILE:   DSP281x_Spi.h
  4. //
  5. // TITLE:  DSP281x Device SPI Register Definitions.
  6. //
  7. //###########################################################################
  8. //
  9. //  Ver | dd mmm yyyy | Who  | Description of changes
  10. // =====|=============|======|===============================================
  11. //  1.00| 11 Sep 2003 | L.H. | Changes since previous version (v.58 Alpha)
  12. //      |             |      | Corrected SPIFFTX bit definitions.
  13. //      |             |      | RESET renamed SPISWRESET to match documentation
  14. //      |             |      | OVERRUN renamed OVERRUNINTENA to match documentation
  15. //###########################################################################
  16. #ifndef DSP281x_SPI_H
  17. #define DSP281x_SPI_H
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. //---------------------------------------------------------------------------
  22. // SPI Individual Register Bit Definitions:
  23. //
  24. // SPI FIFO Transmit register bit    definitions:
  25. struct  SPIFFTX_BITS {       // bit    description
  26.    Uint16 TXFFIL:5;          // 4:0    Interrupt level
  27.    Uint16 TXFFIENA:1;        // 5      Interrupt enable
  28.    Uint16 TXFFINTCLR:1;      // 6      Clear INT flag
  29.    Uint16 TXFFINT:1;         // 7      INT flag
  30.    Uint16 TXFFST:5;          // 12:8   FIFO status
  31.    Uint16 TXFIFO:1;          // 13     FIFO reset
  32.    Uint16 SPIFFENA:1;        // 14     Enhancement enable
  33.    Uint16 SPIRST:1;          // 15     Reset SPI
  34. }; 
  35. union SPIFFTX_REG {
  36.    Uint16               all;
  37.    struct SPIFFTX_BITS  bit;
  38. };
  39. //--------------------------------------------
  40. // SPI FIFO recieve register bit definitions:
  41. // 
  42. //
  43. struct  SPIFFRX_BITS {       // bits   description
  44.    Uint16 RXFFIL:5;          // 4:0    Interrupt level
  45.    Uint16 RXFFIENA:1;        // 5      Interrupt enable
  46.    Uint16 RXFFINTCLR:1;      // 6      Clear INT flag
  47.    Uint16 RXFFINT:1;         // 7      INT flag
  48.    Uint16 RXFFST:5;          // 12:8   FIFO status
  49.    Uint16 RXFIFORESET:1;     // 13     FIFO reset
  50.    Uint16 RXFFOVFCLR:1;      // 14     Clear overflow
  51.    Uint16 RXFFOVF:1;         // 15     FIFO overflow
  52. }; 
  53. union SPIFFRX_REG {
  54.    Uint16               all;
  55.    struct SPIFFRX_BITS  bit;
  56. };
  57. //--------------------------------------------
  58. // SPI FIFO control register bit definitions:
  59. // 
  60. //
  61. struct  SPIFFCT_BITS {       // bits   description
  62.    Uint16 TXDLY:8;           // 7:0    FIFO transmit delay
  63.    Uint16 rsvd:8;            // 15:8   reserved
  64. };
  65. union SPIFFCT_REG {
  66.    Uint16               all;
  67.    struct SPIFFCT_BITS  bit;
  68. };
  69.    
  70. //---------------------------------------------
  71. // SPI configuration register bit definitions:
  72. // 
  73. //
  74. struct  SPICCR_BITS {        // bits   description
  75.    Uint16 SPICHAR:4;         // 3:0    Character length control
  76.    Uint16 SPILBK:1;          // 4      Loop-back enable/disable
  77.    Uint16 rsvd1:1;           // 5      reserved
  78.    Uint16 CLKPOLARITY:1;     // 6      Clock polarity
  79.    Uint16 SPISWRESET:1;      // 7      SPI SW Reset
  80.    Uint16 rsvd2:8;           // 15:8   reserved   
  81. };
  82. union SPICCR_REG {
  83.    Uint16              all;
  84.    struct SPICCR_BITS  bit;
  85. };
  86. //-------------------------------------------------
  87. // SPI operation control register bit definitions:
  88. // 
  89. //
  90. struct  SPICTL_BITS {        // bits   description
  91.    Uint16 SPIINTENA:1;       // 0      Interrupt enable
  92.    Uint16 TALK:1;            // 1      Master/Slave transmit enable
  93.    Uint16 MASTER_SLAVE:1;    // 2      Network control mode
  94.    Uint16 CLK_PHASE:1;       // 3      Clock phase select
  95.    Uint16 OVERRUNINTENA:1;   // 4      Overrun interrupt enable
  96.    Uint16 rsvd:11;           // 15:5   reserved      
  97. };
  98. union SPICTL_REG {
  99.    Uint16              all;
  100.    struct SPICTL_BITS  bit;
  101. };
  102. //--------------------------------------
  103. // SPI status register bit definitions:
  104. // 
  105. //
  106. struct  SPISTS_BITS {        // bits   description
  107.    Uint16 rsvd1:5;           // 4:0    reserved
  108.    Uint16 BUFFULL_FLAG:1;    // 5      SPI transmit buffer full flag
  109.    Uint16 INT_FLAG:1;        // 6      SPI interrupt flag
  110.    Uint16 OVERRUN_FLAG:1;    // 7      SPI reciever overrun flag
  111.    Uint16 rsvd2:8;           // 15:8   reserved   
  112. };
  113. union SPISTS_REG {
  114.    Uint16              all;
  115.    struct SPISTS_BITS  bit;
  116. }; 
  117. //------------------------------------------------
  118. // SPI priority control register bit definitions:
  119. // 
  120. //
  121. struct  SPIPRI_BITS {        // bits   description
  122.    Uint16 rsvd1:4;           // 3:0    reserved
  123.    Uint16 FREE:1;            // 4      Free emulation mode control
  124.    Uint16 SOFT:1;            // 5      Soft emulation mode control
  125.    Uint16 PRIORITY:1;        // 6      Interrupt priority select
  126.    Uint16 rsvd2:9;           // 15:7   reserved
  127. };
  128. union SPIPRI_REG {
  129.    Uint16              all;
  130.    struct SPIPRI_BITS  bit;
  131. };       
  132. //---------------------------------------------------------------------------
  133. // SPI Register File:
  134. //
  135. struct  SPI_REGS { 
  136.    union SPICCR_REG     SPICCR;      // Configuration register 
  137.    union SPICTL_REG     SPICTL;      // Operation control register
  138.    union SPISTS_REG     SPISTS;      // Status register
  139.    Uint16               rsvd1;       // reserved
  140.    Uint16               SPIBRR;      // Baud Rate
  141.    Uint16               rsvd2;       // reserved
  142.    Uint16               SPIRXEMU;    // Emulation buffer
  143.    Uint16               SPIRXBUF;    // Serial input buffer
  144.    Uint16               SPITXBUF;    // Serial output buffer
  145.    Uint16               SPIDAT;      // Serial data 
  146.    union SPIFFTX_REG    SPIFFTX;     // FIFO transmit register
  147.    union SPIFFRX_REG    SPIFFRX;     // FIFO recieve register
  148.    union SPIFFCT_REG    SPIFFCT;     // FIFO control register
  149.    Uint16               rsvd3[2];    // reserved
  150.    union SPIPRI_REG     SPIPRI;      // FIFO Priority control
  151. };
  152. //---------------------------------------------------------------------------
  153. // SPI External References & Function Declarations:
  154. //
  155. extern volatile struct SPI_REGS SpiaRegs;
  156. #ifdef __cplusplus
  157. }
  158. #endif /* extern "C" */
  159. #endif  // end of DSP281x_SPI_H definition
  160. //===========================================================================
  161. // No more.
  162. //===========================================================================