#申请原创# @21小跑堂 [size=16.002px]
[size=16.002px]WM8978 是一款由 Wolfson Microelectronics(现为 Cirrus Logic)推出的低功耗、高性能音频编解码器(Audio Codec)。它广泛应用于便携式设备(如智能手机、平板电脑)和嵌入式系统中,用于音频输入和输出处理。
最近使用了wm8978音频芯片,终于操作此音频芯片生成出专用的梯形波
1. WM8978 的主要特性
音频输入:
支持立体声麦克风输入。
支持单端或差分输入。
内置可编程增益放大器(PGA)。
音频输出:
支持立体声耳机输出。
支持单声道扬声器输出。
内置耳机驱动器和扬声器驱动器。
音频处理:
支持 16/20/24/32 位音频数据格式。
支持 8 kHz 到 48 kHz 的采样率。
内置数字信号处理(DSP)功能,如均衡器、3D 音效等。
接口:
支持 I2S、PCM 或 TDM 音频接口。
支持 I2C 或 SPI 控制接口。
低功耗:
适用于电池供电的便携式设备
此芯片既可以做音频播放器也可以做语音识别系统。
2.wm8978芯片的接线接口如下:
I2S:用于传输音频数据。
BCLK:位时钟。
LRC:左右声道时钟。
DIN:音频数据输入。
DOUT:音频数据输出。
MCLK:主时钟(可选,用于同步)。
IIC:用于配置输出或控制寄存器
SCLK:控制时钟
SDIN: 数据传输
3.芯片配置原理图
[size=16.002px]
[size=16.002px]
[size=16.002px]4.芯片代码配置初始化
[size=16.002px]
[size=16.002px]5.数据模块配置
WM8978_HPvol_Set(40,40); //耳机音量设置
WM8978_SPKvol_Set(50); //喇叭音量设置
[size=16.002px]6.数据传输
以此算法方式,可输出梯形波,持续时间可通过增加数据量的方式进行增加[size=16.002px]
以下为IIS-DMA方式具体操作方式
[size=16.002px]
7.操作重复播放
此方式有两种
1.通过控制DMA的使能与失能
__HAL_DMA_ENABLE(&I2S2_TXDMA_Handler);//开启DMA TX传输
__HAL_DMA_DISABLE(&I2S2_TXDMA_Handler);//结束播放;
2.通过直接操作IIS数据传输的开关
HAL_StatusTypeDef HAL_I2S_DMAResume(I2S_HandleTypeDef *hi2s)
HAL_StatusTypeDef HAL_I2S_DMAStop(I2S_HandleTypeDef *hi2s)
|