搜索
bottom↓
回复: 15

请教关于回音处理芯片FM1188的问题

[复制链接]

出0入0汤圆

发表于 2013-1-23 16:59:28 | 显示全部楼层 |阅读模式
有使用过FM1188的兄弟吗?

小弟用STM32、FM1188做音频采集:
FM1188工作于从模式,(8K采集率、16Bit位宽、PCM数据格式)
STM32的I2S3工作于主模式,PCM数据格式。

遇到的问题是:
只让STM32提供位时钟、帧时钟、且I2S3不输出任何数据。  接在FM1188的扬声器就会发出啪啦啪啦的声音


但是如果FM1188工作于主模式,且I2S不发送数据,啪啦啪啦的声音则没了。 由于STM32 I2S3的缺陷,正常工作时只能I2S3只能做主模式

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2013-1-24 10:19:58 | 显示全部楼层
是你播放时的采样率没搞好把。我也出现过啊

出0入0汤圆

 楼主| 发表于 2013-1-24 16:55:06 | 显示全部楼层
dreamc 发表于 2013-1-24 10:19
是你播放时的采样率没搞好把。我也出现过啊

FM1188 采集率是固定8K 的。  且我把FM1188工作于主模式、从模式时的帧时钟来位时钟都测试了一下,分别是8KHz、256KHz

出0入0汤圆

发表于 2013-1-24 17:20:40 | 显示全部楼层
danshi126 发表于 2013-1-24 16:55
FM1188 采集率是固定8K 的。  且我把FM1188工作于主模式、从模式时的帧时钟来位时钟都测试了一下,分别是 ...

从模式时当然是帧时钟是8K啊,主时钟应该是256X8K才对啊。我觉得你还是用主模式。你可以贴你的程序出来看看那啊,stm32 i2s的初始化 还有i2s中断的函数就够

出0入0汤圆

 楼主| 发表于 2013-1-24 18:03:14 | 显示全部楼层
dreamc 发表于 2013-1-24 17:20
从模式时当然是帧时钟是8K啊,主时钟应该是256X8K才对啊。我觉得你还是用主模式。你可以贴你的程序出来看 ...

FM1188 运行靠无源晶振。  没有主时钟引脚, 只有帧时钟、位时钟

FM1188工作于从模式、PCM数据格式、16Bit位宽
  1. //采集音频数据端
  2. void IIS3_config(void)
  3. {
  4.         GPIO_InitTypeDef GPIOInitStruct;
  5.         I2S_InitTypeDef I2S_InitStruct;
  6.         NVIC_InitTypeDef NVIC_InitStruct;
  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3,ENABLE);                                                        //使能IIS3时钟
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);  //使能GPIPB、GPIPB、AFIO输出口时钟
  9.         SPI_I2S_DeInit(SPI3);                                                                                                                //SPI2复位

  10.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);                                        //关闭JTAG调试功能
  11.         GPIOInitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;                                         
  12.         GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  13.         GPIOInitStruct.GPIO_Pin   = GPIO_Pin_3 | GPIO_Pin_5;
  14.         GPIO_Init(GPIOB,&GPIOInitStruct);

  15.         GPIOInitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;                                         
  16.         GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  17.         GPIOInitStruct.GPIO_Pin   = GPIO_Pin_15;
  18.         GPIO_Init(GPIOA,&GPIOInitStruct);

  19.         I2S_InitStruct.I2S_AudioFreq  = I2S_AudioFreq_8k;                                                 // Audio sllect frequery 16K
  20.         I2S_InitStruct.I2S_CPOL              = I2S_CPOL_High;                                                        // clock of steady is hight
  21.         I2S_InitStruct.I2S_DataFormat = I2S_DataFormat_16b;                                                  // data format of 16 Bit
  22.         I2S_InitStruct.I2S_MCLKOutput = I2S_MCLKOutput_Disable;                                        //Disenable MCLK output
  23.         I2S_InitStruct.I2S_Mode                  = I2S_Mode_MasterRx;
  24.         I2S_InitStruct.I2S_Standard          = I2S_Standard_PCMShort;                                                 //PCM format
  25.                                                                                                           
  26.         I2S_Init(SPI3,&I2S_InitStruct);       
  27.         SPI3->I2SCFGR        |= (2 << 1);                   //frame lenght 32bit
  28.         SPI_I2S_DMACmd(SPI3,SPI_I2S_DMAReq_Rx,ENABLE);                                                         //Enable IIS2 transfer DMA
  29.         I2S_Cmd(SPI3,ENABLE);

  30.         NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);
  31.         NVIC_InitStruct.NVIC_IRQChannel                                                = SPI3_IRQChannel;
  32.         NVIC_InitStruct.NVIC_IRQChannelCmd                                        = ENABLE;
  33.         NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority        = 2;
  34.            NVIC_InitStruct.NVIC_IRQChannelSubPriority                        = 1;
  35.         NVIC_Init(&NVIC_InitStruct);          

  36. }
