登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

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

作者:shaka1981 栏目:DSP技术
初学  求5000系列McBSP寄存器初始化代码
5000系列McBSP驱动串行AD或DA的寄存器初始化代码,主要是时钟和帧同步那部分,我看了几本书也没搞清楚。
那位高手帮帮忙,把你们手上用过的发一段过来就可以,最好是c,汇编也行。
多谢啦

2楼: >>参与讨论
bittyphoon
回复主题:初学  求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;                                         
                             
    }
}    

3楼: >>参与讨论
shaka1981
非常感谢!!附加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后就会有输出时钟。



* - 本贴最后修改时间:2005-7-5 10:35:16 修改者:shaka1981

4楼: >>参与讨论
lrx1982
延时应该有
至于时钟信号应该是在初始化后就有了。
可以用示波器测一下

参与讨论
昵称:
讨论内容:
 
 
相关帖子
为什么我的TPS7333输入5。02输出在3。8到4。4之间
有没有带MP3功能的读卡器方案?
请问哪种带TCP协议栈的GPRS模块最稳定可靠?
有没有ADSP2191M的中文资料
DSP/BIOS &RTDX &GEL
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号