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

📄 csl_i2chal.h

📁 SEED的VPM642测试程序-板级支持库
💻 H
📖 第 1 页 / 共 3 页
字号:
  #define _I2C_I2CSAR0_FSETS(FIELD,SYM) _I2C_I2CSAR_FSETS(0,##FIELD,##SYM)
  #define _I2C_I2CSAR1_FSETS(FIELD,SYM) _I2C_I2CSAR_FSETS(1,##FIELD,##SYM)


/******************************************************************************\
*  ___________________
* |                   |
* |  I 2 C D X R      |
* |___________________|
*
* I2CDXR0    - I2C0 Data Transmit register
* I2CDXR1    - I2C1 Data Transmit register
*
* FIELDS (msb -> lsb)
* (rw) D
\******************************************************************************/
  #define _I2C_I2CDXR_OFFSET           8

  #define _I2C_I2CDXR0_ADDR            0x01B40020
  #define _I2C_I2CDXR1_ADDR            0x01B44020

  #define _I2C_I2CDXR_D_MASK           0x000000FFu
  #define _I2C_I2CDXR_D_SHIFT          0x00000000u
  #define  I2C_I2CDXR_D_DEFAULT        0x00000000u
  #define  I2C_I2CDXR_D_OF(x)          _VALUEOF(x)

  #define  I2C_I2CDXR_OF(x)             _VALUEOF(x)

  #define I2C_I2CDXR_DEFAULT (Uint32)(\
     _PER_FDEFAULT(I2C,I2CDXR,D)\
  )

  #define I2C_I2CDXR_RMK(d) (Uint32)(\
     _PER_FMK(I2C,I2CDXR,D,d)\
  )
   
  #define _I2C_I2CDXR_FGET(N,FIELD)\
    _PER_FGET(_I2C_I2CDXR##N##_ADDR,I2C,I2CDXR,##FIELD)

  #define _I2C_I2CDXR_FSET(N,FIELD,field)\
    _PER_FSET(_I2C_I2CDXR##N##_ADDR,I2C,I2CDXR,##FIELD,field)

  #define _I2C_I2CDXR_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_I2C_I2CDXR##N##_ADDR,I2C,I2CDXR,##FIELD,##SYM)

  #define _I2C_I2CDXR0_FGET(FIELD) _I2C_I2CDXR_FGET(0,##FIELD)
  #define _I2C_I2CDXR1_FGET(FIELD) _I2C_I2CDXR_FGET(1,##FIELD)

  #define _I2C_I2CDXR0_FSET(FIELD,f) _I2C_I2CDXR_FSET(0,##FIELD,f)
  #define _I2C_I2CDXR1_FSET(FIELD,f) _I2C_I2CDXR_FSET(1,##FIELD,f)

  #define _I2C_I2CDXR0_FSETS(FIELD,SYM) _I2C_I2CDXR_FSETS(0,##FIELD,##SYM)
  #define _I2C_I2CDXR1_FSETS(FIELD,SYM) _I2C_I2CDXR_FSETS(1,##FIELD,##SYM)

/******************************************************************************\
*  ___________________
* |                   |
* |  I 2 C M D R      |
* |___________________|
*
* I2CMDR0    - I2C0 Mode register
* I2CMDR1    - I2C1 Mode register
*
* FIELDS (msb -> lsb)
* (rw) NACKMOD
* (rw) FREE
* (rw) STT
* (rw) STP
* (rw) MST
* (rw) TRX
* (rw) XA
* (rw) RM
* (rw) DLB
* (rw) IRS
* (rw) STB
* (rw) FDF
* (rw) BC
\******************************************************************************/
  #define _I2C_I2CMDR_OFFSET           9

  #define _I2C_I2CMDR0_ADDR            0x01B40024
  #define _I2C_I2CMDR1_ADDR            0x01B44024

  #define _I2C_I2CMDR_NACKMOD_MASK     0x00008000u
  #define _I2C_I2CMDR_NACKMOD_SHIFT    0x0000000Fu
  #define  I2C_I2CMDR_NACKMOD_DEFAULT  0x00000000u
  #define  I2C_I2CMDR_NACKMOD_OF(x)    _VALUEOF(x)
  #define  I2C_I2CMDR_NACKMOD_ACK      0x00000000u
  #define  I2C_I2CMDR_NACKMOD_NACK     0x00000001u

  #define _I2C_I2CMDR_FREE_MASK        0x00004000u
  #define _I2C_I2CMDR_FREE_SHIFT       0x0000000Eu
  #define  I2C_I2CMDR_FREE_DEFAULT     0x00000000u
  #define  I2C_I2CMDR_FREE_OF(x)       _VALUEOF(x)
  #define  I2C_I2CMDR_FREE_BSTOP       0x00000000u
  #define  I2C_I2CMDR_FREE_RFREE       0x00000001u

  #define _I2C_I2CMDR_STT_MASK         0x00002000u
  #define _I2C_I2CMDR_STT_SHIFT        0x0000000Du
  #define  I2C_I2CMDR_STT_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_STT_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_STT_NONE         0x00000000u
  #define  I2C_I2CMDR_STT_START        0x00000001u

  #define _I2C_I2CMDR_STP_MASK         0x00000800u
  #define _I2C_I2CMDR_STP_SHIFT        0x0000000Bu
  #define  I2C_I2CMDR_STP_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_STP_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_STP_NONE         0x00000000u
  #define  I2C_I2CMDR_STP_STOP         0x00000001u

  #define _I2C_I2CMDR_MST_MASK         0x00000400u
  #define _I2C_I2CMDR_MST_SHIFT        0x0000000Au
  #define  I2C_I2CMDR_MST_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_MST_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_MST_SLAVE        0x00000000u
  #define  I2C_I2CMDR_MST_MASTER       0x00000001u

  #define _I2C_I2CMDR_TRX_MASK         0x00000200u
  #define _I2C_I2CMDR_TRX_SHIFT        0x00000009u
  #define  I2C_I2CMDR_TRX_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_TRX_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_TRX_RCV          0x00000000u
  #define  I2C_I2CMDR_TRX_XMT          0x00000001u

  #define _I2C_I2CMDR_XA_MASK          0x00000100u
  #define _I2C_I2CMDR_XA_SHIFT         0x00000008u
  #define  I2C_I2CMDR_XA_DEFAULT       0x00000000u
  #define  I2C_I2CMDR_XA_OF(x)         _VALUEOF(x)
  #define  I2C_I2CMDR_XA_7BIT          0x00000000u
  #define  I2C_I2CMDR_XA_10BIT         0x00000001u

  #define _I2C_I2CMDR_RM_MASK          0x00000080u
  #define _I2C_I2CMDR_RM_SHIFT         0x00000007u
  #define  I2C_I2CMDR_RM_DEFAULT       0x00000000u
  #define  I2C_I2CMDR_RM_OF(x)         _VALUEOF(x)
  #define  I2C_I2CMDR_RM_NONE          0x00000000u
  #define  I2C_I2CMDR_RM_REPEAD        0x00000001u

  #define _I2C_I2CMDR_DLB_MASK         0x00000040u
  #define _I2C_I2CMDR_DLB_SHIFT        0x00000006u
  #define  I2C_I2CMDR_DLB_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_DLB_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_DLB_NONE         0x00000000u
  #define  I2C_I2CMDR_DLB_LOOPBACK     0x00000001u

  #define _I2C_I2CMDR_IRS_MASK         0x00000020u
  #define _I2C_I2CMDR_IRS_SHIFT        0x00000005u
  #define  I2C_I2CMDR_IRS_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_IRS_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_IRS_RST          0x00000000u
  #define  I2C_I2CMDR_IRS_NRST         0x00000001u

  #define _I2C_I2CMDR_STB_MASK         0x00000010u
  #define _I2C_I2CMDR_STB_SHIFT        0x00000004u
  #define  I2C_I2CMDR_STB_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_STB_OF(x)        _VALUEOF(x)
  #define  I2C_I2CMDR_STB_NONE         0x00000000u
  #define  I2C_I2CMDR_STB_SET          0x00000001u

  #define _I2C_I2CMDR_FDF_MASK         0x00000008u
  #define _I2C_I2CMDR_FDF_SHIFT        0x00000003u
  #define  I2C_I2CMDR_FDF_DEFAULT      0x00000000u
  #define  I2C_I2CMDR_FDF_OF(x)        _VFDFUEOF(x)
  #define  I2C_I2CMDR_FDF_NONE         0x00000000u
  #define  I2C_I2CMDR_FDF_SET          0x00000001u

  #define _I2C_I2CMDR_BC_MASK          0x00000007u
  #define _I2C_I2CMDR_BC_SHIFT         0x00000000u
  #define  I2C_I2CMDR_BC_DEFAULT       0x00000000u
  #define  I2C_I2CMDR_BC_OF(x)         _VALUEOF(x)
  #define  I2C_I2CMDR_BC_BIT8FDF       0x00000000u
  #define  I2C_I2CMDR_BC_BIT7FDF       0x00000007u
  #define  I2C_I2CMDR_BC_BIT6FDF       0x00000006u
  #define  I2C_I2CMDR_BC_BIT5FDF       0x00000005u
  #define  I2C_I2CMDR_BC_BIT4FDF       0x00000004u
  #define  I2C_I2CMDR_BC_BIT3FDF       0x00000003u
  #define  I2C_I2CMDR_BC_BIT2FDF       0x00000002u
  #define  I2C_I2CMDR_BC_BIT1FDF       0x00000001u

  #define  I2C_I2CMDR_OF(x)                _VALUEOF(x)

  #define I2C_I2CMDR_DEFAULT (Uint32)(\
      _PER_FDEFAULT(I2C,I2CMDR,NACKMOD)\
     |_PER_FDEFAULT(I2C,I2CMDR,FREE)\
     |_PER_FDEFAULT(I2C,I2CMDR,STT)\
     |_PER_FDEFAULT(I2C,I2CMDR,STP)\
     |_PER_FDEFAULT(I2C,I2CMDR,MST)\
     |_PER_FDEFAULT(I2C,I2CMDR,TRX)\
     |_PER_FDEFAULT(I2C,I2CMDR,XA)\
     |_PER_FDEFAULT(I2C,I2CMDR,RM)\
     |_PER_FDEFAULT(I2C,I2CMDR,DLB)\
     |_PER_FDEFAULT(I2C,I2CMDR,IRS)\
     |_PER_FDEFAULT(I2C,I2CMDR,STB)\
     |_PER_FDEFAULT(I2C,I2CMDR,FDF)\
     |_PER_FDEFAULT(I2C,I2CMDR,BC)\
  )

  #define I2C_I2CMDR_RMK(nackmod,free,stt,stp,mst,trx,xa,rm,dlb,irs,stb,fdf,bc) (Uint32)(\
      _PER_FMK(I2C,I2CMDR,NACKMOD,nackmod)\
     |_PER_FMK(I2C,I2CMDR,FREE,free)\
     |_PER_FMK(I2C,I2CMDR,STT,stt)\
     |_PER_FMK(I2C,I2CMDR,STP,stp)\
     |_PER_FMK(I2C,I2CMDR,MST,mst)\
     |_PER_FMK(I2C,I2CMDR,TRX,trx)\
     |_PER_FMK(I2C,I2CMDR,XA,xa)\
     |_PER_FMK(I2C,I2CMDR,RM,rm)\
     |_PER_FMK(I2C,I2CMDR,DLB,dlb)\
     |_PER_FMK(I2C,I2CMDR,IRS,irs)\
     |_PER_FMK(I2C,I2CMDR,STB,stb)\
     |_PER_FMK(I2C,I2CMDR,FDF,fdf)\
     |_PER_FMK(I2C,I2CMDR,BC,bc)\
  )
   
  #define _I2C_I2CMDR_FGET(N,FIELD)\
    _PER_FGET(_I2C_I2CMDR##N##_ADDR,I2C,I2CMDR,##FIELD)

  #define _I2C_I2CMDR_FSET(N,FIELD,field)\
    _PER_FSET(_I2C_I2CMDR##N##_ADDR,I2C,I2CMDR,##FIELD,field)

  #define _I2C_I2CMDR_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_I2C_I2CMDR##N##_ADDR,I2C,I2CMDR,##FIELD,##SYM)

  #define _I2C_I2CMDR0_FGET(FIELD) _I2C_I2CMDR_FGET(0,##FIELD)
  #define _I2C_I2CMDR1_FGET(FIELD) _I2C_I2CMDR_FGET(1,##FIELD)

  #define _I2C_I2CMDR0_FSET(FIELD,f) _I2C_I2CMDR_FSET(0,##FIELD,f)
  #define _I2C_I2CMDR1_FSET(FIELD,f) _I2C_I2CMDR_FSET(1,##FIELD,f)

  #define _I2C_I2CMDR0_FSETS(FIELD,SYM) _I2C_I2CMDR_FSETS(0,##FIELD,##SYM)
  #define _I2C_I2CMDR1_FSETS(FIELD,SYM) _I2C_I2CMDR_FSETS(1,##FIELD,##SYM)


/******************************************************************************\
*  ___________________
* |                   |
* |  I 2 C I V R      |
* |___________________|
*
* I2CIVR0    - I2C0 Interrupt Vector register
* I2CIVR1    - I2C1 Interrupt Vector register
*
* FIELDS (msb -> lsb)
* (r) INTCODE
\******************************************************************************/

  #define _I2C_I2CIVR_OFFSET           10

  #define _I2C_I2CIVR0_ADDR            0x01B40028
  #define _I2C_I2CIVR1_ADDR            0x01B44028

  /*** old names ***/
  #define _I2C_I2CISR0_ADDR        _I2C_I2CIVR0_ADDR            
  #define _I2C_I2CISR1_ADDR        _I2C_I2CIVR1_ADDR            

  #define _I2C_I2CIVR_INTCODE_MASK     0x00000007u
  #define _I2C_I2CIVR_INTCODE_SHIFT    0x00000000u
  #define  I2C_I2CIVR_INTCODE_DEFAULT  0x00000000u
  #define  I2C_I2CIVR_INTCODE_OF(x)    _VALUEOF(x)
  #define  I2C_I2CIVR_INTCODE_NONE     0x00000000u
  #define  I2C_I2CIVR_INTCODE_AL       0x00000001u
  #define  I2C_I2CIVR_INTCODE_NACK     0x00000002u
  #define  I2C_I2CIVR_INTCODE_RAR      0x00000003u
  #define  I2C_I2CIVR_INTCODE_RDR      0x00000004u
  #define  I2C_I2CIVR_INTCODE_XDR      0x00000005u

  #define  I2C_I2CIVR_OF(x)             _VALUEOF(x)

  #define I2C_I2CIVR_DEFAULT (Uint32)(\
     _PER_FDEFAULT(I2C,I2CIVR,INTCODE)\
  )

  #define I2C_I2CIVR_RMK(intcode) (Uint32)(\
     _PER_FMK(I2C,I2CIVR,INTCODE,intcode)\
  )
   
  #define _I2C_I2CIVR_FGET(N,FIELD)\
    _PER_FGET(_I2C_I2CIVR##N##_ADDR,I2C,I2CIVR,##FIELD)

  #define _I2C_I2CIVR_FSET(N,FIELD,field)\
    _PER_FSET(_I2C_I2CIVR##N##_ADDR,I2C,I2CIVR,##FIELD,field)

  #define _I2C_I2CIVR_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_I2C_I2CIVR##N##_ADDR,I2C,I2CIVR,##FIELD,##SYM)

  #define _I2C_I2CIVR0_FGET(FIELD) _I2C_I2CIVR_FGET(0,##FIELD)
  #define _I2C_I2CIVR1_FGET(FIELD) _I2C_I2CIVR_FGET(1,##FIELD)

  #define _I2C_I2CIVR0_FSET(FIELD,f) _I2C_I2CIVR_FSET(0,##FIELD,f)
  #define _I2C_I2CIVR1_FSET(FIELD,f) _I2C_I2CIVR_FSET(1,##FIELD,f)

  #define _I2C_I2CIVR0_FSETS(FIELD,SYM) _I2C_I2CIVR_FSETS(0,##FIELD,##SYM)
  #define _I2C_I2CIVR1_FSETS(FIELD,SYM) _I2C_I2CIVR_FSETS(1,##FIELD,##SYM)


/******************************************************************************\
*  ___________________
* |                   |
* |  I 2 C P S C      |
* |___________________|
*
* I2CPSC0    - I2C0 Prescaler register
* I2CPSC1    - I2C1 Prescaler register
*
* FIELDS (msb -> lsb)
* (rw) IPSC
\******************************************************************************/
  #define _I2C_I2CPSC_OFFSET           12

  #define _I2C_I2CPSC0_ADDR            0x01B40030
  #define _I2C_I2CPSC1_ADDR            0x01B44030

  #define _I2C_I2CPSC_IPSC_MASK     0x000000FFu
  #define _I2C_I2CPSC_IPSC_SHIFT    0x00000000u
  #define  I2C_I2CPSC_IPSC_DEFAULT  0x00000000u
  #define  I2C_I2CPSC_IPSC_OF(x)    _VALUEOF(x)

  #define  I2C_I2CPSC_OF(x)             _VALUEOF(x)

  #define I2C_I2CPSC_DEFAULT (Uint32)(\
     _PER_FDEFAULT(I2C,I2CPSC,IPSC)\
  )

  #define I2C_I2CPSC_RMK(ipsc) (Uint32)(\
     _PER_FMK(I2C,I2CPSC,IPSC,ipsc)\
  )
   
  #define _I2C_I2CPSC_FGET(N,FIELD)\
    _PER_FGET(_I2C_I2CPSC##N##_ADDR,I2C,I2CPSC,##FIELD)

  #define _I2C_I2CPSC_FSET(N,FIELD,field)\
    _PER_FSET(_I2C_I2CPSC##N##_ADDR,I2C,I2CPSC,##FIELD,field)

  #define _I2C_I2CPSC_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_I2C_I2CPSC##N##_ADDR,I2C,I2CPSC,##FIELD,##SYM)

  #define _I2C_I2CPSC0_FGET(FIELD) _I2C_I2CPSC_FGET(0,##FIELD)
  #define _I2C_I2CPSC1_FGET(FIELD) _I2C_I2CPSC_FGET(1,##FIELD)

  #define _I2C_I2CPSC0_FSET(FIELD,f) _I2C_I2CPSC_FSET(0,##FIELD,f)
  #define _I2C_I2CPSC1_FSET(FIELD,f) _I2C_I2CPSC_FSET(1,##FIELD,f)

  #define _I2C_I2CPSC0_FSETS(FIELD,SYM) _I2C_I2CPSC_FSETS(0,##FIELD,##SYM)
  #define _I2C_I2CPSC1_FSETS(FIELD,SYM) _I2C_I2CPSC_FSETS(1,##FIELD,##SYM)

#endif /* I2C_SUPPORT */
#endif /* _CSL_I2CHAL_H_ */
/******************************************************************************\
* End of csl_i2chal.h
\******************************************************************************/

⌨️ 快捷键说明

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