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

📄 c5402cfg.h

📁 支持ti的dsp 5402的基本运行的c程序,简洁好用
💻 H
📖 第 1 页 / 共 2 页
字号:
#define XCR1_XWDLEN1   5//5~7  *本次修改*
#define XCR1_XFRLEN1   8//8~14 *本次修改*

/*---------------------------------------
        XCR2位定义(*本次修改*)
----------------------------------------*/
#define XCR2_XDATDLY   0//0~1
#define XCR2_XFIG      2//
#define XCR2_XCOMPAND  3//3~4
#define XCR2_XWDLEN2   5//5~6
#define XCR2_XFRLEN2   8//8~14
#define XCR2_XPHASE   15//发送相位

/*---------------------------------------
        SRGR1位定义
----------------------------------------*/
#define SRGR1_CLKGDV   0//0~7
#define SRGR1_FWID     8//8~15

/*---------------------------------------
        SRGR2位定义
----------------------------------------*/
#define SRGR2_FPER     0//0~11//修正处
#define SRGR2_FSGM    12//
#define SRGR2_CLKSM   13//
#define SRGR2_CLKSP   14//
#define SRGR2_GSYNC   15//

/*---------------------------------------
        MCR1位定义
----------------------------------------*/
#define MCR1_RMCM      0//0
#define MCR1_RCBLK     2//2~4
#define MCR1_RPABLK    5//5~6
#define MCR1_RPBBLK    7//7~8

/*---------------------------------------
        MCR2位定义
----------------------------------------*/
#define MCR2_XMCM      0//0~1
#define MCR2_XCBLK     2//2~4
#define MCR2_XPABLK    5//5~6
#define MCR2_XPBBLK    7//7~8

/*---------------------------------------
        RCERA位定义
----------------------------------------*/
#define RCERA_0        0
#define RCERA_1        1
#define RCERA_2        2
#define RCERA_3        3
#define RCERA_4        4
#define RCERA_5        5
#define RCERA_6        6
#define RCERA_7        7
#define RCERA_8        8
#define RCERA_9        9
#define RCERA_10      10
#define RCERA_11      11
#define RCERA_12      12
#define RCERA_13      13
#define RCERA_14      14
#define RCERA_15      15


/*---------------------------------------
        RCERB位定义
----------------------------------------*/
#define RCERB_0        0
#define RCERB_1        1
#define RCERB_2        2
#define RCERB_3        3
#define RCERB_4        4
#define RCERB_5        5
#define RCERB_6        6
#define RCERB_7        7
#define RCERB_8        8
#define RCERB_9        9
#define RCERB_10      10
#define RCERB_11      11
#define RCERB_12      12
#define RCERB_13      13
#define RCERB_14      14
#define RCERB_15      15

/*---------------------------------------
        XCERA位定义
----------------------------------------*/
#define XCERA_0        0
#define XCERA_1        1
#define XCERA_2        2
#define XCERA_3        3
#define XCERA_4        4
#define XCERA_5        5
#define XCERA_6        6
#define XCERA_7        7
#define XCERA_8        8
#define XCERA_9        9
#define XCERA_10      10
#define XCERA_11      11
#define XCERA_12      12
#define XCERA_13      13
#define XCERA_14      14
#define XCERA_15      15


/*---------------------------------------
        XCERB位定义
----------------------------------------*/
#define XCERB_0        0
#define XCERB_1        1
#define XCERB_2        2
#define XCERB_3        3
#define XCERB_4        4
#define XCERB_5        5
#define XCERB_6        6
#define XCERB_7        7
#define XCERB_8        8
#define XCERB_9        9
#define XCERB_10      10
#define XCERB_11      11
#define XCERB_12      12
#define XCERB_13      13
#define XCERB_15      15


/*---------------------------------------
        子McBSP地址定义
----------------------------------------*/
#define SPCR1           0x00;//串行接口控制寄存器1
#define SPCR2			0x01;//串行接口控制寄存器2
#define RCR1			0x02;//接收控制寄存器1
#define RCR2			0x03;//接收控制寄存器2
#define XCR1			0x04;//发送控制寄存器1
#define XCR2			0x05;//发送控制寄存器2
#define SRGR1			0x06;//采样率发生器寄存器1
#define SRGR2			0x07;//采样率发生器寄存器2
#define MCR1			0x08;//多通道寄存器1
#define MCR2			0x09;//多通道寄存器2
#define RCERA			0x0a;//接收通道使能寄存器段A
#define RCERB			0x0b;//接收通道使能寄存器段B
#define XCERA			0x0c;//发送通道使能寄存器段A
#define XCERB			0x0d;//发送通道使能寄存器段B
#define PCR				0x0e;//引脚控制寄存器

