搜索
bottom↓
回复: 7

vs1001k上电后DREQ管脚的状态是高还是低?

[复制链接]

出0入0汤圆

发表于 2005-10-12 11:55:03 | 显示全部楼层 |阅读模式
作了个vs1001k的mp3板,发现对vs1001k初始化以后DREQ管脚一直为低(为高说明vs1001k准备好接受数据);发现上电后那个管脚就一直为低。谢谢!

出0入0汤圆

 楼主| 发表于 2005-10-12 15:04:52 | 显示全部楼层
贴个原理图,做过的朋友帮忙看一下。不知道vs1001k出现这种状况会是什么原因?

具体说明如下,

cpu为atmega16l,8M内部RC,CPU工作于5v,vs1001经as1117接3.3v;

cpu与vs1001之间的连接时,接3.3k与1.9k电阻的分压,经过测量在2.7v左右,满足vs1001的需求;

且经过jtag仿真,模拟的spi口工作正常。

vs1001的晶振为12.288M,量得电压在1.3v,说明晶振是起振的








-----此内容被bigben于2005-10-12,15:13:15编辑过

出0入0汤圆

发表于 2005-10-13 11:38:49 | 显示全部楼层
如果检测到DREQ一直为低,则有两个情况:

    1.VS1001的初始化没有做好.

    2.VS1001坏了.

我用的是VS1011,最开始也是一样总为低,最后改进了初始化程序就好了.

出0入0汤圆

 楼主| 发表于 2005-10-14 10:57:58 | 显示全部楼层
偶的初始化部分,请指正;vs1001k应该不会有问题吧,新芯片,而且觉得偶的焊接也不应该有问题



#define vs_command_in_bit_high PORTA |=0X02

#define vs_command_in_bit_low  PORTA &=0XFD

#define sci_active  PORTA &= 0XF7

#define sci_negtive PORTA |= 0X08

void vs_init(void)

{

        unsigned int debug=0x5a;

        vs_command_write(0, 0x0004);                        // Soft Reset

        init_wait();

        vs_command_write(0, 0x0000);

        while(!(dreq&(1<<dreq_bit)));      //original



        vs_command_write(11, VOLUME_DEFAULT);        //

        debug = vs_command_read(11);    // for test

        vs_command_write(3, (0x8000 + VS_CLOCK));                // Clock

        init_wait();

}



void vs_command_write(unsigned char addr,unsigned int arg)

{

   sci_active;

   vs_command(2);

   vs_command(addr);

   vs_command(arg>>8);

   vs_command(arg);

   sci_negtive;

}



unsigned char vs_command(unsigned char comm)

{

  unsigned char bit;

  unsigned char r=0;

  for (bit=0; bit<8; bit++){

       if (comm & 0x80){

                                vs_command_in_bit_high;

                        } else {

                                vs_command_in_bit_low;   

                        }

                        vs_command_clk_high;     

                        comm <<= 1;

                        r <<= 1;

                        r |= (vs_command_out&0x01);   

                        vs_command_clk_low;      

                }

     vs_command_in_bit_high;

         return r;        

}



不会是模拟的spi时钟太快吧,用的内部8M。

出0入0汤圆

发表于 2005-10-14 11:30:57 | 显示全部楼层
开始的时候SPI的速度不要太快了,最低。其他的就好了,我用的是1011的NEW MODE,应该差不多的。

出0入0汤圆

 楼主| 发表于 2005-10-14 14:17:41 | 显示全部楼层
降低了clk频率,还是不行。楼上可否给部分初始化代码做个参考?

如果不做初始化,直接读vs1001内部16bit 寄存器能否读出结果?

出0入0汤圆

发表于 2005-10-14 21:55:43 | 显示全部楼层
void vs1011_init(void)

{

uchar i=0;

delay_nus(30);





vs1011_cmd_write(0,0X800);     //NEW MODE

vs1011_cmd_write(0x2,0X75);   //BASS

vs1011_cmd_write(3,0X9800);   //CLOCK F

vs1011_cmd_write(0xb,0X2020);  //VOLUME

check(vs1011_read(0),0);

check(vs1011_read(3),1);

check(vs1011_read(0xb),3);



}





void vs1011_cmd_write(uchar address,uint data)

{

MP3_DATA_CS=1;

MP3_CMD_CS=0;

Write_Byte_MMC(0x02);      //VS1011的写命令

delay_nus(20);

Write_Byte_MMC(address);   //地址

Write_Byte_MMC(data>>8);

Write_Byte_MMC(data);

delay_nus(200);

MP3_CMD_CS=1;

}

我用的是NEW MODE。

出0入0汤圆

 楼主| 发表于 2005-10-17 14:03:01 | 显示全部楼层
MP3_DATA_CS=1

数据接口似乎没有片选阿?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 07:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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