复制代码

出0入0汤圆

 楼主| 发表于 2013-1-24 18:04:47 | 显示全部楼层
dreamc 你用的音频芯片也是FM1188吗?

出0入0汤圆

 楼主| 发表于 2013-1-25 09:04:04 | 显示全部楼层
自己顶顶,问题还没解决。别沉了

出0入0汤圆

发表于 2013-1-25 09:13:18 | 显示全部楼层
danshi126 发表于 2013-1-25 09:04
自己顶顶,问题还没解决。别沉了

你现在用DMA来传输么,不是啊,只不过最近搞了两个音频的IC,吃了不少苦啊,有点教训了把

出0入0汤圆

 楼主| 发表于 2013-1-25 11:46:26 | 显示全部楼层
dreamc 发表于 2013-1-25 09:13
你现在用DMA来传输么,不是啊,只不过最近搞了两个音频的IC,吃了不少苦啊,有点教训了把 ...

正常工作时要用DMA

但现在的问题的。我只让I2S3提供时钟给FM1188,且I2S3数据线从STM32上断开并下拉到地了。  音频编解码器会有啪啦的噪声

FM1188做主模式时是正常的。

出0入0汤圆

发表于 2013-1-25 12:00:23 | 显示全部楼层
danshi126 发表于 2013-1-25 11:46
正常工作时要用DMA

但现在的问题的。我只让I2S3提供时钟给FM1188,且I2S3数据线从STM32上断开并下拉到地 ...

我觉得你先别用DMA试试啊,先调好了再用DMA啊。

出0入0汤圆

发表于 2014-7-23 15:21:46 | 显示全部楼层
请问pcm接口和i2s的通信是怎么连接的?

出0入0汤圆

发表于 2014-8-14 10:49:25 | 显示全部楼层
你好 我现在也考虑用FM1188 问下你的问题解决了吗。

出0入0汤圆

发表于 2014-9-1 09:19:47 | 显示全部楼层
我现在也在用FM1188,但使用后结果speaker的声音变得很小,请问下是怎么回事呀?麻烦大侠们指点下

出0入0汤圆

发表于 2014-9-1 09:30:47 | 显示全部楼层
调节音量控制也无法改变结果

出0入0汤圆

发表于 2017-9-4 13:15:28 | 显示全部楼层
wycxl8345 发表于 2014-9-1 09:19
我现在也在用FM1188,但使用后结果speaker的声音变得很小,请问下是怎么回事呀?麻烦大侠们指点下 ...

我现在也在用FM1188,speaker声音变小,请问这个问题解决了么?

出0入0汤圆

发表于 2017-9-6 09:45:55 | 显示全部楼层
潜水王 发表于 2017-9-4 13:15
我现在也在用FM1188,speaker声音变小,请问这个问题解决了么?

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

本版积分规则

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

GMT+8, 2024-4-25 01:21

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

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