[DSP] 用AIC23输出音频数据

[复制链接]
 楼主| 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 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| 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]);
   }
}
tian111 发表于 2020-5-9 20:41 | 显示全部楼层
将读到的数据直接送出去  看看语音是否和输入的相同   
zwll 发表于 2020-5-9 20:44 | 显示全部楼层
保证数据读入正确
llljh 发表于 2020-5-9 20:46 | 显示全部楼层
然后就是配置EMIF接口    将外扩的SDRAM调通   
liuzaiy 发表于 2020-5-9 20:52 | 显示全部楼层
可以通过在线仿真的形式   查看memory看看有没有写入到SDRAM
chenjunt 发表于 2020-5-9 20:54 | 显示全部楼层

我这里全是C55X的资料   请查看
//bbs.21ic.com/icview-689482-1-1.html
zyf部长 发表于 2020-5-9 20:59 | 显示全部楼层
先用仿真模拟
xxmmi 发表于 2020-5-9 21:05 | 显示全部楼层
这个比较全面的,我这进去参考的
 楼主| pangb 发表于 2020-5-9 21:09 | 显示全部楼层
用的就是硬件仿真啊,只能换其他思路了
wangzsa 发表于 2020-5-9 21:14 | 显示全部楼层
语音是否和输入的相同
wenfen 发表于 2020-5-9 21:17 | 显示全部楼层
EMIF接口 配置的怎么样
zwll 发表于 2020-5-9 21:20 | 显示全部楼层
程序的全部代码有木有呀
 楼主| pangb 发表于 2020-5-9 21:25 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部