
专业版
基于STM32F4的WM8978声卡
757
0
0
0
简介
基于STM32F4的WM8978声卡
简介:基于STM32F4的WM8978声卡开源协议
:GPL 3.0
创建时间:2024-12-06 15:33:10更新时间:2025-12-07 20:12:30
描述
基于STM32F4的WM8978声卡项目文档
⚠ 重要说明
本项目是我本人两年前的处女作,当时刚开始接触 STM32 与 PCB 设计,PCB 设计非常粗糙,整体结构也不够规范,目前许多功能并未完全实现。
因此:
⚠ 完全不建议任何人复刻此项目,仅供学习参考!
📌 项目简介
本项目基于 STM32F4 系列 MCU 与 WM8978 音频编解码器 构建,实现基础的数字音频播放与录制功能,可用于音乐播放、录音、语音处理等场景。
(但请注意:本项目未实现全部功能,仅实现部分基础交互。)
🔧 项目功能(当前版本部分实现)
- 支持高品质音频播放(24bit/192kHz)
- 支持音频录制(带麦克风前级)
- 通过 I2C 配置 WM8978(增益、EQ、通道控制)
- 提供耳机 & 线路输出
- 数字音量控制
- 可扩展 DSP 音频处理(当前未实现)
📐 项目参数
- 主控芯片:STM32F407VGT6(168MHz,带 FPU)
- 音频编解码器:WM8978(24bit,高解析)
- 信噪比:≥ 95 dB(A-weighted)
- THD+N: < 0.01%
- 采样率:8kHz ~ 192kHz
- 供电:3.3V
- 接口:I2S、I2C、耳机、Line In/Out
🔍 原理解析(硬件说明)
系统框图

STM32F4 主控电路

WM8978 编解码电路

🧪 软件代码示例
// WM8978初始化示例代码
void WM8978_Init(void)
{
WM8978_Write_Reg(0, 0x00); // Reset
WM8978_Write_Reg(1, 0x1E); // Enable DAC/ADC
WM8978_Write_Reg(4, 0x50); // I2S, 16bit
WM8978_Write_Reg(6, 0x00); // 48kHz
WM8978_Write_Reg(0x02, 0x1F0); // HP volume L
WM8978_Write_Reg(0x03, 0x1F0); // HP volume R
WM8978_Write_Reg(0x05, 0x00);
WM8978_Write_Reg(0x07, 0x01);
WM8978_Write_Reg(0x0A, 0x00);
WM8978_Write_Reg(0x0B, 0x00);
WM8978_Write_Reg(0x0C, 0x7F);
WM8978_Write_Reg(0x0D, 0x7F);
WM8978_Write_Reg(0x09, 0x01); // Activate
}
完整代码仓库:
👉 GitHub: https://github.com/SmallCoral/wm8978
⚠ 使用注意
- PCB 设计为作者首次作品,布局布线欠佳,模拟/数字地分割粗糙
- WM8978 模拟电源部分退耦电容不足
- I2S 信号线过长、阻抗不匹配
- 耳放输出没有完整保护电路
- 因上述原因:不建议复刻,仅供学习思路
🔧 组装流程
- 焊接 STM32F4 及基础供电电路
- 再焊接 WM8978 芯片
- 焊接耳机接口、Line In/Out
- 检查焊点
- 上电检查电源
- 连接调试器下载测试程序
📸 实物图


设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










