OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3717|回复: 5

VS1053录音后和播放的问题

[复制链接]

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-5-22
在线时间
19 小时
发表于 2017-4-24 20:09:40 | 显示全部楼层 |阅读模式
5金钱
最近用STM32F2在调VS1053,录音后再去播放,发现播放出来的声音非常快,而且噪声非常大。说话的内容是都录进去了,但是播放出来的就像加个两倍速一样。已经设置成正常播放模式了,怀疑是录音的问题,而且录音的时候耳机中也有存在有规律的噪声,数据是存在一块AT的FLASH中求指教。搜索了下之前好像也有人遇到这个问题,不过那个帖子没具体说如何解决的。正弦和ram测试都正常这个配置直接复试的例程的
//激活PCM 录音模式
//agc:0,自动增益.1024相当于1倍,512相当于0.5倍,最大值65535=64倍
void recoder_enter_rec_mode(u16 agc)
{
        //如果是IMA ADPCM,采样率计算公式如下:
        //采样率=CLKI/256*d;
        //假设d=0,并2倍频,外部晶振为12.288M.那么Fc=(2*12288000)/256*6=16Khz
        //如果是线性PCM,采样率直接就写采样值
           VS_WR_Cmd(SPI_BASS,0x0000);
        VS_WR_Cmd(SPI_AICTRL0,8000);        //设置采样率,设置为8Khz
        VS_WR_Cmd(SPI_AICTRL1,agc);                //设置增益,0,自动增益.1024相当于1倍,512相当于0.5倍,最大值65535=64倍
        VS_WR_Cmd(SPI_AICTRL2,0);                //设置增益最大值,0,代表最大值65536=64X
        VS_WR_Cmd(SPI_AICTRL3,6);                //左通道(MIC单声道输入)
        VS_WR_Cmd(SPI_CLOCKF,0X2000);        //设置VS10XX的时钟,MULT:2倍频;ADD:不允许;CLK:12.288Mhz
        VS_WR_Cmd(SPI_MODE,0x1804);                //MIC,录音激活
        delay_ms(10);                                        //等待至少1.35ms
        VS_Load_Patch((u16*)wav_plugin,40);//VS1053的WAV录音需要patch
}


//初始化WAV头.
void recoder_wav_init(__WaveHeader* wavhead) //初始化WAV头
{
        wavhead->riff.ChunkID=0X46464952;        //"RIFF"
        wavhead->riff.ChunkSize=0;                        //还未确定,最后需要计算
        wavhead->riff.Format=0X45564157;         //"WAVE"
        wavhead->fmt.ChunkID=0X20746D66;         //"fmt "
        wavhead->fmt.ChunkSize=16;                         //大小为16个字节
        wavhead->fmt.AudioFormat=0X01;                 //0X01,表示PCM;0X01,表示IMA ADPCM
        wavhead->fmt.NumOfChannels=1;                //单声道
        wavhead->fmt.SampleRate=8000;                //8Khz采样率 采样速率
        wavhead->fmt.ByteRate=16000;        //16位,即2个字节
        wavhead->fmt.BlockAlign=2;                        //块大小,2个字节为一个块
        wavhead->fmt.BitsPerSample=16;                //16位PCM
           wavhead->data.ChunkID=0X61746164;        //"data"
        wavhead->data.ChunkSize=0;                        //数据大小,还需要计算
}

最佳答案

查看完整内容[请看2#楼]

已解决,是flash这边硬件SPI速度设置的问题,一开始设置成低速模式了,没想到被这个问题搞了这么久。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-5-22
在线时间
19 小时
 楼主| 发表于 2017-4-24 20:09:41 | 显示全部楼层
已解决,是flash这边硬件SPI速度设置的问题,一开始设置成低速模式了,没想到被这个问题搞了这么久。。
回复

使用道具 举报

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-5-22
在线时间
19 小时
 楼主| 发表于 2017-4-25 11:51:48 | 显示全部楼层
本帖最后由 728528678 于 2017-4-25 11:52 编辑

今天测试了一下,录音时有规律的噪声差不多是执行进入录音模式后七八秒左右开始的,一开始是没有的。噪音像是录音被打断了一下,然后马上开始的状态
回复

使用道具 举报

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-5-22
在线时间
19 小时
 楼主| 发表于 2017-4-25 16:21:33 | 显示全部楼层
TIM截图20170425161758.png 刚才用串口把数据打印出来,用winhex看的WAV头,感觉没什么问题啊
回复

使用道具 举报

3

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-5-22
在线时间
19 小时
 楼主| 发表于 2017-4-25 17:20:47 | 显示全部楼层
现在录音的时候耳机里几乎听不到噪音了,微弱的电流声应该算正常。不过播放出来的还是不正常而且播放的时候有很大的噪声
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2020-5-1
在线时间
12 小时
发表于 2020-5-7 15:04:53 | 显示全部楼层
同问,也是遇到同样的问题
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-28 01:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表