mz1223 发表于 2011-1-4 17:17:48

VS1003B MP3芯片 初始化和寄存器的读写都是可以的,就是发不出声来,正弦测试也没有声音

VS1003B MP3芯片 初始化和寄存器的读写都是可以的,就是发不出声来,正弦测试也没有声音
下面是我的正弦测试的程序 不知道什么问题
void VsSineTest(void)
{
        VS1003B_XRESET_L();//xReset = 0   复位vs1003
        Delay_ms(100);      //延时100ms      
        VS1003B_WriteByte(0xff);//发送一个字节的无效数据,启动SPI传输
        VS1003B_XCS_H();
        VS1003B_XDCS_H();   
        VS1003B_XRESET_H();
        Delay_ms(100);                      
        VS1003B_WriteCMD(0,0x0820);//进入vs1003的测试模式
        while ((VS1003B_PIN & (1<<VS1003B_DREQ)) == 0);   //等待DREQ为高(VS1003B_PIN & (1<<VS1003B_DREQ))
        VS1003B_XDCS_L();       //xDCS = 1,选择vs1003的数据接口
       
        //向vs1003发送正弦测试命令:0x53 0xef 0x6e n 0x00 0x00 0x00 0x00
        //其中n = 0x24, 设定vs1003所产生的正弦波的频率值,具体计算方法见vs1003的datasheet
    VS1003B_WriteByte(0x53);      
        VS1003B_WriteByte(0xef);      
        VS1003B_WriteByte(0x6e);      
        VS1003B_WriteByte(0x24);      
        VS1003B_WriteByte(0x00);      
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        Delay_ms(500);
        VS1003B_XDCS_H();//程序执行到这里后应该能从耳机听到一个单一频率的声音

    //退出正弦测试
        VS1003B_XDCS_L();
        VS1003B_WriteByte(0x45);
        VS1003B_WriteByte(0x78);
        VS1003B_WriteByte(0x69);
        VS1003B_WriteByte(0x74);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        Delay_ms(500);
        VS1003B_XDCS_H();

      //再次进入正弦测试并设置n值为0x44,即将正弦波的频率设置为另外的值
    VS1003B_XDCS_L();      
        VS1003B_WriteByte(0x53);      
        VS1003B_WriteByte(0xef);      
        VS1003B_WriteByte(0x6e);      
        VS1003B_WriteByte(0x44);      
        VS1003B_WriteByte(0x00);      
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        Delay_ms(500);
        VS1003B_XDCS_H();

        //退出正弦测试
        VS1003B_XDCS_L();
        VS1003B_WriteByte(0x45);
        VS1003B_WriteByte(0x78);
        VS1003B_WriteByte(0x69);
        VS1003B_WriteByte(0x74);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        VS1003B_WriteByte(0x00);
        Delay_ms(500);
        VS1003B_XDCS_H();
}
希望大虾帮帮忙 初次使用这东西!

以下蓝色文字由站长:armok 于:2011-01-04,18:45:53 加入。你的原标题:“<font color=black>VS1003B 问题求教” 不合符规定。请更改成能说明帖子大意的标题
试想一下,如果本论坛的帖子标题清一色的‘帮助!’,‘ADC求救!’等笼统的标题,你在阅读的过程中会造成许多麻烦。
所以本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
 ①你是在请教问题,还是在介绍有关的知识?
 ②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
注:使用合格的标题,对你来说只是举手之劳,但却会为我们的管理工作提供很大的便利。谢谢你的支持。
./bbs_upload/files_6/armok01122228.gif

fickle 发表于 2011-1-4 17:32:58

输出部分的电源开启没?

vs1003 价格多钱?

mz1223 发表于 2011-1-4 18:11:42

芯片15元左右一个
在上电的时候在耳机处能听到一个上电的声音,
还有在软件复位的时候也能感觉到一个声音在,
我用的是mega16的单片机 8M晶振
voidDelay_ms(uint16 uldata)
{
        uint16 j=0;
        uint16 g=0;
        for (g=0;g<uldata;g++)
        {
                for (j=0;j<1148;j++);
        }
}

lanyuye 发表于 2011-1-4 19:35:38

我的也跟你一样啊,
测试也没有声音啊!

fickle 发表于 2011-1-4 20:33:22

恩,大概哪个控制字没有打开?

用过其他codec芯片,控制字有控制dac输出,hp输出等等一系列的,也许是这里问题。

还有一点vs1003 电源有点特殊,大概不能高于2.8V(或3V?)。因此,接成3.3V可不好。

还有一个,优酷有个vs1003视频,讲解很详细,如果懒得看datasheet,看看也不错。

mz1223 发表于 2011-1-5 15:15:24

感谢armok对我发帖的问题纠正!

不知道是什么原因:今天测试了下发现可以发出声音了,并且也可以播放MP3歌曲了。

哎问题不知道出在哪,又不知道如何解决的!反正是可以播放了!

qzc0927 发表于 2011-1-27 16:38:04

为什么我的MP3在播放时语音过快

FZK374470412 发表于 2012-9-19 15:14:49

我跟楼主出现的问题一样的。。。。。。。不同在于还没解决............{:cry:}

lizheng2010 发表于 2012-9-22 01:48:54

很多资料可以借鉴

642142533 发表于 2012-10-12 11:19:00

qzc0927 发表于 2011-1-27 16:38 static/image/common/back.gif
为什么我的MP3在播放时语音过快

你好
   我的也是播放声音过快
   你的问题解决了吗
      大哥
页: [1]
查看完整版本: VS1003B MP3芯片 初始化和寄存器的读写都是可以的,就是发不出声来,正弦测试也没有声音