打印
[DSP]

用AIC23输出音频数据

[复制链接]
379|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangb|  楼主 | 2020-5-9 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想用TI的AIC23语音芯片读入一段语音数据,然后想将这段音频数据存储到片外SDRAM中,之后再将存储的音频数据作算法处理,再用AIC23输出音频数据

使用特权

评论回复

相关帖子

沙发
chenjunt| | 2020-5-9 20:26 | 只看该作者

楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
pangb|  楼主 | 2020-5-9 20:32 | 只看该作者
不会将从McBSP读到的数据存储到自己

使用特权

评论回复
地板
wangzsa| | 2020-5-9 20:35 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
5
pangb|  楼主 | 2020-5-9 20:38 | 只看该作者
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]);
   }
}

使用特权

评论回复
6
tian111| | 2020-5-9 20:41 | 只看该作者
将读到的数据直接送出去  看看语音是否和输入的相同   

使用特权

评论回复
7
zwll| | 2020-5-9 20:44 | 只看该作者
保证数据读入正确

使用特权

评论回复
8
llljh| | 2020-5-9 20:46 | 只看该作者
然后就是配置EMIF接口    将外扩的SDRAM调通   

使用特权

评论回复
9
liuzaiy| | 2020-5-9 20:52 | 只看该作者
可以通过在线仿真的形式   查看memory看看有没有写入到SDRAM

使用特权

评论回复
10
chenjunt| | 2020-5-9 20:54 | 只看该作者

我这里全是C55X的资料   请查看
//bbs.21ic.com/icview-689482-1-1.html

使用特权

评论回复
11
zyf部长| | 2020-5-9 20:59 | 只看该作者
先用仿真模拟

使用特权

评论回复
12
xxmmi| | 2020-5-9 21:05 | 只看该作者
这个比较全面的,我这进去参考的

使用特权

评论回复
13
pangb|  楼主 | 2020-5-9 21:09 | 只看该作者
用的就是硬件仿真啊,只能换其他思路了

使用特权

评论回复
14
wangzsa| | 2020-5-9 21:14 | 只看该作者
语音是否和输入的相同

使用特权

评论回复
15
wenfen| | 2020-5-9 21:17 | 只看该作者
EMIF接口 配置的怎么样

使用特权

评论回复
16
zwll| | 2020-5-9 21:20 | 只看该作者
程序的全部代码有木有呀

使用特权

评论回复
17
pangb|  楼主 | 2020-5-9 21:25 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

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

本版积分规则

701

主题

7643

帖子

6

粉丝