STM32:利用VM8978和I2S实现录音的频率分析

板子为STM32F407,通过VM8978和I2S进行录音,保存在SRAM中。

1.VM8978

      VM8978是欧胜推出的一款全功能音频处理器,集成了对麦克风的支持以及扬声器功效。VM8978的控制通过I2S(飞利浦标准)接口同MCU进行音频数据传输,通过两线(MODE=0,即 IIC 接口)或三线(MODE=1)接口进行配置 。将VM8978作为从机,接受LRC(数据左/右对齐时钟)和BCLK(位时钟,用于同步)。

        I2S标准模式,数据在跟随 LRC 传输的 BCLK 的第二个上升沿时传输 MSB,其他位一直到 LSB 按顺序传输。传输依赖于字长、 BCLK 频率和采样率,在每个采样的 LSB 和下一个采样的 MSB 之间都应该有未用的 BCLK 周期。飞利浦标准模式的 I2S 数据传输协议如图

图中, fs 即音频信号的采样率,比如 44.1Khz,因此可以知道, LRC 的频率就是音频信号的采样率。 

        对VM8978的配置,一般按照通用配置

	WM8978_Write_Reg(1,0X1B);	//R1,MICEN设置为1(MIC使能),BIASEN设置为1(模拟器工作),VMIDSEL[1:0]设置为:11(5K)
	WM8978_Write_Reg(2,0X1B0);	//R2,ROUT1,LOUT1输出使能(耳机可以工作),BOOSTENR,BOOSTENL使能
	WM8978_Write_Reg(3,0X6C);	//R3,LOUT2,ROUT2输出使能(喇叭工作),RMIX,LMIX使能	
	WM8978_Write_Reg(6,0);		//R6,MCLK由外部提供
	WM8978_Write_Reg(43,1<<4);	//R43,INVROUT2反向,驱动喇叭
	WM8978_Write_Reg(47,1<<8);	//R47设置,PGABOOSTL,左通道MIC获得20倍增益
	WM8978_Write_Reg(48,1<<8);	//R48设置,PGABOOSTR,右通道MIC获得20倍增益
	WM8978_Write_Reg(49,1<<1);	//R49,TSDEN,开启过热保护 
	WM8978_Write_Reg(10,1<<3);	//R10,SOFTMUTE关闭,128x采样,最佳SNR 
	WM8978_Write_Reg(14,1<<3);	//R14,ADC 128x采样率
2.IS2

        I2S(Inter IC Sound)总线,是飞利浦为数字音频设备之间的音频数据传输而制定的一种总线标准。

        STM32F4 I2S 是与 SPI部分共用的,通过设置SPI_I2SCFGR寄存器的I2SMOD 位即可开启 I2S功能,I2S接口使用了几乎与SPI 相同的引脚、标志和中断

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值