OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » nbsp,nbsp,5000,McBSP 初学  求5000

共2条 1/1 1 跳转至

nbsp,nbsp,5000,McBSP 初学  求5000系列McBSP寄存器初始化代码

院士
2006-12-22 22:43:00    评分
nbsp,nbsp,5000,McBSP 初学  求5000系列McBSP寄存器初始化代码



关键词: McBSP     初学     系列     寄存器     初始化     代码    

院士
2006-12-22 22:43:00    评分
2楼
问 求5000系列McBSP驱动串行AD或DA的寄存器初始化代码,主要是时钟和帧同步那部分,我看了几本书也没搞清楚。
那位高手帮帮忙,把你们手上用过的发一段过来就可以,最好是c,汇编也行。
多谢啦 1: 回复主题:初学  求5000系列McBSP寄存器初始化代码void InitMcBSP0(void)
{
    SetMcBSPReg(0,SPCR1,0x00);
    SetMcBSPReg(0,SPCR2,0x00);
    /*SET McBSP0*/  
      SetMcBSPReg(0,SPCR1,0x00);
    SetMcBSPReg(0,SPCR2,0x0200);    
    SetMcBSPReg(0,PCR,0x0A00);
    SetMcBSPReg(0,RCR1,0x40);
    SetMcBSPReg(0,RCR2,0x41);   
    SetMcBSPReg(0,XCR1,0x40);
    SetMcBSPReg(0,XCR2,0x41);   
      SetMcBSPReg(0,SRGR1,0x1027);  ////FWID=1+1;CLKDGV=39+1,SCLK = CPU CLK /(CLKDGV+1) =1MhZ
    SetMcBSPReg(0,SRGR2,0x02027);  

}
void StartMcBSP0(void)
{
    /* 开始McBSP0发送和采集数据   */
      SetMcBSPReg(0,SPCR2,0xC0);   
    SetMcBSPReg(0,SPCR1,0x01);
    SetMcBSPReg(0,SPCR2,0xc1);    
/*    ***************************/  
}
void StopMcBSP0()
{

    SetMcBSPReg(0,SPCR1,0x00);
    SetMcBSPReg(0,SPCR2,0x00);    
}

void StartDataCollect(void)
{
    SetMcBSPReg(1,SPCR2,0xC0);  
     SetMcBSPReg(1,SPCR1,0x01);
      SetMcBSPReg(1,SPCR2,0xc1);
}         
void StopDataCollect()
{
     SetMcBSPReg(1,SPCR1,0x0);
      SetMcBSPReg(1,SPCR2,0x0);
}
void SetMcBSPReg(unsigned int McBSPNo,unsigned int McBSPReg,unsigned int Value)

{  
   switch(McBSPNo)
   {
       case 0:        {        
                               SPSA0 = McBSPReg;
                               C_NOP;C_NOP;C_NOP; C_NOP;C_NOP;C_NOP;
                               SPSD0 = Value;
                            C_NOP;C_NOP;C_NOP; C_NOP;C_NOP;C_NOP;
                    }
                               break;
           case 1:        {
                               SPSA1 = McBSPReg;
                               C_NOP;C_NOP;C_NOP; C_NOP;C_NOP;C_NOP;
                               SPSD1 = Value;
                               C_NOP;C_NOP;C_NOP; C_NOP;C_NOP;C_NOP;
                       }
                               break;
           default:
                               break;                                         
                             
    }
}     2: 非常感谢!!附加2个问题1:“SPSA1 = McBSPReg;
C_NOP;C_NOP;C_NOP; C_NOP;C_NOP;C_NOP;
SPSD1 = Value;
C_NOP;C_NOP;C_NOP; C_NOP;C_NOP;C_NOP;”
这里面的延时一定要有么?直接写可不可以?
2:普通模式下,初始化完McBSP是一定要有数据传输才有CLKX的时钟输出?还是使能/XRST后就会有输出时钟。

3: 延时应该有至于时钟信号应该是在初始化后就有了。
可以用示波器测一下

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]