[活动] wm8978的使用

[复制链接]
 楼主| qsr1111 发表于 2025-3-3 21:50 | 显示全部楼层 |阅读模式
#申请原创#  @21小跑堂

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.芯片配置原理图
                        
4.芯片代码配置初始化


5.数据模块配置
  1. WM8978_HPvol_Set(40,40);                //耳机音量设置
  2.         WM8978_SPKvol_Set(50);                        //喇叭音量设置
6.数据传输
以此算法方式,可输出梯形波,持续时间可通过增加数据量的方式进行增加
以下为IIS-DMA方式具体操作方式

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)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部