/*---------------------------------------
        子DMA地址定义
----------------------------------------*/
#define DMSRC0			0x00;//DMA通道0源地址寄存器
#define DMDST0			0x01;//DMA通道0目的地址寄存器
#define DMCTR0			0x02;//DMA通道0单元计数寄存器
#define DMSFC0			0x03;//DMA通道0同步事件和帧寄存器
#define DMMCR0			0x04;//DMA通道0传输模式控制寄存器

#define DMSRC1			0x05;//DMA通道1源地址寄存器
#define DMDST1			0x06;//DMA通道1目的地址寄存器
#define DMCTR1			0x07;//DMA通道1单元计数寄存器
#define DMSFC1			0x08;//DMA通道1同步事件和帧寄存器
#define DMMCR1			0x09;//DMA通道1传输模式控制寄存器

#define DMSRC2			0x0a;//DMA通道2源地址寄存器
#define DMDST2			0x0b;//DMA通道2目的地址寄存器
#define DMCTR2			0x0c;//DMA通道2单元计数寄存器
#define DMSFC2			0x0d;//DMA通道2同步事件和帧寄存器
#define DMMCR2			0x0e;//DMA通道2传输模式控制寄存器

#define DMSRC3			0x0f;//DMA通道3源地址寄存器
#define DMDST3			0x10;//DMA通道3目的地址寄存器
#define DMCTR3			0x11;//DMA通道3单元计数寄存器
#define DMSFC3			0x12;//DMA通道3同步事件和帧寄存器
#define DMMCR3			0x13;//DMA通道3传输模式控制寄存器

#define DMSRC4			0x14;//DMA通道4源地址寄存器
#define DMDST4			0x15;//DMA通道4目的地址寄存器
#define DMCTR4			0x16;//DMA通道4单元计数寄存器
#define DMSFC4			0x17;//DMA通道4同步事件和帧寄存器
#define DMMCR4			0x18;//DMA通道4传输模式控制寄存器

#define DMSRC5			0x19;//DMA通道5源地址寄存器
#define DMDST5			0x1a;//DMA通道5目的地址寄存器
#define DMCTR5			0x1b;//DMA通道5单元计数寄存器
#define DMSFC5			0x1c;//DMA通道5同步事件和帧寄存器
#define DMMCR5			0x1d;//DMA通道5传输模式控制寄存器

#define DMSRCP			0x1e;//DMA源程序页地址(公用的通道)
#define DMDSTP			0x1f;//DMA目的程序页地址(公用的通道)
  
#define DMIDX0			0x20;//DMA单元变址寄存器0
#define DMIDX1			0x21;//DMA单元变址寄存器1
#define DMFRI0			0x22;//DMA帧变址寄存器0
#define DMFRI1			0x23;//DMA帧变址寄存器1
#define DMGSA			0x24;//DMA全局源地址重载寄存器
#define DMGDA			0x25;//DMA全局目的地址重载寄存器
#define DMGCR			0x26;//DMA全局计数重载寄存器
#define DMGFR			0x27;//DMA全局帧计数重载寄存器

