OpenEdv-开源电子网

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

VS1063 调不通,求助

[复制链接]

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2013-1-25
在线时间
7 小时
发表于 2013-9-30 14:55:13 | 显示全部楼层 |阅读模式
            原子哥,最近想玩玩那个VS1063,看了资料跟vs1053差不多,就是多了MP3编码。用的是你的程序,当我用vs1063的时候memroy test 读出来是0x0000;正弦波测试有声音,可是频率不对。硬件没问题,我替换成vs1003,1.8v也换成2.5v 出来的声音正常。想问问有没有什么其他方法来排除问题啊、
好的态度去做好每一件事情
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-10-10
在线时间
0 小时
发表于 2013-10-10 13:07:06 | 显示全部楼层
测试时要发送16字节的数据
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-10-10
在线时间
0 小时
发表于 2013-10-10 13:15:50 | 显示全部楼层
请问,我用的VS1063正弦测试和RAM测试都通过了,但是播放不了Mp3?
回复 支持 反对

使用道具 举报

30

主题

210

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2012-11-22
在线时间
12 小时
发表于 2013-10-10 14:30:26 | 显示全部楼层
回复【3楼】aiyun349:
---------------------------------
芯片是好的吧
VLSI?大陆区一级授权代理商,提供技术支持,QQ839638158?VS1003?VS1053?VS1063?VS1011?VS1005?VS1205?VS1103?VS1033?VS8005?VS8053?VS1000?VS23S010?VS1163?开发板,淘宝店铺http://shop105947990.taobao.com/?QQ2355355257
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-10-10
在线时间
0 小时
发表于 2013-10-10 15:31:40 | 显示全部楼层
void VS1063PlayFile(FILE *readFp)  
{
  static u8 playBuf[512];
              
  u16 i ;
  u8 n;
  
  fread(playBuf, 1, 512, readFp); //
  
  i=0;
  do      //主播放循环
  {       
    if(GPIO_ReadInputDataBit(Audio_DREQ_Port, Audio_DREQ_Pin)==1)  // 


    {      
          Audio_DCS_Low();                  //数据片选使能
            for(n=0;n<32;n++)
            {
               Audio_WriteOneByte(playBuf[i++]); 
            }
         Audio_DCS_High();                //关闭数据片选
    } 
              
 }while(i<511); //循环发送512个字节 
 
  
}   


//不能播放mp3,请高手指点。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-10 23:33:27 | 显示全部楼层
1063还没搞过啊...
楼主再研究下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2013-1-25
在线时间
7 小时
 楼主| 发表于 2013-10-11 13:16:31 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
恩,用的是原子哥的例程,把vs1063换成vs1003 又一切正常。莫名其妙的问题啊。不知道会不会是ic有问题啊、
好的态度去做好每一件事情
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2013-1-25
在线时间
7 小时
 楼主| 发表于 2013-11-23 14:06:33 | 显示全部楼层

//正弦测试  跟1053区别在于  测试指令多了8byte 以下代码可用
void VS2_Sine_Test(void)
{              
 VS2_HD_Reset(); 
 VS2_WR_Cmd(SPI_VOL,0X2020);   //设置音量 
  VS2_WR_Cmd(SPI_MODE,0x0820);//进入VS210XX的测试模式    
 while(VS2_DQ==0);     //等待DREQ为高
 //printf("mode sin:%x\n",VS2_RD_Reg(SPI_MODE));
  //向VS210XX发送正弦测试命令:0x53 0xef 0x6e n 0x00 0x00 0x00 0x00
  //其中n = 0x24, 设定VS210XX所产生的正弦波的频率值,具体计算方法见VS10XX的datasheet
  VS2_SPI_SpeedLow();//低速
 VS2_XCS=0;//选中数据传输
 VS2_SPI_ReadWriteByte(0x53);
 VS2_SPI_ReadWriteByte(0xef);
 VS2_SPI_ReadWriteByte(0x6e);
 VS2_SPI_ReadWriteByte(0x24);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
  VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
  VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 delay_ms(100);
 VS2_XCS=1;
    //退出正弦测试
    VS2_XCS=0;//选中数据传输
 VS2_SPI_ReadWriteByte(0x45);
 VS2_SPI_ReadWriteByte(0x78);
 VS2_SPI_ReadWriteByte(0x69);
 VS2_SPI_ReadWriteByte(0x74);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
   VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
  VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 
 delay_ms(100);
 VS2_XCS=1;  

    //再次进入正弦测试并设置n值为0x44,即将正弦波的频率设置为另外的值
    VS2_XDCS=0;//选中数据传输     
 VS2_SPI_ReadWriteByte(0x53);
 VS2_SPI_ReadWriteByte(0xef);
 VS2_SPI_ReadWriteByte(0x6e);
 VS2_SPI_ReadWriteByte(0x44);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
   VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
  VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 delay_ms(100);
  VS2_XCS=1;
    //退出正弦测试
    VS2_XCS=0;//选中数据传输
 VS2_SPI_ReadWriteByte(0x45);
 VS2_SPI_ReadWriteByte(0x78);
 VS2_SPI_ReadWriteByte(0x69);
 VS2_SPI_ReadWriteByte(0x74);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
   VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
  VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 delay_ms(100);
 VS2_XCS=1; 

//ram 测试
//返回值:RAM测试结果
// VS21003如果得到的值为0x807F,则表明完好;VS21053为0X83FF.                    
u16 VS2_Ram_Test(void)
{ u16 temp;
 VS2_HD_Reset();    
  VS2_WR_Cmd(SPI_MODE,SM_SDINEW|SM_SDISHARE|SM_TESTS);// 进入VS210XX的测试模式
 while (VS2_DQ==0); // 等待DREQ为高     
  VS2_SPI_SpeedLow();//低速
 VS2_XDCS=0;              // xDCS = 1,选择VS210XX的数据接口
 VS2_SPI_ReadWriteByte(0x4d);
 VS2_SPI_ReadWriteByte(0xea);
 VS2_SPI_ReadWriteByte(0x6d);
 VS2_SPI_ReadWriteByte(0x54);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 VS2_SPI_ReadWriteByte(0x00);
 delay_ms(100); 
 VS2_XDCS=1;
 temp = VS2_RD_Reg(SPI_HDAT0);// VS1003如果得到的值为0x807F,则表明完好;VS1053或VS1053 为0X83FF.;
 return  temp;    
}    
mp3 encod init  12000hz  8kbps
void ENCODE_Init(void)
{
  LoadUserCode();
  VS2_WR_Cmd(SPI_BASS,0x0000);    
  VS2_WR_Cmd(SPI_RECRATE,12000);
  VS2_WR_Cmd(SPI_RECGAIN, 1024); /* 1024 = gain 1 = best quality */
  VS2_WR_Cmd(SPI_RECMODE, RM_63_FORMAT_MP3 | RM_63_ADC_MODE_MONO);
  VS2_WR_Cmd(SPI_CLOCKF,HZ_TO_SC_FREQ(12288000) | SC_MULT_53_50X | SC_ADD_53_00X);
  VS2_WR_Cmd(SPI_RECQUALITY, RQ_MODE_CBR | RQ_MULT_1000 | 8);
  VS2_WR_Cmd(SPI_MODE,0x1804);//|SM_LINE_IN );  //MIC,录音激活 
  delay_ms(5);     //等待至少1.35ms
}

好的态度去做好每一件事情
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 18:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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