搜索
bottom↓
回复: 1

VS1003 的头疼问题...!总是嘟嘟的声音!

[复制链接]

出0入0汤圆

发表于 2010-10-11 11:08:18 | 显示全部楼层 |阅读模式
刚开始调试 VS1003 不久,参照的模块自带的程序, RAM 和 Sine 的测试都通过了.往 VS1003 送 MP3 数据, 老是嘟嘟的声音, 都弄了好久了, 看到有的贴子说是硬件问题, 我检查了连接是对的,在SPI 模式 RX 和 TEST 连接到 I0VDD0.不过有一个问题,就是 DREQ 只有1.3V 的样子, 检查了稳压芯片输出, 2.5V 和 3.3V 对了的啊! 我于是找不到头绪了, 转来看程序, 我和范例对照了很多次,感觉没有问题啊! 头疼死了,不知道是怎么回事!请大侠们指教......

贴一下我的写数据代码

/*-----------------------------------------------------------
** 函数名称: PLAYMP3MUSIC
** 功    能: 播放一首 Mp3 .
** 参    数: filename: 歌曲文件名称(需包含文件路径)
** 返 回 值:
** 备    注: 函数处于调试阶段.
** 创建日期: 2010 - 10 -07
------------------------------------------------------------*/
FRESULT PLAYMP3MUSIC(const char *filename)
{
  static FIL  fsrc;        // file objects
     FRESULT  res;         // FatFs function common result code             
            UINT  ByteRead;
            BYTE  buffer[512];
                int   i;

  f_mount(0, &fs_sd);
  
  /* 打开 MP3 文件*/
  res = f_open(&fsrc, filename, (FA_OPEN_EXISTING | FA_READ));

  /* 暂时放在死循环, 供调试使用 */
  for(;;)
  {
    /* 读取 MP3 文件*/
    res = f_read(&fsrc, buffer, 512, &ByteRead);  

        for(i = 0;i < 16;i ++)
        {
          /* 送 32 个字节*/
         Send_VS_32Bytes(&buffer[(32 * i)]);
        }
  }

  f_close(&fsrc);
  
  f_mount(0,NULL);

  return (res);

}

/*-----------------------------------------------------------
** 函数名称:Send_VS_32Bytes
** 功    能: 向 VS1003 写入 32 个字节的数据.
** 参    数: 欲写入数据的缓冲区地址.
** 返 回 值: 无.
** 备    注:
** 创建日期: 2010 - 10 -07  
------------------------------------------------------------*/
void Send_VS_32Bytes(unsigned char *Data)
{
  int i;

   /* 设置成高速模式 */
   //SetSPI_Speed(MP3_SPI, SPI_SPEED_HIGH);

   while(DREQValue == 0);
   //Delay_time(3);
   for(i = 0;i < 32;i ++)
   {
    // while(DREQValue == 0);   
    Send_VS_OneByte(*Data ++);
   }

  /* 还原成低速模式 */
  //SetSPI_Speed(MP3_SPI, SPI_SPEED_LOW);
}
/*-----------------------------------------------------------
** 函数名称: Send_VS_OneByte
** 功    能: 向 VS1003 写入数据.
** 参    数: 与写入的数据
** 备    注:
** 创建日期: 2010 - 10 -07  
------------------------------------------------------------*/
void Send_VS_OneByte(UCHAR8 Data)
{
  /* 拉低数据线 */
  VS1003_XDCS_L;

   /* 发送数据*/
  SPIx_SenRecvONEByte(MP3_SPI, Data);

  VS1003_XDCS_H;
  VS1003_XCS_H;  
}

有错误的地方,还请大虾们指出...

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-10-18 21:41:11 | 显示全部楼层
楼主你试试把DREQ从mcu上断开试试,看看有没有变化。我上次遇到的问题是正弦测试通过不了更不用说播音乐了。折腾了好几天,原因在于DREQ连的那个管脚电位总是零。没有检查原因(估计是实验板上其他芯片也有连接在这管脚上吧)直接换了个管脚来检测DREQ顺利解决问题。看楼主的情况跟我相反,找个示波器看看DREQ波形是否有有变化,若没变化试试其他引脚。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-16 13:41

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

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