[资料分享] DSP 5502 MCBSP主模式问题

Jacktang   2018-3-19 20:16 楼主
5502 MCBSP如何配置为主模式???
如下代码配置后没有时钟输出!!!
//串行口0控制寄存器
MCBSP_Config Mcbsp0Config = {
  MCBSP_SPCR1_RMK(   
    MCBSP_SPCR1_DLB_OFF,                          // DLB    = 0    数码环回模式关闭  Digital loopback mode is disabled
    MCBSP_SPCR1_RJUST_LZF,          // RJUST  = 0,right justify the data and zero fill the MSBs 左对齐数据
    MCBSP_SPCR1_CLKSTP_DISABLE,     // CLKSTP = 0   时钟停止模式禁止
    MCBSP_SPCR1_DXENA_ON,           // DXENA  = 1,DX delay enabler on  延迟的Enabler的DX模式打开
    0,                                                        // Reserved   = 0
    MCBSP_SPCR1_RINTM_RRDY,         // RINTM  = 0  接收中断模式位,使能接收中断(RINT)
    MCBSP_SPCR1_RSYNCERR_NO,        // RSYNCER = 0 接收帧同步错误标志位
    MCBSP_SPCR1_RFULL_NO,           // RFULL = 0   接收满标志位
    MCBSP_SPCR1_RRDY_NO,            // RRDY = 0    接收数据准备好标志位
    MCBSP_SPCR1_RRST_DISABLE                 // RRST   = 0; 复位接收器 Disable receiver
   ),
  MCBSP_SPCR2_RMK(  
    MCBSP_SPCR2_FREE_NO,            // FREE   = 0  运行标志位
    MCBSP_SPCR2_SOFT_NO,            // SOFT   = 0  停止标志位,硬停止
    MCBSP_SPCR2_FRST_FSG,                 // FRST   = 1 ; Enable the frame-sync logic  使能帧同步逻辑复位标志位
    MCBSP_SPCR2_GRST_CLKG,                 // GRST   = 1 ; The sample rate generator is take out of its reset state  使能采样率发生器复位采样率发生器复位
    MCBSP_SPCR2_XINTM_XRDY,         // XINTM  = 0   发送中断模式位
    MCBSP_SPCR2_XSYNCERR_NO,        // XSYNCER =0   发送帧同步错误标志位
    MCBSP_SPCR2_XEMPTY_NO,          // XEMPTY = 0   发送空标志位
    MCBSP_SPCR2_XRDY_NO,            // XRDY   = 0   发送数据准备好标志位         
    MCBSP_SPCR2_XRST_DISABLE             // XRST   = 0   复位发送器 Disable transimitter
   ),
      
   // 接收控制寄存器   单数据相,接受数据长度为16位,每相2个数据
  MCBSP_RCR1_RMK(
          MCBSP_RCR1_RFRLEN1_OF(1),       // RFRLEN1 = 1   接收帧长度(1-128字长度)
          MCBSP_RCR1_RWDLEN1_32BIT        // RWDLEN1 = 2   接收数据位长度 32位
  ),
  MCBSP_RCR2_RMK(   
    MCBSP_RCR2_RPHASE_SINGLE,       // RPHASE  = 0   接收相数位 单相
    MCBSP_RCR2_RFRLEN2_OF(1),       // RFRLEN2 = 0   接收帧长度(1-128字长度)
    MCBSP_RCR1_RWDLEN1_32BIT,               // RWDLEN2 = 0   接收数据位长度 8位
    MCBSP_RCR2_RCOMPAND_MSB,        // RCOMPAND = 0  接收压缩扩展模式位  无压缩扩展,MSB先接收。 No companding,any size data, MSB received first
    MCBSP_RCR2_RFIG_YES,                      // RFIG    = 1   接收帧同步忽视位  帧同步忽视  Frame-sync ignore
    MCBSP_RCR2_RDATDLY_0BIT                  // RDATDLY = 1   接收数据延迟位 1位数据延迟 1-bit data delay
    ), //发送控制寄存器
  MCBSP_XCR1_RMK(   
    MCBSP_XCR1_XFRLEN1_OF(1),       // XFRLEN1 = 1   发送帧长度(1-128字长度)
    MCBSP_RCR1_RWDLEN1_32BIT        // XWDLEN1 = 2   发送数据位长度 32位
),   
MCBSP_XCR2_RMK(   
    MCBSP_RCR2_RPHASE_SINGLE,       // XPHASE  = 0   发送相数位 单相
    MCBSP_XCR2_XFRLEN2_OF(1),       // XFRLEN2 = 0   发送帧长度(1-128字长度)
    MCBSP_RCR1_RWDLEN1_32BIT,               // XWDLEN2 = 0   发送数据位长度 8位
    MCBSP_XCR2_XCOMPAND_MSB,        // XCOMPAND = 0  发送压缩扩展模式位  无压缩扩展,MSB先接收
    MCBSP_XCR2_XFIG_YES,            // XFIG    = 1   发送帧同步忽视位  帧同步忽视  Unexpected Frame-sync ignore
    MCBSP_XCR2_XDATDLY_0BIT         // XDATDLY = 1   发送数据延迟位 1位数据延迟1-bit data delay
  ), //采样速率发生器寄存器
   
   
   
  MCBSP_SRGR1_RMK(


  MCBSP_SRGR1_FWID_OF(1), // FWID = 2


  MCBSP_SRGR1_CLKGDV_OF(23) // CLKGDV = 199+1
  ),


  MCBSP_SRGR2_RMK(


  MCBSP_SRGR2_GSYNC_FREE, // FREE = 0


  MCBSP_SRGR2_CLKSP_RISING, // CLKSP = 0


  MCBSP_SRGR2_CLKSM_INTERNAL, // CLKSM = 1


  MCBSP_SRGR2_FSGM_FSG, // FSGM = 1


  MCBSP_SRGR2_FPER_OF(64) // FPER = 0
  ),
                                             
                                                                                                     
//MCBSP_SRGR1_DEFAULT,
//MCBSP_SRGR2_DEFAULT,


//多通道控制寄存器                                 
MCBSP_MCR1_DEFAULT,   
MCBSP_MCR2_DEFAULT,
//引脚控制寄存器
MCBSP_PCR_RMK(
   MCBSP_PCR_IDLEEN_RESET,          // IDLEEN   = 0  空闲使能位。  该型号芯片未用,必须写0
   MCBSP_PCR_XIOEN_SP,              // XIOEN    = 0  传输的I / O使能位。  使用为串行端口引脚功能
   MCBSP_PCR_RIOEN_SP,              // RIOEN    = 0  接收的I / O使能位。  使用为串行端口引脚功能  
   MCBSP_PCR_FSXM_INTERNAL,                  // FSXM     = 0  发送帧同步模式位。外部提供(从模式)   Tranmit frame-syn is provided by AIC23B
   MCBSP_PCR_FSRM_INTERNAL,         // FSRM     = 0  接收帧同步模式位。外部提供(从模式)   Receive frame-syn is provided by AIC23B
   MCBSP_PCR_CLKXM_OUTPUT,                   // CLKR is input 发送时钟模式位。外部提供(从模式)
   MCBSP_PCR_CLKRM_OUTPUT,           // CLKX is input 接收时钟模式位。外部提供(从模式)
   MCBSP_PCR_SCLKME_BCLK,             // SCLKME=0 CLKG is taken from the McBSP internal input clock  采样率发生器的输入时钟模式位
   MCBSP_PCR_CLKSSTAT_0,            // The signal on the CLKS pin is low  CLKS引脚状态位
   MCBSP_PCR_DXSTAT_0,              // Drive the signal on the DX pin low DX引脚状态位  
   MCBSP_PCR_DRSTAT_0,              // The signal on the DR pin is low    DR引脚状态位
   MCBSP_PCR_FSXP_ACTIVEHIGH,                  // FSXP     = 1 Because a falling edge on LRCIN or LRCOUT starts data transfer  发送帧同步极性位
   MCBSP_PCR_FSRP_ACTIVELOW,        // FSRP     = 1   接收帧同步极性位
   MCBSP_PCR_CLKXP_FALLING,         // CLKXP    = 1   The falling edge of BCLK starts data transfer  发送时钟极性位
   MCBSP_PCR_CLKRP_RISING           // CLKRP    = 1   接收时钟极性位
), //接收通道使能寄存器
MCBSP_RCERA_DEFAULT,
MCBSP_RCERB_DEFAULT,
MCBSP_RCERC_DEFAULT,
MCBSP_RCERD_DEFAULT,
MCBSP_RCERE_DEFAULT,
MCBSP_RCERF_DEFAULT,
MCBSP_RCERG_DEFAULT,
MCBSP_RCERH_DEFAULT,  
////发送通道使能寄存器
MCBSP_XCERA_DEFAULT,
MCBSP_XCERB_DEFAULT,
MCBSP_XCERC_DEFAULT,
MCBSP_XCERD_DEFAULT,  
MCBSP_XCERE_DEFAULT,
MCBSP_XCERF_DEFAULT,  
MCBSP_XCERG_DEFAULT,
MCBSP_XCERH_DEFAULT
};


// 定义McBSP的句柄
MCBSP_Handle hMcbsp0;


回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复