OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6187|回复: 3

关于WM8978G音频芯片的I2S数据格式问题

[复制链接]

10

主题

31

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-4-18
在线时间
41 小时
发表于 2021-7-6 10:12:58 | 显示全部楼层 |阅读模式
40金钱
FPGA有SignalTap II逻辑分析仪,所以这里用 FPGA开拓者板 的 音频环回实验 进行调试。该实验是将WM8978G的ADC采样数据通过I2S读取后原封不动的通过I2S送至DAC解码。为了方便数据观察,我关闭了其中一个声道。
在调试WM8978G音频模块中,我发现了以下现象:
1, 32bit的I2S数据中,低8bit始终为0。(正点原子的寄存器配置开启的是32bit数据传输)
2, 在不输入任何音频时,整个32bit数据低8bit为0,会在FFFxxx00h和002xxx00h中随机跳变,第8bit几乎不变。
不加音频时1.png 不加音频时2.png
3, 在输入正弦波时(将信号发生器输出的正弦波直接送给音频输入口),整个32bit数据低8it为0,其余bit会在正常范围内发生跳变,但第8位跳变最不频繁。
按道理来说如果第8位到第31位代表的是24位ADC采样信号,那么第8位作为最低为应该是最不稳定的,但是现象与此相反。同时,在正点原子通过SD卡解析wav文件播放音频时,例程中没有对wav原始数据作任何修改,直接读取后送入I2S总线,即可正常播放声音。
输入正弦波.png
我对此的疑问是:WM8978G输出的adcdat/输入的dacdat,在I2S中数据的格式是怎样的?其中每一位代表的含义是什么?为什么wav文件的数据可以不加处理的通过I2S送入WM8978G,而我读到的数据似乎不是按位排列的ADC的采样信号?
由于我需要对ADC采样的原始数据进行处理后再送至DAC播放,因此我迫切地想要知道ADC通过I2S送给我的信号如何解析,希望大家能帮助我得到答案。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2021-7-6 11:21:22 | 显示全部楼层
回复

使用道具 举报

10

主题

31

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-4-18
在线时间
41 小时
 楼主| 发表于 2021-7-6 14:30:34 | 显示全部楼层
自顶自顶
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-7-7 02:22:03 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 11:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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