打印

c55xx利用AIC23芯片采集语音视频

[复制链接]
1069|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
k200zhuangzi|  楼主 | 2016-5-17 20:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神,小的初学DSP,想用TI的AIC23语音芯片读入一段语音数据,然后想将这段音频数据存储到片外SDRAM中,之后再将存储的音频数据作算法处理,再用AIC23输出音频数据。现在遇到的问题是,不会将从McBSP读到的数据存储到自己
void AIC23_Mixer()
{
    PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;//pMCBSP0=0x2800
    int left, right;  //int,16bits

    int *pWork,nAudioCount;
    int i;
    unsigned int uWork;
    unsigned char cWork;
   
        //bCodec=0;
        pAudio=pWork=(int *)AUDIODATA;
        nAudioCount=0;
        unsigned int right_speech[44100]={0};
        unsigned int left_speech[44100]={0};
        //这个for循环想干啥
    for ( i=0;i<1024;i++,pWork++ ) (*pWork)=0;
    pWork=pAudio;
   while ( 1 )
    {
        while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY));        // 等待数据传输完成
//试试能不能截取一段语音数据,再播放,缓冲区是怎么一回事
                for(i=0;i<44100;i++)
                {
                        left_speech[i]=Read(pMCBSP0 -> ddr1) ;
                        right_speech[i]=Read(pMCBSP0 -> ddr2);

                }
//       left = Read(pMCBSP0 -> ddr1);        // 读入左声道数据
//       right = Read(pMCBSP0 -> ddr2);        // 读入右声道数据

//                uWork=G711ALawEncode(left,right);
//                (*pWork)=uWork;
//                cWork=uWork>>8;
//                left=ALawToInt(cWork);

//                cWork=uWork&0x0ff;
//                right=ALawToInt(cWork);

        nAudioCount++; pWork++;
        if ( nAudioCount>=1024 )
        {
                nAudioCount=0;
                pWork=pAudio;
        }
        break;
/*
        for(i=0;i<1024;i++)
        {
                        Write(pMCBSP0 -> dxr1, left_speech[i]);
                        Write(pMCBSP0 -> dxr2, right_speech[i]);
        }
*/
        //nAudioCount计算采样点个数,pWork为指针变量,指向
        //pAudio也是指针变量,
//                Write(pMCBSP0 -> dxr1, left);
//                Write(pMCBSP0 -> dxr2, right);
/*        if ( nAudioCount>=1024 )
        {
                nAudioCount=0;
                pWork=pAudio;
        }
    }*/
    }
   for(i=0;i<44100;i++)
   {
                Write(pMCBSP0 -> dxr1, left_speech[i]);
                Write(pMCBSP0 -> dxr2, right_speech[i]);
   }
}
定义的数组中,请各位大神帮忙解答,小弟先拜谢大伙了!

相关帖子

沙发
zhangmangui| | 2016-5-17 22:13 | 只看该作者
你先这样   将读到的数据直接送出去  看看语音是否和输入的相同   保证数据读入正确
然后就是配置EMIF接口    将外扩的SDRAM调通   
可以通过在线仿真的形式   查看memory看看有没有写入到SDRAM

使用特权

评论回复
板凳
zhangmangui| | 2016-5-17 22:14 | 只看该作者
我这里全是C55X的资料   请查看
https://bbs.21ic.com/icview-689482-1-1.html

使用特权

评论回复
地板
Sode| | 2016-5-18 13:37 | 只看该作者
先用仿真模拟

使用特权

评论回复
5
firstblood| | 2016-5-18 21:41 | 只看该作者
zhangmangui 发表于 2016-5-17 22:14
我这里全是C55X的资料   请查看
https://bbs.21ic.com/icview-689482-1-1.html

这个比较全面的,我这进去参考的

使用特权

评论回复
6
k200zhuangzi|  楼主 | 2016-5-22 18:27 | 只看该作者

用的就是硬件仿真啊,只能换其他思路了

使用特权

评论回复
7
疯子小小腾| | 2016-5-24 17:32 | 只看该作者
看不懂怎么办啊,真的看不懂啊

使用特权

评论回复
8
拉克丝| | 2016-5-25 19:21 | 只看该作者
语音是否和输入的相同

使用特权

评论回复
9
FireRiver9| | 2016-5-27 21:30 | 只看该作者
EMIF接口 配置的怎么样

使用特权

评论回复
10
ch3n123| | 2018-4-2 22:54 | 只看该作者
程序的全部代码有木有呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