typedef volatile struct _TI_SREG {
//0x0000
  TI_REG IMR;//中断屏蔽寄存器(0x00)
  TI_REG IFR;//中断标志寄存器(0x01)
  TI_REG Reserved0[4]; //保留4个空位
  TI_REG ST0;//状态寄存器0(0x06)
  TI_REG ST1;//状态寄存器1(0x07)
  TI_REG AL;//累加器A低16位(0x08)
  TI_REG AH;//累加器A高16位(0x09)
  TI_REG AG;//累加器A保护位(0x0a)
  TI_REG BL;//累加器B低16位(0x0b)
  TI_REG BH;//累加器B高16位(0x0c)
  TI_REG BG;//累加器B保护位(0x0d)
  TI_REG TREG;//临时寄存器(0x0e)
  TI_REG TRN;//发送寄存器(0x0f)
//0x0010
  TI_REG AR0;//辅助寄存器0(0x10)
  TI_REG AR1;//辅助寄存器1(0x11)
  TI_REG AR2;//辅助寄存器2(0x12)
  TI_REG AR3;//辅助寄存器3(0x13)
  TI_REG AR4;//辅助寄存器4(0x14)
  TI_REG AR5;//辅助寄存器5(0x15)
  TI_REG AR6;//辅助寄存器6(0x16)
  TI_REG AR7;//辅助寄存器7(0x17)
  TI_REG SP;//堆栈指针(0x18)
  TI_REG BK;//缓冲大小寄存器(0x19)
  TI_REG BRC;//块重复计数器(0x1a)
  TI_REG RSA;//块重复起始地址寄存器(0x1b)
  TI_REG REA;//块重复结束地址寄存器(0x1c)
  TI_REG PMST;//处理器工作模式状态寄存器(0x1d)
  TI_REG XPC;//程序计数器扩展寄存器(0x1e)
  TI_REG Reserved1[1]; //保留1个空位(0x1f)
//0x0020
  TI_REG DRR20;//数据接收寄存器2(0x20)
  TI_REG DRR10;//数据接收寄存器1(0x21)
  TI_REG DXR20;//数据发送寄存器2(0x22)
  TI_REG DXR10;//数据发送寄存器1(0x23)
  TI_REG TIM;//定时器寄存器     (0x24)
  TI_REG PRD;//定时器周期寄存器 (0x25)
  TI_REG TCR;//定时器控制寄存器 (0x26)
  TI_REG Reserved2[1]; //保留1个空位(0x27)
  TI_REG SWWSR;//软件等待状态寄存器(0x28)
  TI_REG BSCR;//分区状态寄存器(0x29)
  TI_REG Reserved3[1]; //保留1个空位(0x2a)
  TI_REG SWCR;//软件等待状态控制寄存器(0x2b)
  TI_REG HPIC;//HPI控制寄存器(0x2c)
  TI_REG Reserved4[3]; //保留3个空位(0x2d~0x2f)
//0x0030
  TI_REG TIM1;//定时器寄存器1(0x30)
  TI_REG PRD1;//定时器周期寄存器1(0x31)
  TI_REG TCR1;//定时器控制寄存器1(0x32)
  TI_REG Reserved5[5]; //保留5个空位(0x33~37)
  TI_REG SPSA0;//子区寻址寄存器0(0x38)
  TI_REG SPSD0;//子区数据寄存器0(0x39)
  TI_REG Reserved6[2]; //保留2个空位(0x3a~0x3b)
  TI_REG GPIOCR;//GPIO控制寄存器(0x3c)
  TI_REG GPIOSR;//GPIO状态寄存器(0x3d)
  TI_REG Reserved7[2]; //保留2个空位(0x3e,0x3f)
//0x0040
  TI_REG DRR21;//数据接收寄存器2(0x40)
  TI_REG DRR11;//数据接收寄存器1(0x41)
  TI_REG DXR21;//数据发送寄存器2(0x42)
  TI_REG DXR11;//数据发送寄存器1(0x43)
  TI_REG Reserved8[4]; //保留4个空位(0x44~0x47)
  TI_REG SPSA1;//子区寻址寄存器1(0x48)
  TI_REG SPSD1;//子区数据寄存器1(0x49)
  TI_REG Reserved9[10]; //保留10个空位(0x4a)
  TI_REG DMPREC;
  //DMA通道优先级和使能控制寄存器(0x54)
  TI_REG DMSA;//DMA子区寻址寄存器(0x55)
  TI_REG DMSDI;//带子区寻址自动增加的DMA子区数据寄存器(0x56)
  TI_REG DMSDN;//子区数据寄存器(0x57)
  TI_REG CLKMD;//时钟模式寄存器(0x58)
  TI_REG Reserved10[7]; //保留7个空位(0x59~0x5f)
}TI_SREG, *TI_PSREG;

#define TI_BASE_SREG  ((TI_SREG *)  0x0000)//定义硬件结构指针(硬件地址)

