5438|4

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助:关于TLV320AIC23的操作 [复制链接]

各位大虾:我在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时,程序就停下来了。检查了很久,都没有找到原因,很是郁闷。望大家帮我看看问题出在哪里。谢谢了!

最新回复

楼主有现在解决问题了吧,我跟你一样,现在AIC23提供了帧同步和移位时钟,我各个部分启动也都正常,但是没有数据发出,纠结了很长时间了,谢谢给点帮助  详情 回复 发表于 2012-3-26 22:28
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我也遇到这个问题,不知道有那位大虾知道怎么解决啊
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
这位兄弟的问题解决没有,碰到了和你一样的问题,文档都翻烂了也没找到解决问题的方法
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
找到问题所在了,很不值一提
因为我只是配置接收,没配置发送,而接收时钟与发送时钟默认是同步的,
我的发送时钟没有输入,所以虽然我的接收时钟有输入,
可实际上还是没有位时钟,配置总是不成功
总之,就是位时钟的问题
兄弟们不要范同样的错误啊


[ 本贴由 whx8880 于 2007-11-15 04:42 PM 最后编辑 ]
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

5
 
楼主有现在解决问题了吧,我跟你一样,现在AIC23提供了帧同步和移位时钟,我各个部分启动也都正常,但是没有数据发出,纠结了很长时间了,谢谢给点帮助
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表