网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 帮助中心 >> C6000 >> 文章正文
  关于TLV320AIC23的操作           ★★★ 【字体:
关于TLV320AIC23的操作
作者:Free    文章来源:本站原创    点击数:    更新时间:2007-12-9    

 

问题如下:

我在DM642里面对TLV320AIC23进行Transmit操作时,遇到一个问题。代码如下,各同步时钟信号AFSX、ACLKX、AHCLKX由AIC23提供。

MCASP_ConfigSrctl MysrctlRegs = {
    0x00000009,    //AXR00=Xmt
    0x00000000,    //AXR01=Rcv
    0x00000000,    //AXR02=Xmt
    0x00000000,    //AXR03=Rcv
    0x00000000,    //AXR04=Xmt
    0x00000000,    //AXR05=Rcv
    0x00000000,    //AXR06=Xmt
    0x00000000,    //AXR07=Rcv 
};

  hMcasp = MCASP_open(MCASP_DEV0,MCASP_OPEN_RESET);
       
    //1: reset McASP to default values
    MCASP_reset(hMcasp);
   
    //2a: Leave PWRDEMU at default.
    //2b: Receiver registers:                 
   
    //2c: Transmit register:
    MCASP_RSETH(hMcasp, XMASK,    0x0000FFFF);
    MCASP_RSETH(hMcasp, XFMT,    0x00018070);
    MCASP_RSETH(hMcasp, AFSXCTL,  0x00000111);
    MCASP_RSETH(hMcasp, ACLKXCTL, 0x000000C0);
    MCASP_RSETH(hMcasp, AHCLKXCTL,0x00000030);
    MCASP_RSETH(hMcasp, XTDM,    0xFFFFFFFF);
    MCASP_RSETH(hMcasp, XINTCTL,  0x00000020);
    MCASP_RSETH(hMcasp, XCLKCHK,  0x00000000);       
   
    //2d: Serialize registers: SRCTL[n]
    MCASP_configSrctl(hMcasp, &MysrctlRegs);
   
    //2e: Global registersFUNC,PDIR,DITCTL,DLBCTL,AMUTE.
    MCASP_RSETH(hMcasp, PFUNC, 0x00000000);
    MCASP_RSETH(hMcasp, PDIR,  0x0200FF55);
    MCASP_RSETH(hMcasp, DITCTL,0x00000000);
    MCASP_RSETH(hMcasp, DLBCTL,0x00000000);
    MCASP_RSETH(hMcasp, AMUTE, 0x00000000);
   
    //3:Start high-frequency serial clock AHCLKR
    MCASP_enableHclk(hMcasp, MCASP_XMT);
    while(!(MCASP_FGETH(hMcasp, GBLCTL, XHCLKRST)));
   
    //4: Start serial clock ACLKR.If external, skipped
    //MCASP_enableClk(hMcasp, MCASP_RCV);
    //while(!(MCASP_FGETH(hMcasp, GBLCTL,RCLKRST)));
    //MCASP_enableClk(hMcasp, MCASP_XMT);
    //while(!(MCASP_FGETH(hMcasp, GBLCTL, XCLKRST)));
   
    //5: Enable receive interrupt
    MCASP_RSETH(hMcasp,XINTCTL,0x00000020);    //enable XDATA interrupt
   
    //6: Activate serializers
    MCASP_RSETH(hMcasp,XSTAT,0x0000FFFF);
    MCASP_enableSers(hMcasp, MCASP_XMT);
    while(!(MCASP_FGETH(hMcasp, GBLCTL, XSRCLR)));
   
    //7: Verify that all transmit buffers are serviced.Ignored.
    while(MCASP_FGETH(hMcasp, XSTAT, XDATA));
   
    //8: Release machines from reset
    MCASP_enableSm(hMcasp, MCASP_XMT);
    while(!(MCASP_FGETH(hMcasp, GBLCTL, XSMRST)));
   
    //9: Release frame sync generators from reset
    MCASP_enableFsync(hMcasp, MCASP_XMT); 
    while(!(MCASP_FGETH(hMcasp, GBLCTL, XFRST)));

为什么我的代码在执行到第六步时,即启动serializers时,程序就停下来了。检查了很久,都没有找到原因,很是郁闷。望大家帮我看看问题出在哪里。谢谢了!

解答如下:

找到问题所在了,很不值一提
因为我只是配置接收,没配置发送,而接收时钟与发送时钟默认是同步的,我的发送时钟没有输入,所以虽然我的接收时钟有输入,可实际上还是没有位时钟,配置总是不成功.总之,就是位时钟的问题.
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号