/*--------------------------------------------------------------------------
应用举例:
  SREG->IMR = 0x0000;
  SREG->IFR = 0xffff;
  SREG->PMST = (0x1ff << PMST_IPTR) |  \
               (1 << PMST_MP_MC) | (1 << PMST_OVLY) | (1 << PMST_CLKOFF);
  SREG->IMR = (1 << IMR_TINT0);//允许TINT0中断
  Enable();//开中断
  for(;;) {
    SREG->ST1 ^= (1 << ST1_XF);
  }
---------------------------------------------------------------------------*/

typedef volatile struct _TI_McBSP0 {
  TI_REG DRR2;//数据接收寄存器2(0x20)
  TI_REG DRR1;//数据接收寄存器1(0x21)
  TI_REG DXR2;//数据发送寄存器2(0x22)
  TI_REG DXR1;//数据发送寄存器1(0x23)
  TI_REG Reserved[20]; //保留20个空位
  TI_REG SPSA;//子区寻址寄存器(0x38)
  TI_REG SPSD;//子区数据寄存器(0x39)
}TI_McBSP0, *TI_PMcBSP0;

#define TI_BASE_McBSP0  ((TI_McBSP0 *)  0x0020)//定义硬件结构指针(硬件地址)


typedef volatile struct _TI_McBSP1 {
  TI_REG DRR2;//数据接收寄存器2(0x40)
  TI_REG DRR1;//数据接收寄存器1(0x41)
  TI_REG DXR2;//数据发送寄存器2(0x42)
  TI_REG DXR1;//数据发送寄存器1(0x43)
  TI_REG Reserved[4]; //保留20个空位
  TI_REG SPSA;//子区寻址寄存器(0x48)
  TI_REG SPSD;//子区数据寄存器(0x49)
}TI_McBSP1, *TI_PMcBSP1;

#define TI_BASE_McBSP1  ((TI_McBSP1 *)  0x0040)//定义硬件结构指针(硬件地址)


/*--------------------------------------------------------------------------
应用举例:
  McBSP0->DXR10 = 0xaa;//向串口0数据发送寄存器1发送数据0xaa
  McBSP0->SPSA0 = SPCR1;//设置子地址(串行接口控制寄存器1)
  McBSP0->SPSD0 = 0x00;//SPCR1 = 0x00//向串口1串行接口控制寄存器1发送命令0x00
---------------------------------------------------------------------------*/


typedef volatile struct _TI_DMA {
  TI_REG DMPREC;//DMA通道优先级和使能控制寄存器(0x54)
  TI_REG DMSA;//DMA子区寻址寄存器(0x55)
  TI_REG DMSDI;//带子区寻址自动增加的DMA子区数据寄存器(0x56)
  TI_REG DMSDN;//子区数据寄存器(0x57)
}TI_DMA, *TI_PDMA;

#define TI_BASE_DMA  ((TI_DMA *)  0x0054)//定义硬件结构指针(硬件地址)


typedef volatile struct _TI_TIMER {
  TI_REG TIM;//定时器寄存器
  TI_REG PRD;//定时器周期寄存器
  TI_REG TCR;//定时器控制寄存器
}TI_TIMER, *TI_PTIMER;

#define TI_BASE_TIMER0  ((TI_TIMER *)  0x0024)//定义硬件结构指针(硬件地址)
#define TI_BASE_TIMER1  ((TI_TIMER *)  0x0030)//定义硬件结构指针(硬件地址)

extern void _delay_loop_(unsigned int);
extern const TI_PSREG SREG;//定义全局结构指针变量REGS
extern const TI_PMcBSP0 McBSP0;//定义全局结构指针变量McBSP0
extern const TI_PMcBSP1 McBSP1;//定义全局结构指针变量McBSP1
extern const TI_PDMA DMA;//定义全局结构指针变量DMA
extern const TI_PTIMER TIMER0;//定义全局结构指针变量TIMER0
extern const TI_PTIMER TIMER1;//定义全局结构指针变量TIMER1


/*--------------------------------------------------------------------------
应用举例:
  SREG->IMR = 0x0000;
  SREG->IFR = 0xffff;
  TIMER0->PRD = 250;//设置定时周期
  TIMER0->TCR &= ~(1 << TCR_TSS);//启动定时器0
  SREG->IMR = (1 << IMR_TINT0);//允许TINT0中断
  Enable();//开中断
---------------------------------------------------------------------------*/

#ifdef __cplusplus
}
#endif

#endif  // __C5402CFG_H

⌨️ 快捷键说明

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